示例#1
0
        // throws RecognitionException [1]
        // $ANTLR start identifier
        // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1026:1: identifier : qualifiedIdent ( options {greedy=true; } : DOT qualifiedIdent )* -> ^( IDENTIFIER ( qualifiedIdent )+ ) ;
        public identifier_return identifier()
        {
            identifier_return retval = new identifier_return();
            retval.start = input.LT(1);
            int identifier_StartIndex = input.Index();
            CommonTree root_0 = null;

            CommonToken DOT173 = null;
            qualifiedIdent_return qualifiedIdent172 = null;

            qualifiedIdent_return qualifiedIdent174 = null;

            CommonTree DOT173_tree=null;
            RewriteRuleTokenStream stream_DOT = new RewriteRuleTokenStream(adaptor,"token DOT");
            RewriteRuleSubtreeStream stream_qualifiedIdent = new RewriteRuleSubtreeStream(adaptor,"rule qualifiedIdent");
            try
            {
            if ( (backtracking > 0) && AlreadyParsedRule(input, 65) )
            {
                return retval;
            }
            // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1027:4: ( qualifiedIdent ( options {greedy=true; } : DOT qualifiedIdent )* -> ^( IDENTIFIER ( qualifiedIdent )+ ) )
            // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1027:4: qualifiedIdent ( options {greedy=true; } : DOT qualifiedIdent )*
            {
                PushFollow(FOLLOW_qualifiedIdent_in_identifier3221);
                qualifiedIdent172 = qualifiedIdent();
                followingStackPointer_--;
                if (failed) return retval;
                if ( backtracking==0 ) stream_qualifiedIdent.Add(qualifiedIdent172.Tree);
                if ( backtracking == 0 )
                {

                }
                // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1028:3: ( options {greedy=true; } : DOT qualifiedIdent )*
                do
                {
                    int alt46 = 2;
                    int LA46_0 = input.LA(1);

                    if ( (LA46_0 == DOT) )
                    {
                        alt46 = 1;
                    }

                    switch (alt46)
                    {
                        case 1 :
                            // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1029:6: DOT qualifiedIdent
                            {
                                DOT173 = (CommonToken)input.LT(1);
                                Match(input,DOT,FOLLOW_DOT_in_identifier3245); if (failed) return retval;
                                if ( backtracking==0 ) stream_DOT.Add(DOT173);

                                if ( backtracking == 0 )
                                {
                                   buffer.Append(".");
                                }
                                PushFollow(FOLLOW_qualifiedIdent_in_identifier3249);
                                qualifiedIdent174 = qualifiedIdent();
                                followingStackPointer_--;
                                if (failed) return retval;
                                if ( backtracking==0 ) stream_qualifiedIdent.Add(qualifiedIdent174.Tree);

                            }
                            break;

                        default:
                            goto loop46;
                    }
                } while (true);

                loop46:
                    ;	// Stops C# compiler whinging that label 'loop46' has no statements

                // AST REWRITE
                // elements:          qualifiedIdent
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( backtracking==0 ) {
                retval.tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (CommonTree)adaptor.GetNilNode();
                // 1031:3: -> ^( IDENTIFIER ( qualifiedIdent )+ )
                {
                    // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1031:6: ^( IDENTIFIER ( qualifiedIdent )+ )
                    {
                    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
                    root_1 = (CommonTree)adaptor.BecomeRoot(adaptor.Create(IDENTIFIER, "IDENTIFIER"), root_1);

                    if ( !(stream_qualifiedIdent.HasNext()) ) {
                        throw new RewriteEarlyExitException();
                    }
                    while ( stream_qualifiedIdent.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_qualifiedIdent.Next());

                    }
                    stream_qualifiedIdent.Reset();

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                }

            }

            retval.stop = input.LT(-1);

            if ( backtracking==0 )
            {	retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, retval.start, retval.stop);
            }
            }

            catch (NoViableAltException e)
            {
                Debug.WriteLine("NoValiable alt: token=" + e.Token + " (decision=" + e.decisionNumber + " state " + e.stateNumber + ")" + " decision=<<" + e.grammarDecisionDescription + ">>");
                throw e;
            }
            catch (MismatchedTokenException e)
            {
                Debug.WriteLine("[" + e.Line + ":" + e.Index + "]: " + e.Message + ". Unexpected " + e.UnexpectedType.ToString() +  "( expecting: "+ e.expecting + " )");
                throw e;
            }
            catch(RecognitionException e)
            {
                Debug.WriteLine("RecognitionException: " + e);
                throw e;
            }
            finally
            {
            if ( backtracking > 0 )
            {
                Memoize(input, 65, identifier_StartIndex);
            }
            }
            return retval;
        }
		// $ANTLR start "identifier"
		// C:\\Projects\\CalcEngine\\src\\CalcEngine\\Parsers\\Antlr\\AntlrCalcEngine.g:262:1: identifier : ID -> ^( IDENTIFIER ID ) ;
		public identifier_return identifier() // throws RecognitionException [1]
		{
			var retval = new identifier_return();
			retval.Start = input.LT( 1 );

			CommonTree root_0 = null;

			IToken ID92 = null;

			CommonTree ID92_tree = null;
			var stream_ID = new RewriteRuleTokenStream( adaptor, "token ID" );

			try
			{
				// C:\\Projects\\CalcEngine\\src\\CalcEngine\\Parsers\\Antlr\\AntlrCalcEngine.g:263:2: ( ID -> ^( IDENTIFIER ID ) )
				// C:\\Projects\\CalcEngine\\src\\CalcEngine\\Parsers\\Antlr\\AntlrCalcEngine.g:263:4: ID
				{
					ID92 = (IToken)Match( input, ID, FOLLOW_ID_in_identifier1399 );
					stream_ID.Add( ID92 );


					// AST REWRITE
					// elements:          ID
					// token labels:      
					// rule labels:       retval
					// token list labels: 
					// rule list labels:  
					// wildcard labels: 
					retval.Tree = root_0;
					var stream_retval = new RewriteRuleSubtreeStream( adaptor, "rule retval", retval != null ? retval.Tree : null );

					root_0 = (CommonTree)adaptor.GetNilNode();
					// 263:7: -> ^( IDENTIFIER ID )
					{
						// C:\\Projects\\CalcEngine\\src\\CalcEngine\\Parsers\\Antlr\\AntlrCalcEngine.g:263:10: ^( IDENTIFIER ID )
						{
							var root_1 = (CommonTree)adaptor.GetNilNode();
							root_1 = (CommonTree)adaptor.BecomeRoot( adaptor.Create( IDENTIFIER, "IDENTIFIER" ), root_1 );

							adaptor.AddChild( root_1, stream_ID.NextNode() );

							adaptor.AddChild( root_0, root_1 );
						}
					}

					retval.Tree = root_0;
					retval.Tree = root_0;
				}

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

				retval.Tree = 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 = adaptor.ErrorNode( input, (IToken)retval.Start, input.LT( -1 ), re );
			}
			finally {}
			return retval;
		}
示例#3
0
    // $ANTLR start identifier
    // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:188:1: identifier returns [Identifier value] : ID ;
    public identifier_return identifier() // throws RecognitionException [1]
    {   
        identifier_return retval = new identifier_return();
        retval.start = input.LT(1);
        
        CommonTree root_0 = null;
    
        IToken ID51 = null;
        
        CommonTree ID51_tree=null;
    
        try 
    	{
            // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:189:2: ( ID )
            // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:189:5: ID
            {
            	root_0 = (CommonTree)adaptor.GetNilNode();
            
            	ID51 = (IToken)input.LT(1);
            	Match(input,ID,FOLLOW_ID_in_identifier869); 
            	ID51_tree = (CommonTree)adaptor.Create(ID51);
            	adaptor.AddChild(root_0, ID51_tree);

            	 retval.value =  new Identifier(ID51.Text); 
            
            }
    
            retval.stop = input.LT(-1);
            
            	retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, retval.start, retval.stop);
    
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return retval;
    }