Main Program
/* * This program parses its input according to the following expression grammar: * Asst --> Id := Expr ; * Expr --> Term { ( + | - ) Term }* * Term --> Fact { ( * | / ) Fact }* * Fact --> Id | Lit | ( Expr ) * * The program reads standard input and attempts to parse it as an Asst. It * then prints a representation of the input structure. If you type the input, * make sure to issue an EOF (^D in unix, ^Z in windows shell) at the end. * * The parser itself (which encodes the rules) resides in parser.h/parser.cpp. */ #include <stdlib.h> #include <iostream> #include "parser.h" using namespace std; // Read and print. main() { Parser p(cin); try { p.parse(); } catch(exception &e) { cout << "Parsing failed: " << e.what() << endl; exit(1); } p.print(cout); }