public Compiler() { this.stream = new ByteCodeStream(); this.scanner = new Scanner(); this.parser = new Parser(); this.generator = new CISCCodeGenerator(); this.builder = new ProgramNodeBuilder(this.generator); }
public void Parse(Scanner scanner, ProgramNodeBuilder builder, string sourceCode) { this.scanner = scanner; this.builder = builder; // Разбить программу на токены состоящие из лексем. List <Token> tokens = scanner.Scan(sourceCode); // Проверить каждый токен состоящий из лексем на ошибки. foreach (Token token in tokens) { ParseToken(token.Lexemes); } builder.Build(tokens); }