]> pd.if.org Git - pccts/blobdiff - NOTES.MSVC
auto commit for import
[pccts] / NOTES.MSVC
diff --git a/NOTES.MSVC b/NOTES.MSVC
new file mode 100755 (executable)
index 0000000..ad0dd1e
--- /dev/null
@@ -0,0 +1,854 @@
+                        Microsoft Visual C Stuff\r
+\r
+[Modified by Terence Parr (September 1995) to change .C to .cpp\r]
+\r
+[This file contains notes on MSVC for Windows NT console execs by Dave\r
+ Seidel and an explanation of flags etc.. by John Hall; good luck,\r
+ Terence]\r
+\r
+Date: Sat, 31 Dec 1994 11:40:36 -0500 (EST)\r
+From: David Seidel <75342.2034@compuserve.com>\r
+\r
+I've succesfully build 1.31b3 with djgpp for DOS and MSVC 2.0 for Windows \r
+NT.  The only (minor) problem I had was that GNU make (version 3.71, in the \r
+djgpp port) complained about "multiple targets" in both the antlr and dlg \r
+makefiles.  I got around the error by, in each makefile, commenting out the \r
+$(SRC) dependency, for example:\r
+\r
+   antlr: $(OBJ) #$(SRC)\r
+\r
+I don't know why this is happenning, since you haven't changed that part of \r
+the makefile at all, and I think this used to work ok...\r
+\r
+Here are the makefiles I built from within the MSVC 2.0 environment for antlr \r
+and dlg and Windows NT console executables.  Please feel free to pass them \r
+on.  Of course, as soon as 1.31 "goes gold", I will send you nice new \r
+binaries.  I'm not going to bother to keep doing both Borland and djgpp for \r
+DOS however.  Instead, I'll just keep the djgpp version up to date and also \r
+provide WinNT binaries.\r
+\r
+Dave\r
+\r
+------ File antlr.mak: --------------\r
+\r
+# Microsoft Visual C++ Generated NMAKE File, Format Version 2.00\r
+# ** DO NOT EDIT **\r
+\r
+# TARGTYPE "Win32 (x86) Console Application" 0x0103\r
+\r
+!IF "$(CFG)" == ""\r
+CFG=Win32 Debug\r
+!MESSAGE No configuration specified.  Defaulting to Win32 Debug.\r
+!ENDIF \r
+\r
+!IF "$(CFG)" != "Win32 Release" && "$(CFG)" != "Win32 Debug"\r
+!MESSAGE Invalid configuration "$(CFG)" specified.\r
+!MESSAGE You can specify a configuration when running NMAKE on this makefile\r
+!MESSAGE by defining the macro CFG on the command line.  For example:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "ANTLR.MAK" CFG="Win32 Debug"\r
+!MESSAGE \r
+!MESSAGE Possible choices for configuration are:\r
+!MESSAGE \r
+!MESSAGE "Win32 Release" (based on "Win32 (x86) Console Application")\r
+!MESSAGE "Win32 Debug" (based on "Win32 (x86) Console Application")\r
+!MESSAGE \r
+!ERROR An invalid configuration is specified.\r
+!ENDIF \r
+\r
+################################################################################\r
+# Begin Project\r
+# PROP Target_Last_Scanned "Win32 Release"\r
+CPP=cl.exe\r
+RSC=rc.exe\r
+\r
+!IF  "$(CFG)" == "Win32 Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "WinRel"\r
+# PROP BASE Intermediate_Dir "WinRel"\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "WinRel"\r
+# PROP Intermediate_Dir "WinRel"\r
+OUTDIR=.\WinRel\r
+INTDIR=.\WinRel\r
+\r
+ALL : $(OUTDIR)/ANTLR.exe $(OUTDIR)/ANTLR.bsc\r
+\r
+$(OUTDIR) : \r
+    if not exist $(OUTDIR)/nul mkdir $(OUTDIR)\r
+\r
+# ADD BASE CPP /nologo /W3 /GX /YX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FR /c\r
+# ADD CPP /nologo /W2 /YX /O2 /I "..\h" /I "..\support\set" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "USER_ZZSYN" /D "PC" /c\r
+# SUBTRACT CPP /Fr\r
+CPP_PROJ=/nologo /W2 /YX /O2 /I "..\h" /I "..\support\set" /D "WIN32" /D\\r
+ "NDEBUG" /D "_CONSOLE" /D "USER_ZZSYN" /D "PC" /Fp$(OUTDIR)/"ANTLR.pch"\\r
+ /Fo$(INTDIR)/ /c \r
+CPP_OBJS=.\WinRel/\r
+# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
+# ADD RSC /l 0x409 /d "NDEBUG"\r
+BSC32=bscmake.exe\r
+BSC32_SBRS= \\r
+       \r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+BSC32_FLAGS=/nologo /o$(OUTDIR)/"ANTLR.bsc" \r
+\r
+$(OUTDIR)/ANTLR.bsc : $(OUTDIR)  $(BSC32_SBRS)\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /MACHINE:I386\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /MACHINE:I386\r
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\\r
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\\r
+ odbccp32.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no\\r
+ /PDB:$(OUTDIR)/"ANTLR.pdb" /MACHINE:I386 /OUT:$(OUTDIR)/"ANTLR.exe" \r
+DEF_FILE=\r
+LINK32_OBJS= \\r
+       $(INTDIR)/HASH.OBJ \\r
+       $(INTDIR)/MISC.OBJ \\r
+       $(INTDIR)/BUILD.OBJ \\r
+       $(INTDIR)/ANTLR.OBJ \\r
+       $(INTDIR)/GLOBALS.OBJ \\r
+       $(INTDIR)/PRED.OBJ \\r
+       $(INTDIR)/FSET.OBJ \\r
+       $(INTDIR)/FSET2.OBJ \\r
+       $(INTDIR)/GEN.OBJ \\r
+       $(INTDIR)/MAIN.OBJ \\r
+       $(INTDIR)/SCAN.OBJ \\r
+       $(INTDIR)/LEX.OBJ \\r
+       $(INTDIR)/ERR.OBJ \\r
+       $(INTDIR)/BITS.OBJ \\r
+       $(INTDIR)/SET.OBJ\r
+\r
+$(OUTDIR)/ANTLR.exe : $(OUTDIR)  $(DEF_FILE) $(LINK32_OBJS)\r
+    $(LINK32) @<<\r
+  $(LINK32_FLAGS) $(LINK32_OBJS)\r
+<<\r
+\r
+!ELSEIF  "$(CFG)" == "Win32 Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "WinDebug"\r
+# PROP BASE Intermediate_Dir "WinDebug"\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "WinDebug"\r
+# PROP Intermediate_Dir "WinDebug"\r
+OUTDIR=.\WinDebug\r
+INTDIR=.\WinDebug\r
+\r
+ALL : $(OUTDIR)/ANTLR.exe $(OUTDIR)/ANTLR.bsc\r
+\r
+$(OUTDIR) : \r
+    if not exist $(OUTDIR)/nul mkdir $(OUTDIR)\r
+\r
+# ADD BASE CPP /nologo /W3 /GX /Zi /YX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /c\r
+# ADD CPP /nologo /MD /W2 /Zi /YX /Od /I "..\h" /I "..\support\set" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "USER_ZZSYN" /D "PC" /c\r
+# SUBTRACT CPP /Gf /Fr\r
+CPP_PROJ=/nologo /MD /W2 /Zi /YX /Od /I "..\h" /I "..\support\set" /D "WIN32"\\r
+ /D "_DEBUG" /D "_CONSOLE" /D "USER_ZZSYN" /D "PC" /Fp$(OUTDIR)/"ANTLR.pch"\\r
+ /Fo$(INTDIR)/ /Fd$(OUTDIR)/"ANTLR.pdb" /c \r
+CPP_OBJS=.\WinDebug/\r
+# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
+# ADD RSC /l 0x409 /d "_DEBUG"\r
+BSC32=bscmake.exe\r
+BSC32_SBRS= \\r
+       \r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+BSC32_FLAGS=/nologo /o$(OUTDIR)/"ANTLR.bsc" \r
+\r
+$(OUTDIR)/ANTLR.bsc : $(OUTDIR)  $(BSC32_SBRS)\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /DEBUG /MACHINE:I386\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /PDB:none /DEBUG /MACHINE:I386\r
+# SUBTRACT LINK32 /MAP\r
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\\r
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\\r
+ odbccp32.lib /NOLOGO /SUBSYSTEM:console /PDB:none /DEBUG /MACHINE:I386\\r
+ /OUT:$(OUTDIR)/"ANTLR.exe" \r
+DEF_FILE=\r
+LINK32_OBJS= \\r
+       $(INTDIR)/HASH.OBJ \\r
+       $(INTDIR)/MISC.OBJ \\r
+       $(INTDIR)/BUILD.OBJ \\r
+       $(INTDIR)/ANTLR.OBJ \\r
+       $(INTDIR)/GLOBALS.OBJ \\r
+       $(INTDIR)/PRED.OBJ \\r
+       $(INTDIR)/FSET.OBJ \\r
+       $(INTDIR)/FSET2.OBJ \\r
+       $(INTDIR)/GEN.OBJ \\r
+       $(INTDIR)/MAIN.OBJ \\r
+       $(INTDIR)/SCAN.OBJ \\r
+       $(INTDIR)/LEX.OBJ \\r
+       $(INTDIR)/ERR.OBJ \\r
+       $(INTDIR)/BITS.OBJ \\r
+       $(INTDIR)/SET.OBJ\r
+\r
+$(OUTDIR)/ANTLR.exe : $(OUTDIR)  $(DEF_FILE) $(LINK32_OBJS)\r
+    $(LINK32) @<<\r
+  $(LINK32_FLAGS) $(LINK32_OBJS)\r
+<<\r
+\r
+!ENDIF \r
+\r
+.c{$(CPP_OBJS)}.obj:\r
+   $(CPP) $(CPP_PROJ) $<  \r
+\r
+.cpp{$(CPP_OBJS)}.obj:\r
+   $(CPP) $(CPP_PROJ) $<  \r
+\r
+.cxx{$(CPP_OBJS)}.obj:\r
+   $(CPP) $(CPP_PROJ) $<  \r
+\r
+################################################################################\r
+# Begin Group "Source Files"\r
+\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\HASH.C\r
+DEP_HASH_=\\r
+       .\HASH.H\r
+\r
+$(INTDIR)/HASH.OBJ :  $(SOURCE)  $(DEP_HASH_) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\MISC.C\r
+DEP_MISC_=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/MISC.OBJ :  $(SOURCE)  $(DEP_MISC_) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\BUILD.C\r
+DEP_BUILD=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/BUILD.OBJ :  $(SOURCE)  $(DEP_BUILD) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\ANTLR.C\r
+DEP_ANTLR=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\ANTLR.H\\r
+       .\TOKENS.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       .\MODE.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/ANTLR.OBJ :  $(SOURCE)  $(DEP_ANTLR) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\GLOBALS.C\r
+DEP_GLOBA=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/GLOBALS.OBJ :  $(SOURCE)  $(DEP_GLOBA) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\PRED.C\r
+DEP_PRED_=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/PRED.OBJ :  $(SOURCE)  $(DEP_PRED_) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\FSET.C\r
+DEP_FSET_=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/FSET.OBJ :  $(SOURCE)  $(DEP_FSET_) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\FSET2.C\r
+DEP_FSET2=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/FSET2.OBJ :  $(SOURCE)  $(DEP_FSET2) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\GEN.C\r
+DEP_GEN_C=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/GEN.OBJ :  $(SOURCE)  $(DEP_GEN_C) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\MAIN.C\r
+DEP_MAIN_=\\r
+       .\STDPCCTS.H\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\ANTLR.H\\r
+       .\TOKENS.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       .\MODE.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/MAIN.OBJ :  $(SOURCE)  $(DEP_MAIN_) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\SCAN.C\r
+DEP_SCAN_=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\ANTLR.H\\r
+       .\TOKENS.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       .\MODE.H\\r
+       \PCCTS\H\DLGAUTO.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/SCAN.OBJ :  $(SOURCE)  $(DEP_SCAN_) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\LEX.C\r
+DEP_LEX_C=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/LEX.OBJ :  $(SOURCE)  $(DEP_LEX_C) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\ERR.C\r
+DEP_ERR_C=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\ANTLR.H\\r
+       .\TOKENS.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       \PCCTS\H\ERR.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/ERR.OBJ :  $(SOURCE)  $(DEP_ERR_C) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\BITS.C\r
+DEP_BITS_=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       .\SYN.H\\r
+       .\HASH.H\\r
+       .\GENERIC.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       \PCCTS\H\CONFIG.H\\r
+       .\PROTO.H\r
+\r
+$(INTDIR)/BITS.OBJ :  $(SOURCE)  $(DEP_BITS_) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=\PCCTS\SUPPORT\SET\SET.C\r
+DEP_SET_C=\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       \PCCTS\H\CONFIG.H\r
+\r
+$(INTDIR)/SET.OBJ :  $(SOURCE)  $(DEP_SET_C) $(INTDIR)\r
+   $(CPP) $(CPP_PROJ)  $(SOURCE) \r
+\r
+# End Source File\r
+# End Group\r
+# End Project\r
+################################################################################\r
+------ File dlg.mak: ----------------\r
+\r
+# Microsoft Visual C++ Generated NMAKE File, Format Version 2.00\r
+# ** DO NOT EDIT **\r
+\r
+# TARGTYPE "Win32 (x86) Console Application" 0x0103\r
+\r
+!IF "$(CFG)" == ""\r
+CFG=Win32 Debug\r
+!MESSAGE No configuration specified.  Defaulting to Win32 Debug.\r
+!ENDIF \r
+\r
+!IF "$(CFG)" != "Win32 Release" && "$(CFG)" != "Win32 Debug"\r
+!MESSAGE Invalid configuration "$(CFG)" specified.\r
+!MESSAGE You can specify a configuration when running NMAKE on this makefile\r
+!MESSAGE by defining the macro CFG on the command line.  For example:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "DLG.MAK" CFG="Win32 Debug"\r
+!MESSAGE \r
+!MESSAGE Possible choices for configuration are:\r
+!MESSAGE \r
+!MESSAGE "Win32 Release" (based on "Win32 (x86) Console Application")\r
+!MESSAGE "Win32 Debug" (based on "Win32 (x86) Console Application")\r
+!MESSAGE \r
+!ERROR An invalid configuration is specified.\r
+!ENDIF \r
+\r
+################################################################################\r
+# Begin Project\r
+# PROP Target_Last_Scanned "Win32 Debug"\r
+CPP=cl.exe\r
+RSC=rc.exe\r
+\r
+!IF  "$(CFG)" == "Win32 Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "WinRel"\r
+# PROP BASE Intermediate_Dir "WinRel"\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "WinRel"\r
+# PROP Intermediate_Dir "WinRel"\r
+OUTDIR=.\WinRel\r
+INTDIR=.\WinRel\r
+\r
+ALL : $(OUTDIR)/DLG.exe $(OUTDIR)/DLG.bsc\r
+\r
+$(OUTDIR) : \r
+    if not exist $(OUTDIR)/nul mkdir $(OUTDIR)\r
+\r
+# ADD BASE CPP /nologo /W3 /GX /YX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FR /c\r
+# ADD CPP /nologo /W2 /YX /O2 /I "..\h" /I "..\support\set" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "USER_ZZSYN" /D "PC" /c\r
+# SUBTRACT CPP /Fr\r
+CPP_PROJ=/nologo /W2 /YX /O2 /I "..\h" /I "..\support\set" /D "WIN32" /D\\r
+ "NDEBUG" /D "_CONSOLE" /D "USER_ZZSYN" /D "PC" /Fp$(OUTDIR)/"DLG.pch"\\r
+ /Fo$(INTDIR)/ /c \r
+CPP_OBJS=.\WinRel/\r
+# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
+# ADD RSC /l 0x409 /d "NDEBUG"\r
+BSC32=bscmake.exe\r
+BSC32_SBRS= \\r
+       \r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+BSC32_FLAGS=/nologo /o$(OUTDIR)/"DLG.bsc" \r
+\r
+$(OUTDIR)/DLG.bsc : $(OUTDIR)  $(BSC32_SBRS)\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /MACHINE:I386\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /MACHINE:I386\r
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\\r
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\\r
+ odbccp32.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no\\r
+ /PDB:$(OUTDIR)/"DLG.pdb" /MACHINE:I386 /OUT:$(OUTDIR)/"DLG.exe" \r
+DEF_FILE=\r
+LINK32_OBJS= \\r
+       $(INTDIR)/SET.OBJ \\r
+       $(INTDIR)/AUTOMATA.OBJ \\r
+       $(INTDIR)/SUPPORT.OBJ \\r
+       $(INTDIR)/DLG_P.OBJ \\r
+       $(INTDIR)/ERR.OBJ \\r
+       $(INTDIR)/MAIN.OBJ \\r
+       $(INTDIR)/DLG_A.OBJ \\r
+       $(INTDIR)/RELABEL.OBJ \\r
+       $(INTDIR)/OUTPUT.OBJ\r
+\r
+$(OUTDIR)/DLG.exe : $(OUTDIR)  $(DEF_FILE) $(LINK32_OBJS)\r
+    $(LINK32) @<<\r
+  $(LINK32_FLAGS) $(LINK32_OBJS)\r
+<<\r
+\r
+!ELSEIF  "$(CFG)" == "Win32 Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "WinDebug"\r
+# PROP BASE Intermediate_Dir "WinDebug"\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "WinDebug"\r
+# PROP Intermediate_Dir "WinDebug"\r
+OUTDIR=.\WinDebug\r
+INTDIR=.\WinDebug\r
+\r
+ALL : $(OUTDIR)/DLG.exe $(OUTDIR)/DLG.bsc\r
+\r
+$(OUTDIR) : \r
+    if not exist $(OUTDIR)/nul mkdir $(OUTDIR)\r
+\r
+# ADD BASE CPP /nologo /W3 /GX /Zi /YX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /c\r
+# ADD CPP /nologo /MD /W2 /Zi /YX /Od /I "..\h" /I "..\support\set" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "USER_ZZSYN" /D "PC" /c\r
+# SUBTRACT CPP /Fr\r
+CPP_PROJ=/nologo /MD /W2 /Zi /YX /Od /I "..\h" /I "..\support\set" /D "WIN32"\\r
+ /D "_DEBUG" /D "_CONSOLE" /D "USER_ZZSYN" /D "PC" /Fp$(OUTDIR)/"DLG.pch"\\r
+ /Fo$(INTDIR)/ /Fd$(OUTDIR)/"DLG.pdb" /c \r
+CPP_OBJS=.\WinDebug/\r
+# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
+# ADD RSC /l 0x409 /d "_DEBUG"\r
+BSC32=bscmake.exe\r
+BSC32_SBRS= \\r
+       \r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+BSC32_FLAGS=/nologo /o$(OUTDIR)/"DLG.bsc" \r
+\r
+$(OUTDIR)/DLG.bsc : $(OUTDIR)  $(BSC32_SBRS)\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /DEBUG /MACHINE:I386\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /PDB:none /DEBUG /MACHINE:I386\r
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\\r
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\\r
+ odbccp32.lib /NOLOGO /SUBSYSTEM:console /PDB:none /DEBUG /MACHINE:I386\\r
+ /OUT:$(OUTDIR)/"DLG.exe" \r
+DEF_FILE=\r
+LINK32_OBJS= \\r
+       $(INTDIR)/SET.OBJ \\r
+       $(INTDIR)/AUTOMATA.OBJ \\r
+       $(INTDIR)/SUPPORT.OBJ \\r
+       $(INTDIR)/DLG_P.OBJ \\r
+       $(INTDIR)/ERR.OBJ \\r
+       $(INTDIR)/MAIN.OBJ \\r
+       $(INTDIR)/DLG_A.OBJ \\r
+       $(INTDIR)/RELABEL.OBJ \\r
+       $(INTDIR)/OUTPUT.OBJ\r
+\r
+$(OUTDIR)/DLG.exe : $(OUTDIR)  $(DEF_FILE) $(LINK32_OBJS)\r
+    $(LINK32) @<<\r
+  $(LINK32_FLAGS) $(LINK32_OBJS)\r
+<<\r
+\r
+!ENDIF \r
+\r
+.c{$(CPP_OBJS)}.obj:\r
+   $(CPP) $(CPP_PROJ) $<  \r
+\r
+.cpp{$(CPP_OBJS)}.obj:\r
+   $(CPP) $(CPP_PROJ) $<  \r
+\r
+.cxx{$(CPP_OBJS)}.obj:\r
+   $(CPP) $(CPP_PROJ) $<  \r
+\r
+################################################################################\r
+# Begin Group "Source Files"\r
+\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=\PCCTS\SUPPORT\SET\SET.C\r
+\r
+$(INTDIR)/SET.OBJ :  $(SOURCE)  $(INTDIR)\r
+   $(CPP) $(CPP_PROJ)  $(SOURCE) \r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\AUTOMATA.C\r
+DEP_AUTOM=\\r
+       .\DLG.H\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       \PCCTS\H\CONFIG.H\r
+\r
+$(INTDIR)/AUTOMATA.OBJ :  $(SOURCE)  $(DEP_AUTOM) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\SUPPORT.C\r
+DEP_SUPPO=\\r
+       .\DLG.H\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       \PCCTS\H\CONFIG.H\r
+\r
+$(INTDIR)/SUPPORT.OBJ :  $(SOURCE)  $(DEP_SUPPO) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\DLG_P.C\r
+DEP_DLG_P=\\r
+       .\DLG.H\\r
+       \PCCTS\H\ANTLR.H\\r
+       .\TOKENS.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       .\MODE.H\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       \PCCTS\H\CONFIG.H\r
+\r
+$(INTDIR)/DLG_P.OBJ :  $(SOURCE)  $(DEP_DLG_P) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\ERR.C\r
+DEP_ERR_C=\\r
+       .\DLG.H\\r
+       \PCCTS\H\ANTLR.H\\r
+       .\TOKENS.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       \PCCTS\H\ERR.H\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       \PCCTS\H\CONFIG.H\r
+\r
+$(INTDIR)/ERR.OBJ :  $(SOURCE)  $(DEP_ERR_C) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\MAIN.C\r
+DEP_MAIN_=\\r
+       .\STDPCCTS.H\\r
+       .\DLG.H\\r
+       \PCCTS\H\ANTLR.H\\r
+       .\TOKENS.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       .\MODE.H\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       \PCCTS\H\CONFIG.H\r
+\r
+$(INTDIR)/MAIN.OBJ :  $(SOURCE)  $(DEP_MAIN_) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\DLG_A.C\r
+DEP_DLG_A=\\r
+       .\DLG.H\\r
+       \PCCTS\H\ANTLR.H\\r
+       .\TOKENS.H\\r
+       \PCCTS\H\DLGDEF.H\\r
+       .\MODE.H\\r
+       \PCCTS\H\DLGAUTO.H\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       \PCCTS\H\CONFIG.H\r
+\r
+$(INTDIR)/DLG_A.OBJ :  $(SOURCE)  $(DEP_DLG_A) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\RELABEL.C\r
+DEP_RELAB=\\r
+       .\DLG.H\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       \PCCTS\H\CONFIG.H\r
+\r
+$(INTDIR)/RELABEL.OBJ :  $(SOURCE)  $(DEP_RELAB) $(INTDIR)\r
+\r
+# End Source File\r
+################################################################################\r
+# Begin Source File\r
+\r
+SOURCE=.\OUTPUT.C\r
+DEP_OUTPU=\\r
+       .\DLG.H\\r
+       \PCCTS\SUPPORT\SET\SET.H\\r
+       \PCCTS\H\CONFIG.H\r
+\r
+$(INTDIR)/OUTPUT.OBJ :  $(SOURCE)  $(DEP_OUTPU) $(INTDIR)\r
+\r
+# End Source File\r
+# End Group\r
+# End Project\r
+################################################################################\r
+-------------------------------------\r
+\r
+         How to port PCCTS 1.10 (and 1.32 hopefully) to Visual C++\r
+\r
+                                   By\r
+\r
+                       John Hall <jhall@ivy.wpi.edu>\r
+\r
+Here is how to compile an ANTLR grammar in Visual C++.  These steps\r
+describe how to have your ANTLR grammar parse the input file the user\r
+selects when they choose File Open in your Windows application.  (Even\r
+if you aren't using Visual C++, the steps should be portable enough to\r
+other compilers.)\r
+\r
+ * Make sure that ANTLR and DLG generate ANSI code (use the -ga\r
+   switch).\r
+\r
+ * Set the following compiler flags in Visual C++ (these are in the\r
+   Memory Model category of the compiler options in the Project\r
+   Options menu):\r
+\r
+   FLAG MEANING\r
+   ==== ==============================================================\r
+   /AL Large memory model (multiple data segments; data items must be\r
+       smaller than 64K).\r
+\r
+   /Gtn        Allocates all items whose size is greater than or equal to n\r
+       in a new data segment.  (I let n be 256: /Gt256.)\r
+\r
+   /Gx-        All references to data items are done with far addressing in\r
+       case they are placed in a far segment.\r
+\r
+ * Add the following member variable to the attributes section of your\r
+   derived CDocument class (you will need to make sure you also\r
+   include stdio.h):\r
+\r
+   FILE *fp;\r
+\r
+ * Add the following method to your derived CDocument class:\r
+\r
+   BOOL CAppDoc::OnOpenDocument(const char* pszPathName)\r
+   {\r
+       // Call CDocument's OnOpenDocument to do housekeeping for us\r
+       // DON'T add anything to the loading section of Serialize\r
+       if (!CDocument::OnOpenDocument(pszPathName))\r
+           return FALSE;\r
+   \r
+       // Open input file\r
+       if ((fp = fopen(pszPathName, "r")) == NULL)\r
+           return FALSE;\r
+   \r
+       // Parse input file\r
+       ANTLR(start(), fp);\r
+   \r
+       // Close input file\r
+       fclose(fp);\r
+       return TRUE;\r
+   }\r
+\r
+   (Note: additional code may be necessary, depending on your parser.\r
+   For example, if your parser uses PCCTS's symbol table library, you\r
+   will need to insert calls to zzs_init and zzs_done.)\r
+\r
+ * Compile the generated C files as C++ files.  (I renamed the files\r
+   to have a .CPP extension to fool Visual C++ into thinking they were\r
+   C++ files.  One might also use the /Tp switch, but that switch\r
+   requires you separately include the filename.)  [I used this step\r
+   as an easy out for all the external linking errors I was getting\r
+   that I couldn't fix by declaring things extern "C".]\r
+\r
+ * Make sure the __STDC__ portion of the generated files gets\r
+   compiled.  (Either define __STDC__ yourself or else change all\r
+   occurrences of __STDC__ to __cplusplus in the generated files.  You\r
+   can define __STDC__ in the Preprocessor category of the compiler\r
+   options.)\r
+\r
+That last step is important for Visual C++, but may not apply to other\r
+compilers.  For C++ compilers, whether __STDC__ is defined is\r
+implementation dependent (ARM, page 379).  Apparently, Visual C++ does\r
+not to define it; it also does not support "old style" C function\r
+definitions (which is okay, according to page 404 of the ARM).  Those\r
+two things together caused problems when trying to port the code.\r
+When it saw this:\r
+\r
+#ifdef __STDC__\r
+void\r
+globals(AST **_root)\r
+#else\r
+globals(_root)\r
+AST **_root;\r
+#endif\r
+\r
+it skipped the __STDC__ section and tried to process the "old style"\r
+function definition, where it choked.\r
+\r
+When you finally get your parser to compile and link without error,\r
+you may get General Protection Fault errors at run time.  The problem\r
+I had was that a NULL was passed to a variable argument function\r
+without an explicit cast.  The function grabbed a pointer (32-bits)\r
+off the stack using va_arg, but the NULL was passed silently as the\r
+integer 0 (16 bits), making the resulting pointer was invalid.  (This\r
+was in PCCTS's sample C parser.)\r
+\r
+There is one other thing I might suggest to help you avoid a run-time\r
+error.  Make sure you redefine the default error reporting function,\r
+zzsyn.  To do this, put "#define USER_ZZSYN" in your #header section\r
+and put your own zzsyn somewhere.  You can then pop up a MessageBox or\r
+print the error to some output window.\r
\r