+ 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