/// <summary> /// Initializes a new instance of the <see cref="SyntacticAnalyzer"/> class with the specified <see cref="LexicalAnalyzer"/>. /// </summary> /// <param name="lexical">The lexical analyzer.</param> public SyntacticAnalyzer(LexicalAnalyzer lexical) { if (lexical == null) { throw new ArgumentNullException(nameof(lexical)); } _lexical = lexical; _symbolTable = new VectorSymbolTable(); _codeGenerator = new CodeGenerator(); }
public void InitTests() { _symbolTable = new VectorSymbolTable(); _symbolTable.Insert(new IdentificatorItem() { Lexeme = "a", Type = ItemType.Integer }); _symbolTable.Insert(new IdentificatorItem() { Lexeme = "b", Type = ItemType.Integer }); _symbolTable.Insert(new IdentificatorItem() { Lexeme = "c", Type = ItemType.Integer }); _symbolTable.Insert(new IdentificatorItem() { Lexeme = "d", Type = ItemType.Integer }); _symbolTable.Insert(new IdentificatorItem() { Lexeme = "e", Type = ItemType.Integer }); _symbolTable.Insert(new IdentificatorItem() { Lexeme = "f", Type = ItemType.Boolean }); _symbolTable.Insert(new IdentificatorItem() { Lexeme = "g", Type = ItemType.Boolean }); _symbolTable.Insert(new IdentificatorItem() { Lexeme = "h", Type = ItemType.Boolean }); }