public override void BuildAst(LanguageData language, ParseTree parseTree)
        {
            var opHandler = new OperatorHandler(language.Grammar.CaseSensitive);

            Util.Ensure(!parseTree.HasErrors, "ParseTree has errors, cannot build AST.");
            var astContext = new InterpreterAstContext(language, opHandler);
            var astBuilder = new AstBuilder(astContext);

            astBuilder.BuildAst(parseTree);
        }
        public override void BuildAst(LanguageData language, ParseTree parseTree)
        {
            var opHandler = CreateOpeartorHandler(language);

            Util.Check(!parseTree.HasErrors(), "ParseTree has errors, cannot build AST.");
            var astContext = new InterpreterAstContext(language, opHandler);
            var astBuilder = new AstBuilder(astContext);

            astBuilder.BuildAst(parseTree);
        }
Beispiel #3
0
        /// <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);
        }