// $ANTLR start "selector" // D:\\lesscss.g:105:10: fragment selector : ( IDENT | SelectorClass | SelectorID ); public lesscssParser.selector_return selector() // throws RecognitionException [1] { lesscssParser.selector_return retval = new lesscssParser.selector_return(); retval.Start = input.LT(1); CommonTree root_0 = null; IToken set57 = null; CommonTree set57_tree=null; try { // D:\\lesscss.g:106:2: ( IDENT | SelectorClass | SelectorID ) // D:\\lesscss.g: { root_0 = (CommonTree)adaptor.GetNilNode(); set57 = (IToken)input.LT(1); if ( input.LA(1) == IDENT || (input.LA(1) >= SelectorClass && input.LA(1) <= SelectorID) ) { input.Consume(); adaptor.AddChild(root_0, (CommonTree)adaptor.Create(set57)); state.errorRecovery = false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } } retval.Stop = input.LT(-1); retval.Tree = (CommonTree)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 = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } return retval; }
// $ANTLR start "selector" // D:\\development\\Less.Net\\lesscss.g:109:10: fragment selector : ( IDENT -> ^( TAG IDENT ) | '#' IDENT -> ^( ID IDENT ) | '.' IDENT -> ^( CLASS IDENT ) ); public lesscssParser.selector_return selector() // throws RecognitionException [1] { lesscssParser.selector_return retval = new lesscssParser.selector_return(); retval.Start = input.LT(1); CommonTree root_0 = null; IToken IDENT57 = null; IToken char_literal58 = null; IToken IDENT59 = null; IToken char_literal60 = null; IToken IDENT61 = null; CommonTree IDENT57_tree=null; CommonTree char_literal58_tree=null; CommonTree IDENT59_tree=null; CommonTree char_literal60_tree=null; CommonTree IDENT61_tree=null; RewriteRuleTokenStream stream_49 = new RewriteRuleTokenStream(adaptor,"token 49"); RewriteRuleTokenStream stream_IDENT = new RewriteRuleTokenStream(adaptor,"token IDENT"); RewriteRuleTokenStream stream_50 = new RewriteRuleTokenStream(adaptor,"token 50"); try { // D:\\development\\Less.Net\\lesscss.g:110:2: ( IDENT -> ^( TAG IDENT ) | '#' IDENT -> ^( ID IDENT ) | '.' IDENT -> ^( CLASS IDENT ) ) int alt17 = 3; switch ( input.LA(1) ) { case IDENT: { alt17 = 1; } break; case 49: { alt17 = 2; } break; case 50: { alt17 = 3; } break; default: NoViableAltException nvae_d17s0 = new NoViableAltException("", 17, 0, input); throw nvae_d17s0; } switch (alt17) { case 1 : // D:\\development\\Less.Net\\lesscss.g:110:4: IDENT { IDENT57=(IToken)Match(input,IDENT,FOLLOW_IDENT_in_selector660); stream_IDENT.Add(IDENT57); // AST REWRITE // elements: IDENT // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (CommonTree)adaptor.GetNilNode(); // 110:10: -> ^( TAG IDENT ) { // D:\\development\\Less.Net\\lesscss.g:110:13: ^( TAG IDENT ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(TAG, "TAG"), root_1); adaptor.AddChild(root_1, stream_IDENT.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; case 2 : // D:\\development\\Less.Net\\lesscss.g:110:28: '#' IDENT { char_literal58=(IToken)Match(input,49,FOLLOW_49_in_selector672); stream_49.Add(char_literal58); IDENT59=(IToken)Match(input,IDENT,FOLLOW_IDENT_in_selector674); stream_IDENT.Add(IDENT59); // AST REWRITE // elements: IDENT // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (CommonTree)adaptor.GetNilNode(); // 110:38: -> ^( ID IDENT ) { // D:\\development\\Less.Net\\lesscss.g:110:41: ^( ID IDENT ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(ID, "ID"), root_1); adaptor.AddChild(root_1, stream_IDENT.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; case 3 : // D:\\development\\Less.Net\\lesscss.g:110:55: '.' IDENT { char_literal60=(IToken)Match(input,50,FOLLOW_50_in_selector686); stream_50.Add(char_literal60); IDENT61=(IToken)Match(input,IDENT,FOLLOW_IDENT_in_selector688); stream_IDENT.Add(IDENT61); // AST REWRITE // elements: IDENT // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (CommonTree)adaptor.GetNilNode(); // 110:65: -> ^( CLASS IDENT ) { // D:\\development\\Less.Net\\lesscss.g:110:68: ^( CLASS IDENT ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(CLASS, "CLASS"), root_1); adaptor.AddChild(root_1, stream_IDENT.NextNode()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0;retval.Tree = root_0; } break; } retval.Stop = input.LT(-1); retval.Tree = (CommonTree)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 = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { } return retval; }