int PG::Main (int na, char** arg) { if (Start (na, arg)) { PGParser::initialize (optn[MAX_SYM]); if (PGParser::parse (input_start) > 0) { PrintGrammar(); PrintHtml(); if (CheckGrammar()) { OutputLexicalSymbols(); if (BuildLR1()) { if (ComputeLA()) { if (OptimizeStates()) { PrintStates(); CreateTables(); PG::Terminate (0); return 1; } } } } } } return 0; }
int LG::Main (int na, char** arg) /* Display program information. */ { if (Start (na, arg)) { if (Parse()) { if (CheckGrammar()) { if (BuildStates()) { int rc; rc = AddExtra(); rc += ComputeLA(); PrintStates (1); if (rc == 2) { if (OptimizeStates()) { PrintStates (2); if (!optn[LG_ANALYZEONLY]) { CreateTables(); LG::Terminate (1); return 1; } } } } } } } LG::Terminate (0); return 0; }