Exemple #1
0
        // Initializes and runs Lexical Analysis module
        public static void StartLexicalAnalyzer(string[] arguments)
        {
            ValidateArguments(arguments);
            CommonTools.SetupOutputs(new string[] { GlobalConfiguration.LexicalAnalyzerOutputPath });
            CommonTools.ClearOutputDisplays();

            LexicalAnalyzer lexicalAnalyzer = new LexicalAnalyzer(arguments[0]);

            CommonTools.DisplayHeader = lexicalAnalyzer.DisplayTokenHeader;
            lexicalAnalyzer.DisplayTokenHeader();

            while (lexicalAnalyzer.Token != Token.EndOfFileToken)
            {
                lexicalAnalyzer.GetNextToken();
                lexicalAnalyzer.DisplayCurrentToken();
            }
            CommonTools.PromptProgramExit();
        }
Exemple #2
0
        // Initializes and runs Three Address Code module
        public static void StartThreeAddressCode(string[] arguments)
        {
            CommonTools.ThreeAddressCodeRun = true;
            ValidateArguments(arguments);
            CommonTools.SetupOutputs
                (new string[] { GlobalConfiguration.ThreeAddressCodeOutputPath,
                                AppendFileExtension(arguments[0], "tac") });

            CommonTools.ClearOutputDisplays();

            LexicalAnalyzer lexicalAnalyzer = new LexicalAnalyzer(arguments[0]);

            lexicalAnalyzer.GetNextToken();

            SymbolTable symbolTable = new SymbolTable();
            Parser      parser      = new Parser(lexicalAnalyzer, symbolTable);

            parser.Start();

            CommonTools.PromptProgramExit();
        }
Exemple #3
0
        // Initializes and runs Parser module
        public static void StartParser(string[] arguments)
        {
            ValidateArguments(arguments);
            CommonTools.SetupOutputs(new string[] { GlobalConfiguration.ParserOutputPath });
            CommonTools.ClearOutputDisplays();

            LexicalAnalyzer lexicalAnalyzer = new LexicalAnalyzer(arguments[0]);

            lexicalAnalyzer.GetNextToken();

            SymbolTable symbolTable = new SymbolTable();
            Parser      parser      = new Parser(lexicalAnalyzer, symbolTable);

            if (parser.Start())
            {
                symbolTable.OutputSymbolTable(1);
            }

            CommonTools.WriteOutput($"Completed processing {Path.GetFileName(arguments[0])}");
            CommonTools.PromptProgramExit();
        }
 // Parameterized constructor requires a lexical analyzer and symbol table
 public Parser(LexicalAnalyzer lexicalAnalyzer, SymbolTable symbolTable)
 {
     LexicalAnaylzer = lexicalAnalyzer;
     SymbolTable     = symbolTable;
 }