demjava -code -outputdir ./gen program Parsing program.cd... Building hashtable of classes... Expanding parameterized classes... Converting repetition classes... Filling in part names... Setting inheritance links... Parsing program.beh... Gathering methods... Expanding traversals... Expanding TestTraversal... Generating Java code to ./gen... Done. demjava -grammar -outputdir ./gen program Parsing program.cd... Building hashtable of classes... Expanding parameterized classes... Converting repetition classes... Filling in part names... Setting inheritance links... Generating grammar to ./gen/program.jack... Done. (cd ./gen; jack program.jack) Jack Version 0.5. Copyright (c) 1996 Sun Microsystems Inc. (type "jack" with no arguments for help) Reading from file program.jack . . . File "ParseError.java" does not exist. Will create one. File "Token.java" does not exist. Will create one. Warning: Choice conflict in [...] construct at line 121, column 3. Expansion nested within construct and expansion following construct have common prefixes, one of which is: "a" Consider using a lookahead of 2 or more for nested expansion. Parser generated with 0 errors and 1 warnings. CLASSPATH=./gen:$CLASSPATH javac -d ./gen gen/A.java gen/ASCII_UCodeESC_CharStream.java gen/B.java gen/C.java gen/D.java gen/E.java gen/Main.java gen/ParseError.java gen/Parser.java gen/ParserConstants.java gen/ParserTokenManager.java gen/TestVisitor.java gen/Token.java CLASSPATH=./gen:$CLASSPATH java Main < program.input in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E in E *** result *** 32 SUCCESS