public SyntaxTree(string input, bool parseFull = true) { Diagnostics = new DiagnosticContainer(); Source = new TextSource(input); var tokenStream = GetTokens(input); tokenStream.Fill(); Tokens = tokenStream.GetTokens(); if (parseFull) { CommonTokenStream tokens = GetTokens(input); GLangParser parser = new GLangParser(tokens); parser.RemoveErrorListeners(); var ast = ASTProducer.CreateAST(parser.compilationUnit()); if (ast.Value is CompilationUnitSyntax compSyntax) { Root = compSyntax; } else { Root = null; } Diagnostics.AddDiagnostics(ast.Diagnostics); } }
internal Evaluator(BoundProgram program, Dictionary <VariableSymbol, object> variables) { diagnostics = new DiagnosticContainer(); Program = program; globals = variables; locals = new Stack <Dictionary <VariableSymbol, object> >(); }
public Interperatation(SyntaxTree input, Interperatation previous = null) { InputTree = input; diagnostics = new DiagnosticContainer(); CreateGlobalScope(input.Root, previous); CreateProgram(); }
public static BoundStatement Error(Diagnostic diagnostic, ref DiagnosticContainer diagnostics) { diagnostics.AddDiagnostic(diagnostic); return(Error(diagnostic)); }
public FunctionBinder(BoundScope programScope) { diagnostics = new DiagnosticContainer(); functions = new List <FunctionSymbol>(); scope = programScope; }
public BindingEnvironment(bool chainDiagnostics) { this.chainDiagnostics = chainDiagnostics; diagnostics = new DiagnosticContainer(); }
public static BoundExpression Error(Diagnostic diagnostic, ref DiagnosticContainer diagnostics) { diagnostics.AddDiagnostic(diagnostic); return(Error(diagnostic)); }