import java.io.BufferedReader; import java.io.FileReader; import java.io.PrintWriter; import rebelsky.compiler.misc.AdvCharStream; import rebelsky.compiler.misc.StandardCharStream; import rebelsky.compiler.parser.Node; import rebelsky.compiler.parser.TreePrinter; /** * Print out a Stupid parse tree. See StupidParser.java for * details of tghe syntax of the Stupid language. * * @author Samuel A. Rebelsky * @version 1.0 of December 2002 */ public class ParseStupid { public static void main(String[] args) throws Exception { String fname; // Determine the file name to use if (args.length == 0) throw new Exception("Usage: java ParseStupid file.stupid"); else fname = args[0]; // Create the character stream that the tokenizer will use. AdvCharStream acs = new AdvCharStream( new StandardCharStream( new BufferedReader( new FileReader(fname)))); // Create the tokenizer StupidTokenizer tokenizer = new StupidTokenizer(acs); // Build the parse tree StupidParser parser = new StupidParser(); Node tree = parser.parse(tokenizer); // Print the tree TreePrinter.print(tree, new PrintWriter(System.out, true)); } // main(String[]) } // class ParseStupid