コード例 #1
0
 public Compiler()
 {
     this.stream    = new ByteCodeStream();
     this.scanner   = new Scanner();
     this.parser    = new Parser();
     this.generator = new CISCCodeGenerator();
     this.builder   = new ProgramNodeBuilder(this.generator);
 }
コード例 #2
0
        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);
        }