Beispiel #1
0
        public static bool Compile(string file, string assemblyName, IDiagnostics diag)
        {
            var reader = new StreamReader(file);
            var lexer  = new Lexer(reader);
            var emit   = new Emit(assemblyName);
            var parser = new Parser(lexer, diag);

            diag.BeginSourceFile(file);
            bool isProgram = parser.Parse(out var syntaxTree);

            diag.Traverse(syntaxTree);

            diag.EndSourceFile();

            if (isProgram)
            {
                emit.WriteExecutable();
            }

            return(isProgram);
        }