Example #1
0
 public void VisitThisRef(ThisRef thisRef)
 {
     // Everything is expected to be inlined,
     // "this" is expected to be constant
     // => nothing to do
     // however...
     throw new NotSupportedException();
 }
Example #2
0
 /// <summary>
 /// Visits the "this" reference literal. The default implementation saves it to <c>_tlit</c>.
 /// </summary>
 /// <param name="thisRef">"this" reference literal</param>
 public virtual void VisitThisRef(ThisRef thisRef)
 {
     _tlit = thisRef;
 }
Example #3
0
 public object EvalThisRef(ThisRef thisRef)
 {
     return(DoEvalThisRef(thisRef));
 }
Example #4
0
 public object DefaultEvalThisRef(ThisRef thisRef)
 {
     return(ThisRef.DefaultEval(thisRef));
 }
    // $ANTLR start "primaryExpression"
    // JavaScript.g:330:1: primaryExpression : ( 'this' | Identifier | literal | arrayLiteral | objectLiteral | '(' expression ')' );
    public JavaScriptParser.primaryExpression_return primaryExpression() // throws RecognitionException [1]
    {   
        JavaScriptParser.primaryExpression_return retval = new JavaScriptParser.primaryExpression_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal396 = null;
        IToken Identifier397 = null;
        IToken char_literal401 = null;
        IToken char_literal403 = null;
        JavaScriptParser.literal_return literal398 = default(JavaScriptParser.literal_return);

        JavaScriptParser.arrayLiteral_return arrayLiteral399 = default(JavaScriptParser.arrayLiteral_return);

        JavaScriptParser.objectLiteral_return objectLiteral400 = default(JavaScriptParser.objectLiteral_return);

        JavaScriptParser.expression_return expression402 = default(JavaScriptParser.expression_return);


        object string_literal396_tree=null;
        object Identifier397_tree=null;
        object char_literal401_tree=null;
        object char_literal403_tree=null;

        try 
    	{
            // JavaScript.g:331:2: ( 'this' | Identifier | literal | arrayLiteral | objectLiteral | '(' expression ')' )
            int alt201 = 6;
            switch ( input.LA(1) ) 
            {
            case 111:
            	{
                alt201 = 1;
                }
                break;
            case Identifier:
            	{
                alt201 = 2;
                }
                break;
            case StringLiteral:
            case NumericLiteral:
            case RegexLiteral:
            case 112:
            case 113:
            case 114:
            	{
                alt201 = 3;
                }
                break;
            case 67:
            	{
                alt201 = 4;
                }
                break;
            case 40:
            	{
                alt201 = 5;
                }
                break;
            case 42:
            	{
                alt201 = 6;
                }
                break;
            	default:
            	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            	    NoViableAltException nvae_d201s0 =
            	        new NoViableAltException("", 201, 0, input);

            	    throw nvae_d201s0;
            }

            switch (alt201) 
            {
                case 1 :
                    // JavaScript.g:331:4: 'this'
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	string_literal396=(IToken)Match(input,111,FOLLOW_111_in_primaryExpression3017); if (state.failed) return retval;
                    	if ( state.backtracking == 0 )
                    	{string_literal396_tree = new ThisRef(string_literal396) ;
                    		adaptor.AddChild(root_0, string_literal396_tree);
                    	}

                    }
                    break;
                case 2 :
                    // JavaScript.g:332:4: Identifier
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	Identifier397=(IToken)Match(input,Identifier,FOLLOW_Identifier_in_primaryExpression3026); if (state.failed) return retval;
                    	if ( state.backtracking == 0 )
                    	{Identifier397_tree = new IdentifierNode(Identifier397) ;
                    		adaptor.AddChild(root_0, Identifier397_tree);
                    	}

                    }
                    break;
                case 3 :
                    // JavaScript.g:333:4: literal
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_literal_in_primaryExpression3034);
                    	literal398 = literal();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, literal398.Tree);

                    }
                    break;
                case 4 :
                    // JavaScript.g:334:4: arrayLiteral
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_arrayLiteral_in_primaryExpression3040);
                    	arrayLiteral399 = arrayLiteral();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, arrayLiteral399.Tree);

                    }
                    break;
                case 5 :
                    // JavaScript.g:335:4: objectLiteral
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_objectLiteral_in_primaryExpression3046);
                    	objectLiteral400 = objectLiteral();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, objectLiteral400.Tree);

                    }
                    break;
                case 6 :
                    // JavaScript.g:336:4: '(' expression ')'
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	char_literal401=(IToken)Match(input,42,FOLLOW_42_in_primaryExpression3052); if (state.failed) return retval;
                    	PushFollow(FOLLOW_expression_in_primaryExpression3055);
                    	expression402 = expression();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, expression402.Tree);
                    	char_literal403=(IToken)Match(input,44,FOLLOW_44_in_primaryExpression3057); if (state.failed) return retval;

                    }
                    break;

            }
            retval.Stop = input.LT(-1);

            if ( (state.backtracking==0) )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
        }
        return retval;
    }
 public void VisitThisRef(ThisRef thisRef)
 {
     _result = thisRef;
 }
Example #7
0
 public void VisitThisRef(ThisRef thisRef)
 {
     throw new NotSupportedException();
 }
 /// <summary>
 /// Visits the "this" reference literal. The default implementation saves it to <c>_tlit</c>.
 /// </summary>
 /// <param name="thisRef">"this" reference literal</param>
 public virtual void VisitThisRef(ThisRef thisRef)
 {
     _tlit = thisRef;
 }