// $ANTLR 3.0.1 /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g 2011-12-21 22:33:13
package com.threelevers.css;
import static com.threelevers.css.CssSelectors.*;
import static com.threelevers.css.Combinator.*;
import static com.threelevers.css.AttributeComparator.*;
import static com.threelevers.css.NthExpressions.*;
import java.util.List;
import java.util.LinkedList;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
public class CssSelectorsParser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "S", "IDENT", "STRING", "NUMBER", "DASH", "','", "'+'", "'>'", "'~'", "'*'", "'#'", "'.'", "'['", "'='", "'^='", "'$='", "'*='", "'~='", "'|='", "']'", "':'", "'first-child'", "'last-child'", "'only-child'", "'first-of-type'", "'last-of-type'", "'only-of-type'", "'empty'", "'enabled'", "'disabled'", "'checked'", "'selected'", "'nth-child('", "'odd'", "'even'", "')'", "'nth-last-child('", "'nth-of-type('", "'nth-last-of-type('", "'not('"
};
public static final int DASH=8;
public static final int NUMBER=7;
public static final int IDENT=5;
public static final int S=4;
public static final int EOF=-1;
public static final int STRING=6;
public CssSelectorsParser(TokenStream input) {
super(input);
}
public String[] getTokenNames() { return tokenNames; }
public String getGrammarFileName() { return "/Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g"; }
// $ANTLR start selectors
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:18:1: selectors returns [GroupingSelector selector] : s= selector ( ',' s= selector )* ;
public final GroupingSelector selectors() throws RecognitionException {
GroupingSelector selector = null;
CombinableSelector s = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:19:5: (s= selector ( ',' s= selector )* )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:19:7: s= selector ( ',' s= selector )*
{
pushFollow(FOLLOW_selector_in_selectors38);
s=selector();
_fsp--;
selector = CssSelectors.selectors(s);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:20:7: ( ',' s= selector )*
loop1:
do {
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==9) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:20:8: ',' s= selector
{
match(input,9,FOLLOW_9_in_selectors49);
pushFollow(FOLLOW_selector_in_selectors53);
s=selector();
_fsp--;
selector = selector.or(s);
}
break;
default :
break loop1;
}
} while (true);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end selectors
// $ANTLR start selector
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:23:1: selector returns [CombinableSelector selector] : ( S )* s= simple_selector (c= combinator s= simple_selector )* ;
public final CombinableSelector selector() throws RecognitionException {
CombinableSelector selector = null;
SimpleSelector s = null;
Combinator c = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:24:5: ( ( S )* s= simple_selector (c= combinator s= simple_selector )* )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:24:7: ( S )* s= simple_selector (c= combinator s= simple_selector )*
{
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:24:7: ( S )*
loop2:
do {
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==S) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:24:7: S
{
match(input,S,FOLLOW_S_in_selector83);
}
break;
default :
break loop2;
}
} while (true);
pushFollow(FOLLOW_simple_selector_in_selector88);
s=simple_selector();
_fsp--;
selector = CssSelectors.selector(s);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:25:7: (c= combinator s= simple_selector )*
loop3:
do {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==S||(LA3_0>=10 && LA3_0<=12)) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:25:9: c= combinator s= simple_selector
{
pushFollow(FOLLOW_combinator_in_selector102);
c=combinator();
_fsp--;
pushFollow(FOLLOW_simple_selector_in_selector106);
s=simple_selector();
_fsp--;
switch (c) {
case DESCENDANT:
selector = selector.ancestorOf(s);
break;
case ADJACENT:
selector = selector.adjacentTo(s);
break;
case CHILDOF:
selector = selector.parentOf(s);
break;
case SIBLING:
selector = selector.siblingOf(s);
break;
}
}
break;
default :
break loop3;
}
} while (true);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end selector
// $ANTLR start combinator
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:43:1: combinator returns [Combinator combinator] : ( S | ( S )* '+' | ( S )* '>' | ( S )* '~' ) ( S )* ;
public final Combinator combinator() throws RecognitionException {
Combinator combinator = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:44:5: ( ( S | ( S )* '+' | ( S )* '>' | ( S )* '~' ) ( S )* )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:44:7: ( S | ( S )* '+' | ( S )* '>' | ( S )* '~' ) ( S )*
{
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:44:7: ( S | ( S )* '+' | ( S )* '>' | ( S )* '~' )
int alt7=4;
alt7 = dfa7.predict(input);
switch (alt7) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:44:9: S
{
match(input,S,FOLLOW_S_in_combinator134);
combinator = DESCENDANT;
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:45:9: ( S )* '+'
{
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:45:9: ( S )*
loop4:
do {
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==S) ) {
alt4=1;
}
switch (alt4) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:45:9: S
{
match(input,S,FOLLOW_S_in_combinator146);
}
break;
default :
break loop4;
}
} while (true);
match(input,10,FOLLOW_10_in_combinator149);
combinator = ADJACENT;
}
break;
case 3 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:46:9: ( S )* '>'
{
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:46:9: ( S )*
loop5:
do {
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==S) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:46:9: S
{
match(input,S,FOLLOW_S_in_combinator161);
}
break;
default :
break loop5;
}
} while (true);
match(input,11,FOLLOW_11_in_combinator164);
combinator = CHILDOF;
}
break;
case 4 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:47:9: ( S )* '~'
{
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:47:9: ( S )*
loop6:
do {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==S) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:47:9: S
{
match(input,S,FOLLOW_S_in_combinator176);
}
break;
default :
break loop6;
}
} while (true);
match(input,12,FOLLOW_12_in_combinator179);
combinator = SIBLING;
}
break;
}
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:47:45: ( S )*
loop8:
do {
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==S) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:47:45: S
{
match(input,S,FOLLOW_S_in_combinator185);
}
break;
default :
break loop8;
}
} while (true);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return combinator;
}
// $ANTLR end combinator
// $ANTLR start simple_selector
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:50:1: simple_selector returns [SimpleSelector selector] : ( ( type_selector | universal ) ( element_selector )* | e= element_selector (e= element_selector )* );
public final SimpleSelector simple_selector() throws RecognitionException {
SimpleSelector selector = null;
ElementSelector e = null;
TypeSelector type_selector1 = null;
TypeSelector universal2 = null;
ElementSelector element_selector3 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:51:5: ( ( type_selector | universal ) ( element_selector )* | e= element_selector (e= element_selector )* )
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==IDENT||LA12_0==13) ) {
alt12=1;
}
else if ( ((LA12_0>=14 && LA12_0<=16)||LA12_0==24) ) {
alt12=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("50:1: simple_selector returns [SimpleSelector selector] : ( ( type_selector | universal ) ( element_selector )* | e= element_selector (e= element_selector )* );", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:51:7: ( type_selector | universal ) ( element_selector )*
{
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:51:7: ( type_selector | universal )
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==IDENT) ) {
alt9=1;
}
else if ( (LA9_0==13) ) {
alt9=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("51:7: ( type_selector | universal )", 9, 0, input);
throw nvae;
}
switch (alt9) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:51:9: type_selector
{
pushFollow(FOLLOW_type_selector_in_simple_selector209);
type_selector1=type_selector();
_fsp--;
selector = type_selector1;
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:52:9: universal
{
pushFollow(FOLLOW_universal_in_simple_selector222);
universal2=universal();
_fsp--;
selector = universal2;
}
break;
}
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:53:7: ( element_selector )*
loop10:
do {
int alt10=2;
int LA10_0 = input.LA(1);
if ( ((LA10_0>=14 && LA10_0<=16)||LA10_0==24) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:53:9: element_selector
{
pushFollow(FOLLOW_element_selector_in_simple_selector236);
element_selector3=element_selector();
_fsp--;
selector = selector.and(element_selector3);
}
break;
default :
break loop10;
}
} while (true);
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:54:7: e= element_selector (e= element_selector )*
{
pushFollow(FOLLOW_element_selector_in_simple_selector251);
e=element_selector();
_fsp--;
selector = e;
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:55:7: (e= element_selector )*
loop11:
do {
int alt11=2;
int LA11_0 = input.LA(1);
if ( ((LA11_0>=14 && LA11_0<=16)||LA11_0==24) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:55:9: e= element_selector
{
pushFollow(FOLLOW_element_selector_in_simple_selector265);
e=element_selector();
_fsp--;
selector.and(e);
}
break;
default :
break loop11;
}
} while (true);
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end simple_selector
// $ANTLR start element_selector
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:58:1: element_selector returns [ElementSelector selector] : ( id_selector | class_selector | attrib_selector | pseudo_selector );
public final ElementSelector element_selector() throws RecognitionException {
ElementSelector selector = null;
ElementSelector id_selector4 = null;
ElementSelector class_selector5 = null;
ElementSelector attrib_selector6 = null;
ElementSelector pseudo_selector7 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:59:5: ( id_selector | class_selector | attrib_selector | pseudo_selector )
int alt13=4;
switch ( input.LA(1) ) {
case 14:
{
alt13=1;
}
break;
case 15:
{
alt13=2;
}
break;
case 16:
{
alt13=3;
}
break;
case 24:
{
alt13=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("58:1: element_selector returns [ElementSelector selector] : ( id_selector | class_selector | attrib_selector | pseudo_selector );", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:59:7: id_selector
{
pushFollow(FOLLOW_id_selector_in_element_selector290);
id_selector4=id_selector();
_fsp--;
selector = id_selector4;
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:60:7: class_selector
{
pushFollow(FOLLOW_class_selector_in_element_selector300);
class_selector5=class_selector();
_fsp--;
selector = class_selector5;
}
break;
case 3 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:61:7: attrib_selector
{
pushFollow(FOLLOW_attrib_selector_in_element_selector310);
attrib_selector6=attrib_selector();
_fsp--;
selector = attrib_selector6;
}
break;
case 4 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:62:7: pseudo_selector
{
pushFollow(FOLLOW_pseudo_selector_in_element_selector320);
pseudo_selector7=pseudo_selector();
_fsp--;
selector = pseudo_selector7;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end element_selector
// $ANTLR start type_selector
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:66:1: type_selector returns [TypeSelector selector] : element_name ;
public final TypeSelector type_selector() throws RecognitionException {
TypeSelector selector = null;
element_name_return element_name8 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:67:5: ( element_name )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:67:35: element_name
{
pushFollow(FOLLOW_element_name_in_type_selector346);
element_name8=element_name();
_fsp--;
selector = tag(input.toString(element_name8.start,element_name8.stop));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end type_selector
public static class element_name_return extends ParserRuleReturnScope {
};
// $ANTLR start element_name
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:70:1: element_name : IDENT ;
public final element_name_return element_name() throws RecognitionException {
element_name_return retval = new element_name_return();
retval.start = input.LT(1);
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:71:5: ( IDENT )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:71:7: IDENT
{
match(input,IDENT,FOLLOW_IDENT_in_element_name365);
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end element_name
// $ANTLR start universal
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:75:1: universal returns [TypeSelector selector] : '*' ;
public final TypeSelector universal() throws RecognitionException {
TypeSelector selector = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:76:5: ( '*' )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:76:35: '*'
{
match(input,13,FOLLOW_13_in_universal389);
selector = any();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end universal
// $ANTLR start id_selector
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:80:1: id_selector returns [ElementSelector selector] : '#' id= IDENT ;
public final ElementSelector id_selector() throws RecognitionException {
ElementSelector selector = null;
Token id=null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:81:5: ( '#' id= IDENT )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:81:7: '#' id= IDENT
{
match(input,14,FOLLOW_14_in_id_selector413);
id=(Token)input.LT(1);
match(input,IDENT,FOLLOW_IDENT_in_id_selector417);
selector = id(id.getText());
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end id_selector
// $ANTLR start class_selector
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:84:1: class_selector returns [ElementSelector selector] : '.' className= IDENT ;
public final ElementSelector class_selector() throws RecognitionException {
ElementSelector selector = null;
Token className=null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:85:5: ( '.' className= IDENT )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:85:7: '.' className= IDENT
{
match(input,15,FOLLOW_15_in_class_selector440);
className=(Token)input.LT(1);
match(input,IDENT,FOLLOW_IDENT_in_class_selector444);
selector = cssClass(className.getText());
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end class_selector
// $ANTLR start attrib_selector
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:89:1: attrib_selector returns [ElementSelector selector] : '[' ( S )* attribName= IDENT ( S )* ( ( '=' ( S )* v= STRING | '^=' ( S )* v= STRING | '$=' ( S )* v= STRING | '*=' ( S )* v= STRING | '~=' ( S )* v= STRING | '|=' ( S )* v= STRING | '=' ( S )* a= IDENT | '^=' ( S )* a= IDENT | '$=' ( S )* a= IDENT | '*=' ( S )* a= IDENT | '~=' ( S )* a= IDENT | '|=' ( S )* a= IDENT ) ( S )* )? ']' ;
public final ElementSelector attrib_selector() throws RecognitionException {
ElementSelector selector = null;
Token attribName=null;
Token v=null;
Token a=null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:90:5: ( '[' ( S )* attribName= IDENT ( S )* ( ( '=' ( S )* v= STRING | '^=' ( S )* v= STRING | '$=' ( S )* v= STRING | '*=' ( S )* v= STRING | '~=' ( S )* v= STRING | '|=' ( S )* v= STRING | '=' ( S )* a= IDENT | '^=' ( S )* a= IDENT | '$=' ( S )* a= IDENT | '*=' ( S )* a= IDENT | '~=' ( S )* a= IDENT | '|=' ( S )* a= IDENT ) ( S )* )? ']' )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:90:7: '[' ( S )* attribName= IDENT ( S )* ( ( '=' ( S )* v= STRING | '^=' ( S )* v= STRING | '$=' ( S )* v= STRING | '*=' ( S )* v= STRING | '~=' ( S )* v= STRING | '|=' ( S )* v= STRING | '=' ( S )* a= IDENT | '^=' ( S )* a= IDENT | '$=' ( S )* a= IDENT | '*=' ( S )* a= IDENT | '~=' ( S )* a= IDENT | '|=' ( S )* a= IDENT ) ( S )* )? ']'
{
match(input,16,FOLLOW_16_in_attrib_selector468);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:90:11: ( S )*
loop14:
do {
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==S) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:90:11: S
{
match(input,S,FOLLOW_S_in_attrib_selector470);
}
break;
default :
break loop14;
}
} while (true);
attribName=(Token)input.LT(1);
match(input,IDENT,FOLLOW_IDENT_in_attrib_selector477);
selector = attrib(attribName.getText());
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:90:101: ( S )*
loop15:
do {
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==S) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:90:101: S
{
match(input,S,FOLLOW_S_in_attrib_selector481);
}
break;
default :
break loop15;
}
} while (true);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:91:7: ( ( '=' ( S )* v= STRING | '^=' ( S )* v= STRING | '$=' ( S )* v= STRING | '*=' ( S )* v= STRING | '~=' ( S )* v= STRING | '|=' ( S )* v= STRING | '=' ( S )* a= IDENT | '^=' ( S )* a= IDENT | '$=' ( S )* a= IDENT | '*=' ( S )* a= IDENT | '~=' ( S )* a= IDENT | '|=' ( S )* a= IDENT ) ( S )* )?
int alt30=2;
int LA30_0 = input.LA(1);
if ( ((LA30_0>=17 && LA30_0<=22)) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:91:9: ( '=' ( S )* v= STRING | '^=' ( S )* v= STRING | '$=' ( S )* v= STRING | '*=' ( S )* v= STRING | '~=' ( S )* v= STRING | '|=' ( S )* v= STRING | '=' ( S )* a= IDENT | '^=' ( S )* a= IDENT | '$=' ( S )* a= IDENT | '*=' ( S )* a= IDENT | '~=' ( S )* a= IDENT | '|=' ( S )* a= IDENT ) ( S )*
{
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:91:9: ( '=' ( S )* v= STRING | '^=' ( S )* v= STRING | '$=' ( S )* v= STRING | '*=' ( S )* v= STRING | '~=' ( S )* v= STRING | '|=' ( S )* v= STRING | '=' ( S )* a= IDENT | '^=' ( S )* a= IDENT | '$=' ( S )* a= IDENT | '*=' ( S )* a= IDENT | '~=' ( S )* a= IDENT | '|=' ( S )* a= IDENT )
int alt28=12;
alt28 = dfa28.predict(input);
switch (alt28) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:91:11: '=' ( S )* v= STRING
{
match(input,17,FOLLOW_17_in_attrib_selector494);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:91:15: ( S )*
loop16:
do {
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==S) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:91:15: S
{
match(input,S,FOLLOW_S_in_attrib_selector496);
}
break;
default :
break loop16;
}
} while (true);
v=(Token)input.LT(1);
match(input,STRING,FOLLOW_STRING_in_attrib_selector501);
selector = ((AttributeSelector) selector).equalTo(v.getText());
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:92:11: '^=' ( S )* v= STRING
{
match(input,18,FOLLOW_18_in_attrib_selector515);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:92:16: ( S )*
loop17:
do {
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==S) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:92:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector517);
}
break;
default :
break loop17;
}
} while (true);
v=(Token)input.LT(1);
match(input,STRING,FOLLOW_STRING_in_attrib_selector522);
selector = ((AttributeSelector) selector).startsWith(v.getText());
}
break;
case 3 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:93:11: '$=' ( S )* v= STRING
{
match(input,19,FOLLOW_19_in_attrib_selector536);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:93:16: ( S )*
loop18:
do {
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==S) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:93:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector538);
}
break;
default :
break loop18;
}
} while (true);
v=(Token)input.LT(1);
match(input,STRING,FOLLOW_STRING_in_attrib_selector543);
selector = ((AttributeSelector) selector).endsWith(v.getText());
}
break;
case 4 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:94:11: '*=' ( S )* v= STRING
{
match(input,20,FOLLOW_20_in_attrib_selector557);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:94:16: ( S )*
loop19:
do {
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==S) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:94:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector559);
}
break;
default :
break loop19;
}
} while (true);
v=(Token)input.LT(1);
match(input,STRING,FOLLOW_STRING_in_attrib_selector564);
selector = ((AttributeSelector) selector).contains(v.getText());
}
break;
case 5 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:95:11: '~=' ( S )* v= STRING
{
match(input,21,FOLLOW_21_in_attrib_selector578);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:95:16: ( S )*
loop20:
do {
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==S) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:95:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector580);
}
break;
default :
break loop20;
}
} while (true);
v=(Token)input.LT(1);
match(input,STRING,FOLLOW_STRING_in_attrib_selector585);
selector = ((AttributeSelector) selector).has(v.getText());
}
break;
case 6 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:96:11: '|=' ( S )* v= STRING
{
match(input,22,FOLLOW_22_in_attrib_selector599);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:96:16: ( S )*
loop21:
do {
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==S) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:96:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector601);
}
break;
default :
break loop21;
}
} while (true);
v=(Token)input.LT(1);
match(input,STRING,FOLLOW_STRING_in_attrib_selector606);
selector = ((AttributeSelector) selector).equalsLangSubcode(v.getText());
}
break;
case 7 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:97:11: '=' ( S )* a= IDENT
{
match(input,17,FOLLOW_17_in_attrib_selector620);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:97:15: ( S )*
loop22:
do {
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==S) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:97:15: S
{
match(input,S,FOLLOW_S_in_attrib_selector622);
}
break;
default :
break loop22;
}
} while (true);
a=(Token)input.LT(1);
match(input,IDENT,FOLLOW_IDENT_in_attrib_selector627);
selector = ((AttributeSelector) selector).equalTo(attrib(a.getText()));
}
break;
case 8 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:98:11: '^=' ( S )* a= IDENT
{
match(input,18,FOLLOW_18_in_attrib_selector641);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:98:16: ( S )*
loop23:
do {
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==S) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:98:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector643);
}
break;
default :
break loop23;
}
} while (true);
a=(Token)input.LT(1);
match(input,IDENT,FOLLOW_IDENT_in_attrib_selector648);
selector = ((AttributeSelector) selector).startsWith(attrib(a.getText()));
}
break;
case 9 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:99:11: '$=' ( S )* a= IDENT
{
match(input,19,FOLLOW_19_in_attrib_selector662);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:99:16: ( S )*
loop24:
do {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==S) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:99:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector664);
}
break;
default :
break loop24;
}
} while (true);
a=(Token)input.LT(1);
match(input,IDENT,FOLLOW_IDENT_in_attrib_selector669);
selector = ((AttributeSelector) selector).endsWith(attrib(a.getText()));
}
break;
case 10 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:100:11: '*=' ( S )* a= IDENT
{
match(input,20,FOLLOW_20_in_attrib_selector683);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:100:16: ( S )*
loop25:
do {
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==S) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:100:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector685);
}
break;
default :
break loop25;
}
} while (true);
a=(Token)input.LT(1);
match(input,IDENT,FOLLOW_IDENT_in_attrib_selector690);
selector = ((AttributeSelector) selector).contains(attrib(a.getText()));
}
break;
case 11 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:101:11: '~=' ( S )* a= IDENT
{
match(input,21,FOLLOW_21_in_attrib_selector704);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:101:16: ( S )*
loop26:
do {
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==S) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:101:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector706);
}
break;
default :
break loop26;
}
} while (true);
a=(Token)input.LT(1);
match(input,IDENT,FOLLOW_IDENT_in_attrib_selector711);
selector = ((AttributeSelector) selector).has(attrib(a.getText()));
}
break;
case 12 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:102:11: '|=' ( S )* a= IDENT
{
match(input,22,FOLLOW_22_in_attrib_selector725);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:102:16: ( S )*
loop27:
do {
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==S) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:102:16: S
{
match(input,S,FOLLOW_S_in_attrib_selector727);
}
break;
default :
break loop27;
}
} while (true);
a=(Token)input.LT(1);
match(input,IDENT,FOLLOW_IDENT_in_attrib_selector732);
selector = ((AttributeSelector) selector).equalsLangSubcode(attrib(a.getText()));
}
break;
}
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:103:11: ( S )*
loop29:
do {
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==S) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:103:11: S
{
match(input,S,FOLLOW_S_in_attrib_selector746);
}
break;
default :
break loop29;
}
} while (true);
}
break;
}
match(input,23,FOLLOW_23_in_attrib_selector758);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end attrib_selector
// $ANTLR start pseudo_selector
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:107:1: pseudo_selector returns [ElementSelector selector] : ':' ( ':' )? ( negation | functional_pseudo_selector ) ;
public final ElementSelector pseudo_selector() throws RecognitionException {
ElementSelector selector = null;
ElementSelector negation9 = null;
ElementSelector functional_pseudo_selector10 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:112:5: ( ':' ( ':' )? ( negation | functional_pseudo_selector ) )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:112:7: ':' ( ':' )? ( negation | functional_pseudo_selector )
{
match(input,24,FOLLOW_24_in_pseudo_selector803);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:112:11: ( ':' )?
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==24) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:112:11: ':'
{
match(input,24,FOLLOW_24_in_pseudo_selector805);
}
break;
}
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:113:9: ( negation | functional_pseudo_selector )
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==43) ) {
alt32=1;
}
else if ( ((LA32_0>=25 && LA32_0<=36)||(LA32_0>=40 && LA32_0<=42)) ) {
alt32=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("113:9: ( negation | functional_pseudo_selector )", 32, 0, input);
throw nvae;
}
switch (alt32) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:113:11: negation
{
pushFollow(FOLLOW_negation_in_pseudo_selector818);
negation9=negation();
_fsp--;
selector = negation9;
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:114:11: functional_pseudo_selector
{
pushFollow(FOLLOW_functional_pseudo_selector_in_pseudo_selector832);
functional_pseudo_selector10=functional_pseudo_selector();
_fsp--;
selector = functional_pseudo_selector10;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end pseudo_selector
// $ANTLR start functional_pseudo_selector
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:118:1: functional_pseudo_selector returns [ElementSelector selector] : ( nth_child | nth_last_child | 'first-child' | 'last-child' | 'only-child' | nth_of_type | nth_last_of_type | 'first-of-type' | 'last-of-type' | 'only-of-type' | 'empty' | 'enabled' | 'disabled' | 'checked' | 'selected' );
public final ElementSelector functional_pseudo_selector() throws RecognitionException {
ElementSelector selector = null;
ElementSelector nth_child11 = null;
ElementSelector nth_last_child12 = null;
ElementSelector nth_of_type13 = null;
ElementSelector nth_last_of_type14 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:119:5: ( nth_child | nth_last_child | 'first-child' | 'last-child' | 'only-child' | nth_of_type | nth_last_of_type | 'first-of-type' | 'last-of-type' | 'only-of-type' | 'empty' | 'enabled' | 'disabled' | 'checked' | 'selected' )
int alt33=15;
switch ( input.LA(1) ) {
case 36:
{
alt33=1;
}
break;
case 40:
{
alt33=2;
}
break;
case 25:
{
alt33=3;
}
break;
case 26:
{
alt33=4;
}
break;
case 27:
{
alt33=5;
}
break;
case 41:
{
alt33=6;
}
break;
case 42:
{
alt33=7;
}
break;
case 28:
{
alt33=8;
}
break;
case 29:
{
alt33=9;
}
break;
case 30:
{
alt33=10;
}
break;
case 31:
{
alt33=11;
}
break;
case 32:
{
alt33=12;
}
break;
case 33:
{
alt33=13;
}
break;
case 34:
{
alt33=14;
}
break;
case 35:
{
alt33=15;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("118:1: functional_pseudo_selector returns [ElementSelector selector] : ( nth_child | nth_last_child | 'first-child' | 'last-child' | 'only-child' | nth_of_type | nth_last_of_type | 'first-of-type' | 'last-of-type' | 'only-of-type' | 'empty' | 'enabled' | 'disabled' | 'checked' | 'selected' );", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:119:7: nth_child
{
pushFollow(FOLLOW_nth_child_in_functional_pseudo_selector865);
nth_child11=nth_child();
_fsp--;
selector = nth_child11;
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:120:7: nth_last_child
{
pushFollow(FOLLOW_nth_last_child_in_functional_pseudo_selector875);
nth_last_child12=nth_last_child();
_fsp--;
selector = nth_last_child12;
}
break;
case 3 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:121:7: 'first-child'
{
match(input,25,FOLLOW_25_in_functional_pseudo_selector885);
selector = firstChild();
}
break;
case 4 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:122:7: 'last-child'
{
match(input,26,FOLLOW_26_in_functional_pseudo_selector895);
selector = lastChild();
}
break;
case 5 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:123:7: 'only-child'
{
match(input,27,FOLLOW_27_in_functional_pseudo_selector905);
selector = onlyChild();
}
break;
case 6 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:124:7: nth_of_type
{
pushFollow(FOLLOW_nth_of_type_in_functional_pseudo_selector915);
nth_of_type13=nth_of_type();
_fsp--;
selector = nth_of_type13;
}
break;
case 7 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:125:7: nth_last_of_type
{
pushFollow(FOLLOW_nth_last_of_type_in_functional_pseudo_selector925);
nth_last_of_type14=nth_last_of_type();
_fsp--;
selector = nth_last_of_type14;
}
break;
case 8 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:126:7: 'first-of-type'
{
match(input,28,FOLLOW_28_in_functional_pseudo_selector935);
selector = firstOfType();
}
break;
case 9 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:127:7: 'last-of-type'
{
match(input,29,FOLLOW_29_in_functional_pseudo_selector945);
selector = lastOfType();
}
break;
case 10 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:128:7: 'only-of-type'
{
match(input,30,FOLLOW_30_in_functional_pseudo_selector955);
selector = onlyOfType();
}
break;
case 11 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:129:7: 'empty'
{
match(input,31,FOLLOW_31_in_functional_pseudo_selector965);
selector = empty();
}
break;
case 12 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:130:7: 'enabled'
{
match(input,32,FOLLOW_32_in_functional_pseudo_selector975);
selector = enabled();
}
break;
case 13 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:131:7: 'disabled'
{
match(input,33,FOLLOW_33_in_functional_pseudo_selector985);
selector = disabled();
}
break;
case 14 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:132:7: 'checked'
{
match(input,34,FOLLOW_34_in_functional_pseudo_selector995);
selector = checked();
}
break;
case 15 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:133:7: 'selected'
{
match(input,35,FOLLOW_35_in_functional_pseudo_selector1005);
selector = selected();
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end functional_pseudo_selector
// $ANTLR start nth_child
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:136:1: nth_child returns [ElementSelector selector] : 'nth-child(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')' ;
public final ElementSelector nth_child() throws RecognitionException {
ElementSelector selector = null;
nth_expr_return nth_expr15 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:137:5: ( 'nth-child(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')' )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:137:7: 'nth-child(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')'
{
match(input,36,FOLLOW_36_in_nth_child1032);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:137:20: ( S )*
loop34:
do {
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==S) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:137:20: S
{
match(input,S,FOLLOW_S_in_nth_child1034);
}
break;
default :
break loop34;
}
} while (true);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:138:7: ( nth_expr | 'odd' ( S )* | 'even' ( S )* )
int alt37=3;
switch ( input.LA(1) ) {
case IDENT:
case STRING:
case NUMBER:
case DASH:
case 10:
{
alt37=1;
}
break;
case 37:
{
alt37=2;
}
break;
case 38:
{
alt37=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("138:7: ( nth_expr | 'odd' ( S )* | 'even' ( S )* )", 37, 0, input);
throw nvae;
}
switch (alt37) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:138:9: nth_expr
{
pushFollow(FOLLOW_nth_expr_in_nth_child1045);
nth_expr15=nth_expr();
_fsp--;
NthExpression nthExpr = CssSelectorsParserHelper.parseNthExpression(input.toString(nth_expr15.start,nth_expr15.stop));
selector = nthChild(nthExpr);
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:142:9: 'odd' ( S )*
{
match(input,37,FOLLOW_37_in_nth_child1057);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:142:15: ( S )*
loop35:
do {
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==S) ) {
alt35=1;
}
switch (alt35) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:142:15: S
{
match(input,S,FOLLOW_S_in_nth_child1059);
}
break;
default :
break loop35;
}
} while (true);
selector = nthChild(odd);
}
break;
case 3 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:143:9: 'even' ( S )*
{
match(input,38,FOLLOW_38_in_nth_child1072);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:143:16: ( S )*
loop36:
do {
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==S) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:143:16: S
{
match(input,S,FOLLOW_S_in_nth_child1074);
}
break;
default :
break loop36;
}
} while (true);
selector = nthChild(even);
}
break;
}
match(input,39,FOLLOW_39_in_nth_child1087);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end nth_child
// $ANTLR start nth_last_child
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:147:1: nth_last_child returns [ElementSelector selector] : 'nth-last-child(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')' ;
public final ElementSelector nth_last_child() throws RecognitionException {
ElementSelector selector = null;
nth_expr_return nth_expr16 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:148:5: ( 'nth-last-child(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')' )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:148:7: 'nth-last-child(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')'
{
match(input,40,FOLLOW_40_in_nth_last_child1112);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:148:25: ( S )*
loop38:
do {
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==S) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:148:25: S
{
match(input,S,FOLLOW_S_in_nth_last_child1114);
}
break;
default :
break loop38;
}
} while (true);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:149:7: ( nth_expr | 'odd' ( S )* | 'even' ( S )* )
int alt41=3;
switch ( input.LA(1) ) {
case IDENT:
case STRING:
case NUMBER:
case DASH:
case 10:
{
alt41=1;
}
break;
case 37:
{
alt41=2;
}
break;
case 38:
{
alt41=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("149:7: ( nth_expr | 'odd' ( S )* | 'even' ( S )* )", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:149:9: nth_expr
{
pushFollow(FOLLOW_nth_expr_in_nth_last_child1125);
nth_expr16=nth_expr();
_fsp--;
NthExpression nthExpr = CssSelectorsParserHelper.parseNthExpression(input.toString(nth_expr16.start,nth_expr16.stop));
selector = nthLastChild(nthExpr);
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:153:9: 'odd' ( S )*
{
match(input,37,FOLLOW_37_in_nth_last_child1137);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:153:15: ( S )*
loop39:
do {
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==S) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:153:15: S
{
match(input,S,FOLLOW_S_in_nth_last_child1139);
}
break;
default :
break loop39;
}
} while (true);
selector = nthLastChild(odd);
}
break;
case 3 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:154:9: 'even' ( S )*
{
match(input,38,FOLLOW_38_in_nth_last_child1152);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:154:16: ( S )*
loop40:
do {
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==S) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:154:16: S
{
match(input,S,FOLLOW_S_in_nth_last_child1154);
}
break;
default :
break loop40;
}
} while (true);
selector = nthLastChild(even);
}
break;
}
match(input,39,FOLLOW_39_in_nth_last_child1167);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end nth_last_child
// $ANTLR start nth_of_type
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:158:1: nth_of_type returns [ElementSelector selector] : 'nth-of-type(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')' ;
public final ElementSelector nth_of_type() throws RecognitionException {
ElementSelector selector = null;
nth_expr_return nth_expr17 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:159:5: ( 'nth-of-type(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')' )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:159:7: 'nth-of-type(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')'
{
match(input,41,FOLLOW_41_in_nth_of_type1194);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:159:22: ( S )*
loop42:
do {
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==S) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:159:22: S
{
match(input,S,FOLLOW_S_in_nth_of_type1196);
}
break;
default :
break loop42;
}
} while (true);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:160:7: ( nth_expr | 'odd' ( S )* | 'even' ( S )* )
int alt45=3;
switch ( input.LA(1) ) {
case IDENT:
case STRING:
case NUMBER:
case DASH:
case 10:
{
alt45=1;
}
break;
case 37:
{
alt45=2;
}
break;
case 38:
{
alt45=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("160:7: ( nth_expr | 'odd' ( S )* | 'even' ( S )* )", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:160:9: nth_expr
{
pushFollow(FOLLOW_nth_expr_in_nth_of_type1207);
nth_expr17=nth_expr();
_fsp--;
NthExpression nthExpr = CssSelectorsParserHelper.parseNthExpression(input.toString(nth_expr17.start,nth_expr17.stop));
selector = nthOfType(nthExpr);
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:164:9: 'odd' ( S )*
{
match(input,37,FOLLOW_37_in_nth_of_type1219);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:164:15: ( S )*
loop43:
do {
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==S) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:164:15: S
{
match(input,S,FOLLOW_S_in_nth_of_type1221);
}
break;
default :
break loop43;
}
} while (true);
selector = nthOfType(odd);
}
break;
case 3 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:165:9: 'even' ( S )*
{
match(input,38,FOLLOW_38_in_nth_of_type1234);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:165:16: ( S )*
loop44:
do {
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==S) ) {
alt44=1;
}
switch (alt44) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:165:16: S
{
match(input,S,FOLLOW_S_in_nth_of_type1236);
}
break;
default :
break loop44;
}
} while (true);
selector = nthOfType(even);
}
break;
}
match(input,39,FOLLOW_39_in_nth_of_type1249);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end nth_of_type
// $ANTLR start nth_last_of_type
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:169:1: nth_last_of_type returns [ElementSelector selector] : 'nth-last-of-type(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')' ;
public final ElementSelector nth_last_of_type() throws RecognitionException {
ElementSelector selector = null;
nth_expr_return nth_expr18 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:170:5: ( 'nth-last-of-type(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')' )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:170:7: 'nth-last-of-type(' ( S )* ( nth_expr | 'odd' ( S )* | 'even' ( S )* ) ')'
{
match(input,42,FOLLOW_42_in_nth_last_of_type1270);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:170:27: ( S )*
loop46:
do {
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==S) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:170:27: S
{
match(input,S,FOLLOW_S_in_nth_last_of_type1272);
}
break;
default :
break loop46;
}
} while (true);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:171:7: ( nth_expr | 'odd' ( S )* | 'even' ( S )* )
int alt49=3;
switch ( input.LA(1) ) {
case IDENT:
case STRING:
case NUMBER:
case DASH:
case 10:
{
alt49=1;
}
break;
case 37:
{
alt49=2;
}
break;
case 38:
{
alt49=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("171:7: ( nth_expr | 'odd' ( S )* | 'even' ( S )* )", 49, 0, input);
throw nvae;
}
switch (alt49) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:171:9: nth_expr
{
pushFollow(FOLLOW_nth_expr_in_nth_last_of_type1283);
nth_expr18=nth_expr();
_fsp--;
NthExpression nthExpr = CssSelectorsParserHelper.parseNthExpression(input.toString(nth_expr18.start,nth_expr18.stop));
selector = nthLastOfType(nthExpr);
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:175:9: 'odd' ( S )*
{
match(input,37,FOLLOW_37_in_nth_last_of_type1295);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:175:15: ( S )*
loop47:
do {
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==S) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:175:15: S
{
match(input,S,FOLLOW_S_in_nth_last_of_type1297);
}
break;
default :
break loop47;
}
} while (true);
selector = nthLastOfType(odd);
}
break;
case 3 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:176:9: 'even' ( S )*
{
match(input,38,FOLLOW_38_in_nth_last_of_type1310);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:176:16: ( S )*
loop48:
do {
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==S) ) {
alt48=1;
}
switch (alt48) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:176:16: S
{
match(input,S,FOLLOW_S_in_nth_last_of_type1312);
}
break;
default :
break loop48;
}
} while (true);
selector = nthLastOfType(even);
}
break;
}
match(input,39,FOLLOW_39_in_nth_last_of_type1325);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end nth_last_of_type
public static class nth_expr_return extends ParserRuleReturnScope {
};
// $ANTLR start nth_expr
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:190:1: nth_expr : ( ( '+' | '-' | NUMBER | STRING | IDENT ) ( S )* )+ ;
public final nth_expr_return nth_expr() throws RecognitionException {
nth_expr_return retval = new nth_expr_return();
retval.start = input.LT(1);
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:191:5: ( ( ( '+' | '-' | NUMBER | STRING | IDENT ) ( S )* )+ )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:191:7: ( ( '+' | '-' | NUMBER | STRING | IDENT ) ( S )* )+
{
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:191:7: ( ( '+' | '-' | NUMBER | STRING | IDENT ) ( S )* )+
int cnt51=0;
loop51:
do {
int alt51=2;
int LA51_0 = input.LA(1);
if ( ((LA51_0>=IDENT && LA51_0<=DASH)||LA51_0==10) ) {
alt51=1;
}
switch (alt51) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:191:9: ( '+' | '-' | NUMBER | STRING | IDENT ) ( S )*
{
if ( (input.LA(1)>=IDENT && input.LA(1)<=DASH)||input.LA(1)==10 ) {
input.consume();
errorRecovery=false;
}
else {
MismatchedSetException mse =
new MismatchedSetException(null,input);
recoverFromMismatchedSet(input,mse,FOLLOW_set_in_nth_expr1354); throw mse;
}
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:191:49: ( S )*
loop50:
do {
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==S) ) {
alt50=1;
}
switch (alt50) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:191:49: S
{
match(input,S,FOLLOW_S_in_nth_expr1376);
}
break;
default :
break loop50;
}
} while (true);
}
break;
default :
if ( cnt51 >= 1 ) break loop51;
EarlyExitException eee =
new EarlyExitException(51, input);
throw eee;
}
cnt51++;
} while (true);
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end nth_expr
// $ANTLR start negation
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:194:1: negation returns [ElementSelector selector ] : 'not(' ( S )* negation_arg ( S )* ')' ;
public final ElementSelector negation() throws RecognitionException {
ElementSelector selector = null;
ElementSelector negation_arg19 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:195:5: ( 'not(' ( S )* negation_arg ( S )* ')' )
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:195:7: 'not(' ( S )* negation_arg ( S )* ')'
{
match(input,43,FOLLOW_43_in_negation1402);
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:195:14: ( S )*
loop52:
do {
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==S) ) {
alt52=1;
}
switch (alt52) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:195:14: S
{
match(input,S,FOLLOW_S_in_negation1404);
}
break;
default :
break loop52;
}
} while (true);
pushFollow(FOLLOW_negation_arg_in_negation1407);
negation_arg19=negation_arg();
_fsp--;
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:195:30: ( S )*
loop53:
do {
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==S) ) {
alt53=1;
}
switch (alt53) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:195:30: S
{
match(input,S,FOLLOW_S_in_negation1409);
}
break;
default :
break loop53;
}
} while (true);
match(input,39,FOLLOW_39_in_negation1412);
selector = not(negation_arg19);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end negation
// $ANTLR start negation_arg
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:198:1: negation_arg returns [ElementSelector selector] : ( type_selector | universal | id_selector | class_selector | attrib_selector | functional_pseudo_selector );
public final ElementSelector negation_arg() throws RecognitionException {
ElementSelector selector = null;
TypeSelector type_selector20 = null;
TypeSelector universal21 = null;
ElementSelector id_selector22 = null;
ElementSelector class_selector23 = null;
ElementSelector attrib_selector24 = null;
try {
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:199:5: ( type_selector | universal | id_selector | class_selector | attrib_selector | functional_pseudo_selector )
int alt54=6;
switch ( input.LA(1) ) {
case IDENT:
{
alt54=1;
}
break;
case 13:
{
alt54=2;
}
break;
case 14:
{
alt54=3;
}
break;
case 15:
{
alt54=4;
}
break;
case 16:
{
alt54=5;
}
break;
case 25:
case 26:
case 27:
case 28:
case 29:
case 30:
case 31:
case 32:
case 33:
case 34:
case 35:
case 36:
case 40:
case 41:
case 42:
{
alt54=6;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("198:1: negation_arg returns [ElementSelector selector] : ( type_selector | universal | id_selector | class_selector | attrib_selector | functional_pseudo_selector );", 54, 0, input);
throw nvae;
}
switch (alt54) {
case 1 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:199:7: type_selector
{
pushFollow(FOLLOW_type_selector_in_negation_arg1435);
type_selector20=type_selector();
_fsp--;
selector = type_selector20;
}
break;
case 2 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:200:7: universal
{
pushFollow(FOLLOW_universal_in_negation_arg1445);
universal21=universal();
_fsp--;
selector = universal21;
}
break;
case 3 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:201:7: id_selector
{
pushFollow(FOLLOW_id_selector_in_negation_arg1455);
id_selector22=id_selector();
_fsp--;
selector = id_selector22;
}
break;
case 4 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:202:7: class_selector
{
pushFollow(FOLLOW_class_selector_in_negation_arg1465);
class_selector23=class_selector();
_fsp--;
selector = class_selector23;
}
break;
case 5 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:203:7: attrib_selector
{
pushFollow(FOLLOW_attrib_selector_in_negation_arg1475);
attrib_selector24=attrib_selector();
_fsp--;
selector = attrib_selector24;
}
break;
case 6 :
// /Users/vtence/Development/Trainings/cssselectors/src/main/antlr/com/threelevers/css/CssSelectors.g:204:7: functional_pseudo_selector
{
pushFollow(FOLLOW_functional_pseudo_selector_in_negation_arg1485);
functional_pseudo_selector();
_fsp--;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return selector;
}
// $ANTLR end negation_arg
protected DFA7 dfa7 = new DFA7(this);
protected DFA28 dfa28 = new DFA28(this);
static final String DFA7_eotS =
"\7\uffff";
static final String DFA7_eofS =
"\7\uffff";
static final String DFA7_minS =
"\2\4\3\uffff\1\4\1\uffff";
static final String DFA7_maxS =
"\1\14\1\30\3\uffff\1\30\1\uffff";
static final String DFA7_acceptS =
"\2\uffff\1\2\1\3\1\4\1\uffff\1\1";
static final String DFA7_specialS =
"\7\uffff}>";
static final String[] DFA7_transitionS = {
"\1\1\5\uffff\1\2\1\3\1\4",
"\1\5\1\6\4\uffff\1\2\1\3\1\4\4\6\7\uffff\1\6",
"",
"",
"",
"\1\5\1\6\4\uffff\1\2\1\3\1\4\4\6\7\uffff\1\6",
""
};
static final short[] DFA7_eot = DFA.unpackEncodedString(DFA7_eotS);
static final short[] DFA7_eof = DFA.unpackEncodedString(DFA7_eofS);
static final char[] DFA7_min = DFA.unpackEncodedStringToUnsignedChars(DFA7_minS);
static final char[] DFA7_max = DFA.unpackEncodedStringToUnsignedChars(DFA7_maxS);
static final short[] DFA7_accept = DFA.unpackEncodedString(DFA7_acceptS);
static final short[] DFA7_special = DFA.unpackEncodedString(DFA7_specialS);
static final short[][] DFA7_transition;
static {
int numStates = DFA7_transitionS.length;
DFA7_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA7_transition[i] = DFA.unpackEncodedString(DFA7_transitionS[i]);
}
}
class DFA7 extends DFA {
public DFA7(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 7;
this.eot = DFA7_eot;
this.eof = DFA7_eof;
this.min = DFA7_min;
this.max = DFA7_max;
this.accept = DFA7_accept;
this.special = DFA7_special;
this.transition = DFA7_transition;
}
public String getDescription() {
return "44:7: ( S | ( S )* '+' | ( S )* '>' | ( S )* '~' )";
}
}
static final String DFA28_eotS =
"\31\uffff";
static final String DFA28_eofS =
"\31\uffff";
static final String DFA28_minS =
"\1\21\7\4\2\uffff\1\4\2\uffff\1\4\2\uffff\1\4\2\uffff\1\4\2\uffff"+
"\1\4\2\uffff";
static final String DFA28_maxS =
"\1\26\7\6\2\uffff\1\6\2\uffff\1\6\2\uffff\1\6\2\uffff\1\6\2\uffff"+
"\1\6\2\uffff";
static final String DFA28_acceptS =
"\10\uffff\1\1\1\7\1\uffff\1\10\1\2\1\uffff\1\3\1\11\1\uffff\1\4"+
"\1\12\1\uffff\1\13\1\5\1\uffff\1\14\1\6";
static final String DFA28_specialS =
"\31\uffff}>";
static final String[] DFA28_transitionS = {
"\1\1\1\2\1\3\1\4\1\5\1\6",
"\1\7\1\11\1\10",
"\1\12\1\13\1\14",
"\1\15\1\17\1\16",
"\1\20\1\22\1\21",
"\1\23\1\24\1\25",
"\1\26\1\27\1\30",
"\1\7\1\11\1\10",
"",
"",
"\1\12\1\13\1\14",
"",
"",
"\1\15\1\17\1\16",
"",
"",
"\1\20\1\22\1\21",
"",
"",
"\1\23\1\24\1\25",
"",
"",
"\1\26\1\27\1\30",
"",
""
};
static final short[] DFA28_eot = DFA.unpackEncodedString(DFA28_eotS);
static final short[] DFA28_eof = DFA.unpackEncodedString(DFA28_eofS);
static final char[] DFA28_min = DFA.unpackEncodedStringToUnsignedChars(DFA28_minS);
static final char[] DFA28_max = DFA.unpackEncodedStringToUnsignedChars(DFA28_maxS);
static final short[] DFA28_accept = DFA.unpackEncodedString(DFA28_acceptS);
static final short[] DFA28_special = DFA.unpackEncodedString(DFA28_specialS);
static final short[][] DFA28_transition;
static {
int numStates = DFA28_transitionS.length;
DFA28_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA28_transition[i] = DFA.unpackEncodedString(DFA28_transitionS[i]);
}
}
class DFA28 extends DFA {
public DFA28(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 28;
this.eot = DFA28_eot;
this.eof = DFA28_eof;
this.min = DFA28_min;
this.max = DFA28_max;
this.accept = DFA28_accept;
this.special = DFA28_special;
this.transition = DFA28_transition;
}
public String getDescription() {
return "91:9: ( '=' ( S )* v= STRING | '^=' ( S )* v= STRING | '$=' ( S )* v= STRING | '*=' ( S )* v= STRING | '~=' ( S )* v= STRING | '|=' ( S )* v= STRING | '=' ( S )* a= IDENT | '^=' ( S )* a= IDENT | '$=' ( S )* a= IDENT | '*=' ( S )* a= IDENT | '~=' ( S )* a= IDENT | '|=' ( S )* a= IDENT )";
}
}
public static final BitSet FOLLOW_selector_in_selectors38 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_9_in_selectors49 = new BitSet(new long[]{0x000000000101E030L});
public static final BitSet FOLLOW_selector_in_selectors53 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_S_in_selector83 = new BitSet(new long[]{0x000000000101E030L});
public static final BitSet FOLLOW_simple_selector_in_selector88 = new BitSet(new long[]{0x0000000000001C12L});
public static final BitSet FOLLOW_combinator_in_selector102 = new BitSet(new long[]{0x000000000101E020L});
public static final BitSet FOLLOW_simple_selector_in_selector106 = new BitSet(new long[]{0x0000000000001C12L});
public static final BitSet FOLLOW_S_in_combinator134 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_S_in_combinator146 = new BitSet(new long[]{0x0000000000000410L});
public static final BitSet FOLLOW_10_in_combinator149 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_S_in_combinator161 = new BitSet(new long[]{0x0000000000000810L});
public static final BitSet FOLLOW_11_in_combinator164 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_S_in_combinator176 = new BitSet(new long[]{0x0000000000001010L});
public static final BitSet FOLLOW_12_in_combinator179 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_S_in_combinator185 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_type_selector_in_simple_selector209 = new BitSet(new long[]{0x000000000101C002L});
public static final BitSet FOLLOW_universal_in_simple_selector222 = new BitSet(new long[]{0x000000000101C002L});
public static final BitSet FOLLOW_element_selector_in_simple_selector236 = new BitSet(new long[]{0x000000000101C002L});
public static final BitSet FOLLOW_element_selector_in_simple_selector251 = new BitSet(new long[]{0x000000000101C002L});
public static final BitSet FOLLOW_element_selector_in_simple_selector265 = new BitSet(new long[]{0x000000000101C002L});
public static final BitSet FOLLOW_id_selector_in_element_selector290 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_class_selector_in_element_selector300 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attrib_selector_in_element_selector310 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pseudo_selector_in_element_selector320 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_element_name_in_type_selector346 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENT_in_element_name365 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_13_in_universal389 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_14_in_id_selector413 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_IDENT_in_id_selector417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_15_in_class_selector440 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_IDENT_in_class_selector444 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_16_in_attrib_selector468 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_S_in_attrib_selector470 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_IDENT_in_attrib_selector477 = new BitSet(new long[]{0x0000000000FE0010L});
public static final BitSet FOLLOW_S_in_attrib_selector481 = new BitSet(new long[]{0x0000000000FE0010L});
public static final BitSet FOLLOW_17_in_attrib_selector494 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_S_in_attrib_selector496 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_STRING_in_attrib_selector501 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_18_in_attrib_selector515 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_S_in_attrib_selector517 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_STRING_in_attrib_selector522 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_19_in_attrib_selector536 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_S_in_attrib_selector538 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_STRING_in_attrib_selector543 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_20_in_attrib_selector557 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_S_in_attrib_selector559 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_STRING_in_attrib_selector564 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_21_in_attrib_selector578 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_S_in_attrib_selector580 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_STRING_in_attrib_selector585 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_22_in_attrib_selector599 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_S_in_attrib_selector601 = new BitSet(new long[]{0x0000000000000050L});
public static final BitSet FOLLOW_STRING_in_attrib_selector606 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_17_in_attrib_selector620 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_S_in_attrib_selector622 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_IDENT_in_attrib_selector627 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_18_in_attrib_selector641 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_S_in_attrib_selector643 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_IDENT_in_attrib_selector648 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_19_in_attrib_selector662 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_S_in_attrib_selector664 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_IDENT_in_attrib_selector669 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_20_in_attrib_selector683 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_S_in_attrib_selector685 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_IDENT_in_attrib_selector690 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_21_in_attrib_selector704 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_S_in_attrib_selector706 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_IDENT_in_attrib_selector711 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_22_in_attrib_selector725 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_S_in_attrib_selector727 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_IDENT_in_attrib_selector732 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_S_in_attrib_selector746 = new BitSet(new long[]{0x0000000000800010L});
public static final BitSet FOLLOW_23_in_attrib_selector758 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_24_in_pseudo_selector803 = new BitSet(new long[]{0x00000F1FFF000000L});
public static final BitSet FOLLOW_24_in_pseudo_selector805 = new BitSet(new long[]{0x00000F1FFE000000L});
public static final BitSet FOLLOW_negation_in_pseudo_selector818 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functional_pseudo_selector_in_pseudo_selector832 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nth_child_in_functional_pseudo_selector865 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nth_last_child_in_functional_pseudo_selector875 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_25_in_functional_pseudo_selector885 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_26_in_functional_pseudo_selector895 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_27_in_functional_pseudo_selector905 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nth_of_type_in_functional_pseudo_selector915 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nth_last_of_type_in_functional_pseudo_selector925 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_28_in_functional_pseudo_selector935 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_29_in_functional_pseudo_selector945 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_30_in_functional_pseudo_selector955 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_31_in_functional_pseudo_selector965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_32_in_functional_pseudo_selector975 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_33_in_functional_pseudo_selector985 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_34_in_functional_pseudo_selector995 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_35_in_functional_pseudo_selector1005 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_36_in_nth_child1032 = new BitSet(new long[]{0x00000060000005F0L});
public static final BitSet FOLLOW_S_in_nth_child1034 = new BitSet(new long[]{0x00000060000005F0L});
public static final BitSet FOLLOW_nth_expr_in_nth_child1045 = new BitSet(new long[]{0x0000008000000000L});
public static final BitSet FOLLOW_37_in_nth_child1057 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_S_in_nth_child1059 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_38_in_nth_child1072 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_S_in_nth_child1074 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_39_in_nth_child1087 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_40_in_nth_last_child1112 = new BitSet(new long[]{0x00000060000005F0L});
public static final BitSet FOLLOW_S_in_nth_last_child1114 = new BitSet(new long[]{0x00000060000005F0L});
public static final BitSet FOLLOW_nth_expr_in_nth_last_child1125 = new BitSet(new long[]{0x0000008000000000L});
public static final BitSet FOLLOW_37_in_nth_last_child1137 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_S_in_nth_last_child1139 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_38_in_nth_last_child1152 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_S_in_nth_last_child1154 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_39_in_nth_last_child1167 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_41_in_nth_of_type1194 = new BitSet(new long[]{0x00000060000005F0L});
public static final BitSet FOLLOW_S_in_nth_of_type1196 = new BitSet(new long[]{0x00000060000005F0L});
public static final BitSet FOLLOW_nth_expr_in_nth_of_type1207 = new BitSet(new long[]{0x0000008000000000L});
public static final BitSet FOLLOW_37_in_nth_of_type1219 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_S_in_nth_of_type1221 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_38_in_nth_of_type1234 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_S_in_nth_of_type1236 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_39_in_nth_of_type1249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_42_in_nth_last_of_type1270 = new BitSet(new long[]{0x00000060000005F0L});
public static final BitSet FOLLOW_S_in_nth_last_of_type1272 = new BitSet(new long[]{0x00000060000005F0L});
public static final BitSet FOLLOW_nth_expr_in_nth_last_of_type1283 = new BitSet(new long[]{0x0000008000000000L});
public static final BitSet FOLLOW_37_in_nth_last_of_type1295 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_S_in_nth_last_of_type1297 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_38_in_nth_last_of_type1310 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_S_in_nth_last_of_type1312 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_39_in_nth_last_of_type1325 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_nth_expr1354 = new BitSet(new long[]{0x00000000000005F2L});
public static final BitSet FOLLOW_S_in_nth_expr1376 = new BitSet(new long[]{0x00000000000005F2L});
public static final BitSet FOLLOW_43_in_negation1402 = new BitSet(new long[]{0x0000071FFE01E030L});
public static final BitSet FOLLOW_S_in_negation1404 = new BitSet(new long[]{0x0000071FFE01E030L});
public static final BitSet FOLLOW_negation_arg_in_negation1407 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_S_in_negation1409 = new BitSet(new long[]{0x0000008000000010L});
public static final BitSet FOLLOW_39_in_negation1412 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_selector_in_negation_arg1435 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_universal_in_negation_arg1445 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_id_selector_in_negation_arg1455 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_class_selector_in_negation_arg1465 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attrib_selector_in_negation_arg1475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functional_pseudo_selector_in_negation_arg1485 = new BitSet(new long[]{0x0000000000000002L});
}