/// <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 });
 }