public override void BuildAst(LanguageData language, ParseTree parseTree) { var opHandler = new OperatorHandler(language.Grammar.CaseSensitive); Util.Check(!parseTree.HasErrors(), "ParseTree has errors, cannot build AST."); var astContext = new InterpreterAstContext(language, opHandler); var astBuilder = new AstBuilder(astContext); astBuilder.BuildAst(parseTree); }
/// <summary>Builds the AST for the specified language data and parse tree.</summary> /// <param name="language">The language data.</param> /// <param name="parseTree">The parse tree to build the AST against.</param> public override void BuildAst(LanguageData language, ParseTree parseTree) { if (!LanguageFlags.IsSet(LanguageFlags.CreateAst)) return; var astContext=new InterpreterAstContext(language, _OperatorHandler); astContext.DefaultNodeType=typeof(NotSupportedNode); var astBuilder=new AstBuilder(astContext); astBuilder.BuildAst(parseTree); }