Beispiel #1
0
        public void Get(int startIndex, int endIndex, out Node node, out Node statement, out ScopeStatement scope)
        {
            ExpressionWalker walker;

            if (Options.Keywords)
            {
                walker = new KeywordWalker(Ast, startIndex, endIndex);
                Ast.Walk(walker);
                if (walker.Expression != null)
                {
                    node      = walker.Expression;
                    statement = walker.Statement;
                    scope     = walker.Scope;
                    return;
                }
            }
            if (Options.MemberTarget)
            {
                walker = new MemberTargetExpressionWalker(Ast, startIndex);
            }
            else
            {
                walker = new NormalExpressionWalker(Ast, startIndex, endIndex, Options);
            }
            Ast.Walk(walker);
            node      = walker.Expression;
            statement = walker.Statement;
            scope     = walker.Scope;
        }
Beispiel #2
0
        public Node GetExpression(int startIndex, int endIndex)
        {
            ExpressionWalker walker;

            if (Options.Keywords)
            {
                walker = new KeywordWalker(Ast, startIndex, endIndex);
                Ast.Walk(walker);
                if (walker.Expression != null)
                {
                    return(walker.Expression);
                }
            }
            if (Options.MemberTarget)
            {
                walker = new MemberTargetExpressionWalker(Ast, startIndex);
            }
            else
            {
                walker = new NormalExpressionWalker(Ast, startIndex, endIndex, Options);
            }
            Ast.Walk(walker);
            return(walker.Expression);
        }