Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
yale.compiler.compiler.0.9.12.source-code.CSSParser Maven / Gradle / Ivy
// $ANTLR 3.5.2 CSS.g
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.royale.compiler.internal.css;
import java.util.Map;
import java.util.HashMap;
import org.apache.royale.compiler.problems.CSSParserProblem;
import org.apache.royale.compiler.problems.ICompilerProblem;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import org.antlr.runtime.tree.*;
/**
* This is a grammar for advanced CSS in Royale. It parses the CSS document and
* generate DOM objects.
*/
@SuppressWarnings("all")
public class CSSParser extends Parser {
public static final String[] tokenNames = new String[] {
"", "", "", "", "ALPHA_VALUE", "ARGUMENTS", "AT_FONT_FACE",
"AT_KEYFRAMES", "AT_MEDIA", "AT_NAMESPACE", "AT_WEBKIT_KEYFRAMES", "BEGINS_WITH",
"BLOCK_END", "BLOCK_OPEN", "CALC", "CHILD", "CLASS_REFERENCE", "COLON",
"COMMA", "COMMENT", "CONTAINS", "DASHED_ID", "DIGIT", "DOT", "DOUBLE_COLON",
"EMBED", "ENDS_WITH", "EQUALS", "ESCAPED_HEX", "FORMAT", "FUNCTIONS",
"HASH_WORD", "HEX_DIGIT", "HREFLANG_MATCH", "ID", "IMPORTANT", "I_ARRAY",
"I_CHILD_SELECTOR", "I_DECL", "I_MEDIUM_CONDITIONS", "I_MULTIVALUE", "I_PRECEDED_SELECTOR",
"I_RULE", "I_RULES", "I_SELECTOR", "I_SELECTOR_GROUP", "I_SIBLING_SELECTOR",
"I_SIMPLE_SELECTOR", "LETTER", "LIST_MATCH", "LOCAL", "MATRIX3D_VALUE",
"MATRIX_VALUE", "NOT", "NULL", "NUMBER", "NUMBER_WITH_PERCENT", "NUMBER_WITH_UNIT",
"ONLY", "OPERATOR", "PERCENT", "PIPE", "PRECEDED", "PROPERTY_REFERENCE",
"RECT_VALUE", "RGB", "RGBA", "ROTATE_VALUE", "SCALE", "SCALE_VALUE", "SEMI_COLONS",
"SQUARE_END", "SQUARE_OPEN", "STAR", "STRING", "STRING_QUOTE", "TILDE",
"TRANSLATE3D_VALUE", "URL", "VAR", "WS", "'and'"
};
public static final int EOF=-1;
public static final int T__81=81;
public static final int ALPHA_VALUE=4;
public static final int ARGUMENTS=5;
public static final int AT_FONT_FACE=6;
public static final int AT_KEYFRAMES=7;
public static final int AT_MEDIA=8;
public static final int AT_NAMESPACE=9;
public static final int AT_WEBKIT_KEYFRAMES=10;
public static final int BEGINS_WITH=11;
public static final int BLOCK_END=12;
public static final int BLOCK_OPEN=13;
public static final int CALC=14;
public static final int CHILD=15;
public static final int CLASS_REFERENCE=16;
public static final int COLON=17;
public static final int COMMA=18;
public static final int COMMENT=19;
public static final int CONTAINS=20;
public static final int DASHED_ID=21;
public static final int DIGIT=22;
public static final int DOT=23;
public static final int DOUBLE_COLON=24;
public static final int EMBED=25;
public static final int ENDS_WITH=26;
public static final int EQUALS=27;
public static final int ESCAPED_HEX=28;
public static final int FORMAT=29;
public static final int FUNCTIONS=30;
public static final int HASH_WORD=31;
public static final int HEX_DIGIT=32;
public static final int HREFLANG_MATCH=33;
public static final int ID=34;
public static final int IMPORTANT=35;
public static final int I_ARRAY=36;
public static final int I_CHILD_SELECTOR=37;
public static final int I_DECL=38;
public static final int I_MEDIUM_CONDITIONS=39;
public static final int I_MULTIVALUE=40;
public static final int I_PRECEDED_SELECTOR=41;
public static final int I_RULE=42;
public static final int I_RULES=43;
public static final int I_SELECTOR=44;
public static final int I_SELECTOR_GROUP=45;
public static final int I_SIBLING_SELECTOR=46;
public static final int I_SIMPLE_SELECTOR=47;
public static final int LETTER=48;
public static final int LIST_MATCH=49;
public static final int LOCAL=50;
public static final int MATRIX3D_VALUE=51;
public static final int MATRIX_VALUE=52;
public static final int NOT=53;
public static final int NULL=54;
public static final int NUMBER=55;
public static final int NUMBER_WITH_PERCENT=56;
public static final int NUMBER_WITH_UNIT=57;
public static final int ONLY=58;
public static final int OPERATOR=59;
public static final int PERCENT=60;
public static final int PIPE=61;
public static final int PRECEDED=62;
public static final int PROPERTY_REFERENCE=63;
public static final int RECT_VALUE=64;
public static final int RGB=65;
public static final int RGBA=66;
public static final int ROTATE_VALUE=67;
public static final int SCALE=68;
public static final int SCALE_VALUE=69;
public static final int SEMI_COLONS=70;
public static final int SQUARE_END=71;
public static final int SQUARE_OPEN=72;
public static final int STAR=73;
public static final int STRING=74;
public static final int STRING_QUOTE=75;
public static final int TILDE=76;
public static final int TRANSLATE3D_VALUE=77;
public static final int URL=78;
public static final int VAR=79;
public static final int WS=80;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public CSSParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public CSSParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
@Override public String[] getTokenNames() { return CSSParser.tokenNames; }
@Override public String getGrammarFileName() { return "CSS.g"; }
/**
* Parser problems.
*/
protected List problems = new ArrayList();
/**
* Collect parser problems.
*/
@Override
public void displayRecognitionError(String[] tokenNames, RecognitionException e)
{
problems.add(CSSParserProblem.create(this, tokenNames, e));
}
/**
* Check if the cursor is at the end of a simple selector.
* @return -1 if not end
* @return 0 if end
* @return 1 if ended by Child combinator
* @return 2 if ended by Preceded combinator
* @return 3 if ended by Sibling combinator
*/
private final int endOfSimpleSelector()
{
final CommonToken nextToken = (CommonToken) getTokenStream().LT(1);
if (nextToken == null)
return 0;
final int nextType = nextToken.getType();
if (nextType == CHILD)
{
getTokenStream().consume();
return 1;
}
if (nextType == PRECEDED)
{
getTokenStream().consume();
return 2;
}
if (nextType == TILDE)
{
getTokenStream().consume();
return 3;
}
// Check if there's white space between the previous token and the next token.
final CommonToken lastToken = (CommonToken) getTokenStream().LT(-1);
if (lastToken != null)
{
final int lastType = lastToken.getType();
if (lastType == CHILD)
{
return 1;
}
if (lastType == PRECEDED)
{
return 2;
}
if (lastType == TILDE)
{
return 3;
}
if (nextToken != null)
{
final int lastStop = lastToken.getStopIndex();
final int nextStart = nextToken.getStartIndex();
if (lastStop + 1 < nextStart)
{
return 0;
}
}
}
// If the next token is "{" or ",", it's also end of a selector.
if (nextType == BLOCK_OPEN || nextType == COMMA)
{
return 0;
}
// If the next token is the end of the input, it's also end of a selector.
if (nextType == EOF)
{
return 0;
}
return -1;
}
public static class stylesheet_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "stylesheet"
// CSS.g:193:1: stylesheet : ( namespaceStatement | fontFace | keyframes | mediaQuery | ruleset )* EOF ;
public final CSSParser.stylesheet_return stylesheet() throws RecognitionException {
CSSParser.stylesheet_return retval = new CSSParser.stylesheet_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EOF6=null;
ParserRuleReturnScope namespaceStatement1 =null;
ParserRuleReturnScope fontFace2 =null;
ParserRuleReturnScope keyframes3 =null;
ParserRuleReturnScope mediaQuery4 =null;
ParserRuleReturnScope ruleset5 =null;
Object EOF6_tree=null;
try {
// CSS.g:194:5: ( ( namespaceStatement | fontFace | keyframes | mediaQuery | ruleset )* EOF )
// CSS.g:194:9: ( namespaceStatement | fontFace | keyframes | mediaQuery | ruleset )* EOF
{
root_0 = (Object)adaptor.nil();
// CSS.g:194:9: ( namespaceStatement | fontFace | keyframes | mediaQuery | ruleset )*
loop1:
while (true) {
int alt1=6;
switch ( input.LA(1) ) {
case AT_NAMESPACE:
{
alt1=1;
}
break;
case AT_FONT_FACE:
{
alt1=2;
}
break;
case AT_KEYFRAMES:
case AT_WEBKIT_KEYFRAMES:
{
alt1=3;
}
break;
case AT_MEDIA:
{
alt1=4;
}
break;
case COLON:
case DOT:
case DOUBLE_COLON:
case HASH_WORD:
case ID:
case NUMBER_WITH_PERCENT:
case SQUARE_OPEN:
case STAR:
{
alt1=5;
}
break;
}
switch (alt1) {
case 1 :
// CSS.g:194:11: namespaceStatement
{
pushFollow(FOLLOW_namespaceStatement_in_stylesheet149);
namespaceStatement1=namespaceStatement();
state._fsp--;
adaptor.addChild(root_0, namespaceStatement1.getTree());
}
break;
case 2 :
// CSS.g:194:32: fontFace
{
pushFollow(FOLLOW_fontFace_in_stylesheet153);
fontFace2=fontFace();
state._fsp--;
adaptor.addChild(root_0, fontFace2.getTree());
}
break;
case 3 :
// CSS.g:194:43: keyframes
{
pushFollow(FOLLOW_keyframes_in_stylesheet157);
keyframes3=keyframes();
state._fsp--;
adaptor.addChild(root_0, keyframes3.getTree());
}
break;
case 4 :
// CSS.g:194:55: mediaQuery
{
pushFollow(FOLLOW_mediaQuery_in_stylesheet161);
mediaQuery4=mediaQuery();
state._fsp--;
adaptor.addChild(root_0, mediaQuery4.getTree());
}
break;
case 5 :
// CSS.g:194:68: ruleset
{
pushFollow(FOLLOW_ruleset_in_stylesheet165);
ruleset5=ruleset();
state._fsp--;
adaptor.addChild(root_0, ruleset5.getTree());
}
break;
default :
break loop1;
}
}
EOF6=(Token)match(input,EOF,FOLLOW_EOF_in_stylesheet170);
EOF6_tree = (Object)adaptor.create(EOF6);
adaptor.addChild(root_0, EOF6_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "stylesheet"
public static class namespaceStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "namespaceStatement"
// CSS.g:206:1: namespaceStatement : AT_NAMESPACE ( ID )? STRING SEMI_COLONS -> ^( AT_NAMESPACE ( ID )? STRING ) ;
public final CSSParser.namespaceStatement_return namespaceStatement() throws RecognitionException {
CSSParser.namespaceStatement_return retval = new CSSParser.namespaceStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AT_NAMESPACE7=null;
Token ID8=null;
Token STRING9=null;
Token SEMI_COLONS10=null;
Object AT_NAMESPACE7_tree=null;
Object ID8_tree=null;
Object STRING9_tree=null;
Object SEMI_COLONS10_tree=null;
RewriteRuleTokenStream stream_STRING=new RewriteRuleTokenStream(adaptor,"token STRING");
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleTokenStream stream_SEMI_COLONS=new RewriteRuleTokenStream(adaptor,"token SEMI_COLONS");
RewriteRuleTokenStream stream_AT_NAMESPACE=new RewriteRuleTokenStream(adaptor,"token AT_NAMESPACE");
try {
// CSS.g:207:5: ( AT_NAMESPACE ( ID )? STRING SEMI_COLONS -> ^( AT_NAMESPACE ( ID )? STRING ) )
// CSS.g:207:9: AT_NAMESPACE ( ID )? STRING SEMI_COLONS
{
AT_NAMESPACE7=(Token)match(input,AT_NAMESPACE,FOLLOW_AT_NAMESPACE_in_namespaceStatement191);
stream_AT_NAMESPACE.add(AT_NAMESPACE7);
// CSS.g:207:22: ( ID )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==ID) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// CSS.g:207:22: ID
{
ID8=(Token)match(input,ID,FOLLOW_ID_in_namespaceStatement193);
stream_ID.add(ID8);
}
break;
}
STRING9=(Token)match(input,STRING,FOLLOW_STRING_in_namespaceStatement196);
stream_STRING.add(STRING9);
SEMI_COLONS10=(Token)match(input,SEMI_COLONS,FOLLOW_SEMI_COLONS_in_namespaceStatement198);
stream_SEMI_COLONS.add(SEMI_COLONS10);
// AST REWRITE
// elements: AT_NAMESPACE, ID, STRING
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 208:6: -> ^( AT_NAMESPACE ( ID )? STRING )
{
// CSS.g:208:9: ^( AT_NAMESPACE ( ID )? STRING )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_AT_NAMESPACE.nextNode(), root_1);
// CSS.g:208:24: ( ID )?
if ( stream_ID.hasNext() ) {
adaptor.addChild(root_1, stream_ID.nextNode());
}
stream_ID.reset();
adaptor.addChild(root_1, stream_STRING.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "namespaceStatement"
public static class keyframes_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "keyframes"
// CSS.g:219:1: keyframes : ( AT_KEYFRAMES ID BLOCK_OPEN ( ruleset )* BLOCK_END -> ^( AT_KEYFRAMES ID ( ruleset )* ) | AT_WEBKIT_KEYFRAMES ID BLOCK_OPEN ( ruleset )* BLOCK_END -> ^( AT_WEBKIT_KEYFRAMES ID ( ruleset )* ) );
public final CSSParser.keyframes_return keyframes() throws RecognitionException {
CSSParser.keyframes_return retval = new CSSParser.keyframes_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AT_KEYFRAMES11=null;
Token ID12=null;
Token BLOCK_OPEN13=null;
Token BLOCK_END15=null;
Token AT_WEBKIT_KEYFRAMES16=null;
Token ID17=null;
Token BLOCK_OPEN18=null;
Token BLOCK_END20=null;
ParserRuleReturnScope ruleset14 =null;
ParserRuleReturnScope ruleset19 =null;
Object AT_KEYFRAMES11_tree=null;
Object ID12_tree=null;
Object BLOCK_OPEN13_tree=null;
Object BLOCK_END15_tree=null;
Object AT_WEBKIT_KEYFRAMES16_tree=null;
Object ID17_tree=null;
Object BLOCK_OPEN18_tree=null;
Object BLOCK_END20_tree=null;
RewriteRuleTokenStream stream_BLOCK_OPEN=new RewriteRuleTokenStream(adaptor,"token BLOCK_OPEN");
RewriteRuleTokenStream stream_BLOCK_END=new RewriteRuleTokenStream(adaptor,"token BLOCK_END");
RewriteRuleTokenStream stream_AT_WEBKIT_KEYFRAMES=new RewriteRuleTokenStream(adaptor,"token AT_WEBKIT_KEYFRAMES");
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleTokenStream stream_AT_KEYFRAMES=new RewriteRuleTokenStream(adaptor,"token AT_KEYFRAMES");
RewriteRuleSubtreeStream stream_ruleset=new RewriteRuleSubtreeStream(adaptor,"rule ruleset");
try {
// CSS.g:220:5: ( AT_KEYFRAMES ID BLOCK_OPEN ( ruleset )* BLOCK_END -> ^( AT_KEYFRAMES ID ( ruleset )* ) | AT_WEBKIT_KEYFRAMES ID BLOCK_OPEN ( ruleset )* BLOCK_END -> ^( AT_WEBKIT_KEYFRAMES ID ( ruleset )* ) )
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==AT_KEYFRAMES) ) {
alt5=1;
}
else if ( (LA5_0==AT_WEBKIT_KEYFRAMES) ) {
alt5=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 5, 0, input);
throw nvae;
}
switch (alt5) {
case 1 :
// CSS.g:220:9: AT_KEYFRAMES ID BLOCK_OPEN ( ruleset )* BLOCK_END
{
AT_KEYFRAMES11=(Token)match(input,AT_KEYFRAMES,FOLLOW_AT_KEYFRAMES_in_keyframes241);
stream_AT_KEYFRAMES.add(AT_KEYFRAMES11);
ID12=(Token)match(input,ID,FOLLOW_ID_in_keyframes243);
stream_ID.add(ID12);
BLOCK_OPEN13=(Token)match(input,BLOCK_OPEN,FOLLOW_BLOCK_OPEN_in_keyframes245);
stream_BLOCK_OPEN.add(BLOCK_OPEN13);
// CSS.g:220:36: ( ruleset )*
loop3:
while (true) {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==COLON||(LA3_0 >= DOT && LA3_0 <= DOUBLE_COLON)||LA3_0==HASH_WORD||LA3_0==ID||LA3_0==NUMBER_WITH_PERCENT||(LA3_0 >= SQUARE_OPEN && LA3_0 <= STAR)) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// CSS.g:220:36: ruleset
{
pushFollow(FOLLOW_ruleset_in_keyframes247);
ruleset14=ruleset();
state._fsp--;
stream_ruleset.add(ruleset14.getTree());
}
break;
default :
break loop3;
}
}
BLOCK_END15=(Token)match(input,BLOCK_END,FOLLOW_BLOCK_END_in_keyframes250);
stream_BLOCK_END.add(BLOCK_END15);
// AST REWRITE
// elements: ruleset, ID, AT_KEYFRAMES
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 221:6: -> ^( AT_KEYFRAMES ID ( ruleset )* )
{
// CSS.g:221:9: ^( AT_KEYFRAMES ID ( ruleset )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_AT_KEYFRAMES.nextNode(), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
// CSS.g:221:27: ( ruleset )*
while ( stream_ruleset.hasNext() ) {
adaptor.addChild(root_1, stream_ruleset.nextTree());
}
stream_ruleset.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 2 :
// CSS.g:222:9: AT_WEBKIT_KEYFRAMES ID BLOCK_OPEN ( ruleset )* BLOCK_END
{
AT_WEBKIT_KEYFRAMES16=(Token)match(input,AT_WEBKIT_KEYFRAMES,FOLLOW_AT_WEBKIT_KEYFRAMES_in_keyframes276);
stream_AT_WEBKIT_KEYFRAMES.add(AT_WEBKIT_KEYFRAMES16);
ID17=(Token)match(input,ID,FOLLOW_ID_in_keyframes278);
stream_ID.add(ID17);
BLOCK_OPEN18=(Token)match(input,BLOCK_OPEN,FOLLOW_BLOCK_OPEN_in_keyframes280);
stream_BLOCK_OPEN.add(BLOCK_OPEN18);
// CSS.g:222:43: ( ruleset )*
loop4:
while (true) {
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==COLON||(LA4_0 >= DOT && LA4_0 <= DOUBLE_COLON)||LA4_0==HASH_WORD||LA4_0==ID||LA4_0==NUMBER_WITH_PERCENT||(LA4_0 >= SQUARE_OPEN && LA4_0 <= STAR)) ) {
alt4=1;
}
switch (alt4) {
case 1 :
// CSS.g:222:43: ruleset
{
pushFollow(FOLLOW_ruleset_in_keyframes282);
ruleset19=ruleset();
state._fsp--;
stream_ruleset.add(ruleset19.getTree());
}
break;
default :
break loop4;
}
}
BLOCK_END20=(Token)match(input,BLOCK_END,FOLLOW_BLOCK_END_in_keyframes285);
stream_BLOCK_END.add(BLOCK_END20);
// AST REWRITE
// elements: AT_WEBKIT_KEYFRAMES, ID, ruleset
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 223:6: -> ^( AT_WEBKIT_KEYFRAMES ID ( ruleset )* )
{
// CSS.g:223:9: ^( AT_WEBKIT_KEYFRAMES ID ( ruleset )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_AT_WEBKIT_KEYFRAMES.nextNode(), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
// CSS.g:223:34: ( ruleset )*
while ( stream_ruleset.hasNext() ) {
adaptor.addChild(root_1, stream_ruleset.nextTree());
}
stream_ruleset.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "keyframes"
public static class mediaQuery_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mediaQuery"
// CSS.g:234:1: mediaQuery : AT_MEDIA medium BLOCK_OPEN ( ruleset )* BLOCK_END -> ^( AT_MEDIA medium ( ruleset )* ) ;
public final CSSParser.mediaQuery_return mediaQuery() throws RecognitionException {
CSSParser.mediaQuery_return retval = new CSSParser.mediaQuery_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AT_MEDIA21=null;
Token BLOCK_OPEN23=null;
Token BLOCK_END25=null;
ParserRuleReturnScope medium22 =null;
ParserRuleReturnScope ruleset24 =null;
Object AT_MEDIA21_tree=null;
Object BLOCK_OPEN23_tree=null;
Object BLOCK_END25_tree=null;
RewriteRuleTokenStream stream_BLOCK_OPEN=new RewriteRuleTokenStream(adaptor,"token BLOCK_OPEN");
RewriteRuleTokenStream stream_BLOCK_END=new RewriteRuleTokenStream(adaptor,"token BLOCK_END");
RewriteRuleTokenStream stream_AT_MEDIA=new RewriteRuleTokenStream(adaptor,"token AT_MEDIA");
RewriteRuleSubtreeStream stream_ruleset=new RewriteRuleSubtreeStream(adaptor,"rule ruleset");
RewriteRuleSubtreeStream stream_medium=new RewriteRuleSubtreeStream(adaptor,"rule medium");
try {
// CSS.g:235:5: ( AT_MEDIA medium BLOCK_OPEN ( ruleset )* BLOCK_END -> ^( AT_MEDIA medium ( ruleset )* ) )
// CSS.g:235:9: AT_MEDIA medium BLOCK_OPEN ( ruleset )* BLOCK_END
{
AT_MEDIA21=(Token)match(input,AT_MEDIA,FOLLOW_AT_MEDIA_in_mediaQuery324);
stream_AT_MEDIA.add(AT_MEDIA21);
pushFollow(FOLLOW_medium_in_mediaQuery326);
medium22=medium();
state._fsp--;
stream_medium.add(medium22.getTree());
BLOCK_OPEN23=(Token)match(input,BLOCK_OPEN,FOLLOW_BLOCK_OPEN_in_mediaQuery328);
stream_BLOCK_OPEN.add(BLOCK_OPEN23);
// CSS.g:235:36: ( ruleset )*
loop6:
while (true) {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==COLON||(LA6_0 >= DOT && LA6_0 <= DOUBLE_COLON)||LA6_0==HASH_WORD||LA6_0==ID||LA6_0==NUMBER_WITH_PERCENT||(LA6_0 >= SQUARE_OPEN && LA6_0 <= STAR)) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// CSS.g:235:36: ruleset
{
pushFollow(FOLLOW_ruleset_in_mediaQuery330);
ruleset24=ruleset();
state._fsp--;
stream_ruleset.add(ruleset24.getTree());
}
break;
default :
break loop6;
}
}
BLOCK_END25=(Token)match(input,BLOCK_END,FOLLOW_BLOCK_END_in_mediaQuery333);
stream_BLOCK_END.add(BLOCK_END25);
// AST REWRITE
// elements: AT_MEDIA, ruleset, medium
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 236:6: -> ^( AT_MEDIA medium ( ruleset )* )
{
// CSS.g:236:9: ^( AT_MEDIA medium ( ruleset )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_AT_MEDIA.nextNode(), root_1);
adaptor.addChild(root_1, stream_medium.nextTree());
// CSS.g:236:27: ( ruleset )*
while ( stream_ruleset.hasNext() ) {
adaptor.addChild(root_1, stream_ruleset.nextTree());
}
stream_ruleset.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "mediaQuery"
public static class medium_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "medium"
// CSS.g:243:1: medium : mediumCondition ( 'and' mediumCondition | mediumCondition )* -> ^( I_MEDIUM_CONDITIONS ( mediumCondition )* ) ;
public final CSSParser.medium_return medium() throws RecognitionException {
CSSParser.medium_return retval = new CSSParser.medium_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal27=null;
ParserRuleReturnScope mediumCondition26 =null;
ParserRuleReturnScope mediumCondition28 =null;
ParserRuleReturnScope mediumCondition29 =null;
Object string_literal27_tree=null;
RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81");
RewriteRuleSubtreeStream stream_mediumCondition=new RewriteRuleSubtreeStream(adaptor,"rule mediumCondition");
try {
// CSS.g:244:5: ( mediumCondition ( 'and' mediumCondition | mediumCondition )* -> ^( I_MEDIUM_CONDITIONS ( mediumCondition )* ) )
// CSS.g:244:9: mediumCondition ( 'and' mediumCondition | mediumCondition )*
{
pushFollow(FOLLOW_mediumCondition_in_medium373);
mediumCondition26=mediumCondition();
state._fsp--;
stream_mediumCondition.add(mediumCondition26.getTree());
// CSS.g:245:9: ( 'and' mediumCondition | mediumCondition )*
loop7:
while (true) {
int alt7=3;
int LA7_0 = input.LA(1);
if ( (LA7_0==81) ) {
alt7=1;
}
else if ( (LA7_0==ARGUMENTS||LA7_0==COMMA||LA7_0==ID||LA7_0==ONLY) ) {
alt7=2;
}
switch (alt7) {
case 1 :
// CSS.g:247:13: 'and' mediumCondition
{
string_literal27=(Token)match(input,81,FOLLOW_81_in_medium416);
stream_81.add(string_literal27);
pushFollow(FOLLOW_mediumCondition_in_medium431);
mediumCondition28=mediumCondition();
state._fsp--;
stream_mediumCondition.add(mediumCondition28.getTree());
}
break;
case 2 :
// CSS.g:249:15: mediumCondition
{
pushFollow(FOLLOW_mediumCondition_in_medium447);
mediumCondition29=mediumCondition();
state._fsp--;
stream_mediumCondition.add(mediumCondition29.getTree());
}
break;
default :
break loop7;
}
}
// AST REWRITE
// elements: mediumCondition
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 251:9: -> ^( I_MEDIUM_CONDITIONS ( mediumCondition )* )
{
// CSS.g:251:12: ^( I_MEDIUM_CONDITIONS ( mediumCondition )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(I_MEDIUM_CONDITIONS, "I_MEDIUM_CONDITIONS"), root_1);
// CSS.g:251:34: ( mediumCondition )*
while ( stream_mediumCondition.hasNext() ) {
adaptor.addChild(root_1, stream_mediumCondition.nextTree());
}
stream_mediumCondition.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "medium"
public static class mediumCondition_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mediumCondition"
// CSS.g:258:1: mediumCondition : ( ID | ONLY ID | ARGUMENTS | COMMA );
public final CSSParser.mediumCondition_return mediumCondition() throws RecognitionException {
CSSParser.mediumCondition_return retval = new CSSParser.mediumCondition_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ID30=null;
Token ONLY31=null;
Token ID32=null;
Token ARGUMENTS33=null;
Token COMMA34=null;
Object ID30_tree=null;
Object ONLY31_tree=null;
Object ID32_tree=null;
Object ARGUMENTS33_tree=null;
Object COMMA34_tree=null;
try {
// CSS.g:259:5: ( ID | ONLY ID | ARGUMENTS | COMMA )
int alt8=4;
switch ( input.LA(1) ) {
case ID:
{
alt8=1;
}
break;
case ONLY:
{
alt8=2;
}
break;
case ARGUMENTS:
{
alt8=3;
}
break;
case COMMA:
{
alt8=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 8, 0, input);
throw nvae;
}
switch (alt8) {
case 1 :
// CSS.g:259:9: ID
{
root_0 = (Object)adaptor.nil();
ID30=(Token)match(input,ID,FOLLOW_ID_in_mediumCondition498);
ID30_tree = (Object)adaptor.create(ID30);
adaptor.addChild(root_0, ID30_tree);
}
break;
case 2 :
// CSS.g:260:9: ONLY ID
{
root_0 = (Object)adaptor.nil();
ONLY31=(Token)match(input,ONLY,FOLLOW_ONLY_in_mediumCondition508);
ONLY31_tree = (Object)adaptor.create(ONLY31);
adaptor.addChild(root_0, ONLY31_tree);
ID32=(Token)match(input,ID,FOLLOW_ID_in_mediumCondition510);
ID32_tree = (Object)adaptor.create(ID32);
adaptor.addChild(root_0, ID32_tree);
}
break;
case 3 :
// CSS.g:261:9: ARGUMENTS
{
root_0 = (Object)adaptor.nil();
ARGUMENTS33=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_mediumCondition524);
ARGUMENTS33_tree = (Object)adaptor.create(ARGUMENTS33);
adaptor.addChild(root_0, ARGUMENTS33_tree);
}
break;
case 4 :
// CSS.g:262:9: COMMA
{
root_0 = (Object)adaptor.nil();
COMMA34=(Token)match(input,COMMA,FOLLOW_COMMA_in_mediumCondition534);
COMMA34_tree = (Object)adaptor.create(COMMA34);
adaptor.addChild(root_0, COMMA34_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "mediumCondition"
public static class fontFace_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fontFace"
// CSS.g:276:1: fontFace : AT_FONT_FACE declarationsBlock -> ^( AT_FONT_FACE declarationsBlock ) ;
public final CSSParser.fontFace_return fontFace() throws RecognitionException {
CSSParser.fontFace_return retval = new CSSParser.fontFace_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AT_FONT_FACE35=null;
ParserRuleReturnScope declarationsBlock36 =null;
Object AT_FONT_FACE35_tree=null;
RewriteRuleTokenStream stream_AT_FONT_FACE=new RewriteRuleTokenStream(adaptor,"token AT_FONT_FACE");
RewriteRuleSubtreeStream stream_declarationsBlock=new RewriteRuleSubtreeStream(adaptor,"rule declarationsBlock");
try {
// CSS.g:277:5: ( AT_FONT_FACE declarationsBlock -> ^( AT_FONT_FACE declarationsBlock ) )
// CSS.g:277:9: AT_FONT_FACE declarationsBlock
{
AT_FONT_FACE35=(Token)match(input,AT_FONT_FACE,FOLLOW_AT_FONT_FACE_in_fontFace563);
stream_AT_FONT_FACE.add(AT_FONT_FACE35);
pushFollow(FOLLOW_declarationsBlock_in_fontFace565);
declarationsBlock36=declarationsBlock();
state._fsp--;
stream_declarationsBlock.add(declarationsBlock36.getTree());
// AST REWRITE
// elements: AT_FONT_FACE, declarationsBlock
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 277:40: -> ^( AT_FONT_FACE declarationsBlock )
{
// CSS.g:277:43: ^( AT_FONT_FACE declarationsBlock )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_AT_FONT_FACE.nextNode(), root_1);
adaptor.addChild(root_1, stream_declarationsBlock.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "fontFace"
public static class ruleset_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ruleset"
// CSS.g:283:1: ruleset : selectorGroup declarationsBlock -> ^( I_RULE selectorGroup declarationsBlock ) ;
public final CSSParser.ruleset_return ruleset() throws RecognitionException {
CSSParser.ruleset_return retval = new CSSParser.ruleset_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope selectorGroup37 =null;
ParserRuleReturnScope declarationsBlock38 =null;
RewriteRuleSubtreeStream stream_selectorGroup=new RewriteRuleSubtreeStream(adaptor,"rule selectorGroup");
RewriteRuleSubtreeStream stream_declarationsBlock=new RewriteRuleSubtreeStream(adaptor,"rule declarationsBlock");
try {
// CSS.g:284:5: ( selectorGroup declarationsBlock -> ^( I_RULE selectorGroup declarationsBlock ) )
// CSS.g:284:9: selectorGroup declarationsBlock
{
pushFollow(FOLLOW_selectorGroup_in_ruleset596);
selectorGroup37=selectorGroup();
state._fsp--;
stream_selectorGroup.add(selectorGroup37.getTree());
pushFollow(FOLLOW_declarationsBlock_in_ruleset598);
declarationsBlock38=declarationsBlock();
state._fsp--;
stream_declarationsBlock.add(declarationsBlock38.getTree());
// AST REWRITE
// elements: selectorGroup, declarationsBlock
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 285:9: -> ^( I_RULE selectorGroup declarationsBlock )
{
// CSS.g:285:12: ^( I_RULE selectorGroup declarationsBlock )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(I_RULE, "I_RULE"), root_1);
adaptor.addChild(root_1, stream_selectorGroup.nextTree());
adaptor.addChild(root_1, stream_declarationsBlock.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "ruleset"
public static class selectorGroup_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "selectorGroup"
// CSS.g:291:1: selectorGroup : compoundSelector ( COMMA compoundSelector )* -> ^( I_SELECTOR_GROUP ( compoundSelector )+ ) ;
public final CSSParser.selectorGroup_return selectorGroup() throws RecognitionException {
CSSParser.selectorGroup_return retval = new CSSParser.selectorGroup_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA40=null;
ParserRuleReturnScope compoundSelector39 =null;
ParserRuleReturnScope compoundSelector41 =null;
Object COMMA40_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_compoundSelector=new RewriteRuleSubtreeStream(adaptor,"rule compoundSelector");
try {
// CSS.g:292:2: ( compoundSelector ( COMMA compoundSelector )* -> ^( I_SELECTOR_GROUP ( compoundSelector )+ ) )
// CSS.g:292:4: compoundSelector ( COMMA compoundSelector )*
{
pushFollow(FOLLOW_compoundSelector_in_selectorGroup632);
compoundSelector39=compoundSelector();
state._fsp--;
stream_compoundSelector.add(compoundSelector39.getTree());
// CSS.g:292:21: ( COMMA compoundSelector )*
loop9:
while (true) {
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==COMMA) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// CSS.g:292:23: COMMA compoundSelector
{
COMMA40=(Token)match(input,COMMA,FOLLOW_COMMA_in_selectorGroup636);
stream_COMMA.add(COMMA40);
pushFollow(FOLLOW_compoundSelector_in_selectorGroup638);
compoundSelector41=compoundSelector();
state._fsp--;
stream_compoundSelector.add(compoundSelector41.getTree());
}
break;
default :
break loop9;
}
}
// AST REWRITE
// elements: compoundSelector
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 293:9: -> ^( I_SELECTOR_GROUP ( compoundSelector )+ )
{
// CSS.g:293:12: ^( I_SELECTOR_GROUP ( compoundSelector )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(I_SELECTOR_GROUP, "I_SELECTOR_GROUP"), root_1);
if ( !(stream_compoundSelector.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_compoundSelector.hasNext() ) {
adaptor.addChild(root_1, stream_compoundSelector.nextTree());
}
stream_compoundSelector.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "selectorGroup"
public static class compoundSelector_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "compoundSelector"
// CSS.g:304:1: compoundSelector : (l= simpleSelectorFraction ( '+' | '>' )? )+ -> ^( I_SELECTOR ) ;
public final CSSParser.compoundSelector_return compoundSelector() throws RecognitionException {
CSSParser.compoundSelector_return retval = new CSSParser.compoundSelector_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal42=null;
Token char_literal43=null;
ParserRuleReturnScope l =null;
Object char_literal42_tree=null;
Object char_literal43_tree=null;
RewriteRuleTokenStream stream_PRECEDED=new RewriteRuleTokenStream(adaptor,"token PRECEDED");
RewriteRuleTokenStream stream_CHILD=new RewriteRuleTokenStream(adaptor,"token CHILD");
RewriteRuleSubtreeStream stream_simpleSelectorFraction=new RewriteRuleSubtreeStream(adaptor,"rule simpleSelectorFraction");
final List simpleSelectorNodeList = new ArrayList();
Object currentSimpleSelectorNode = adaptor.create(I_SIMPLE_SELECTOR, "I_SIMPLE_SELECTOR");
Token simpleSelectorStartToken = null;
Token simpleSelectorStopToken = null;
try {
// CSS.g:317:5: ( (l= simpleSelectorFraction ( '+' | '>' )? )+ -> ^( I_SELECTOR ) )
// CSS.g:317:9: (l= simpleSelectorFraction ( '+' | '>' )? )+
{
// CSS.g:317:9: (l= simpleSelectorFraction ( '+' | '>' )? )+
int cnt11=0;
loop11:
while (true) {
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==COLON||(LA11_0 >= DOT && LA11_0 <= DOUBLE_COLON)||LA11_0==HASH_WORD||LA11_0==ID||LA11_0==NUMBER_WITH_PERCENT||(LA11_0 >= SQUARE_OPEN && LA11_0 <= STAR)) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// CSS.g:317:13: l= simpleSelectorFraction ( '+' | '>' )?
{
pushFollow(FOLLOW_simpleSelectorFraction_in_compoundSelector703);
l=simpleSelectorFraction();
state._fsp--;
stream_simpleSelectorFraction.add(l.getTree());
// CSS.g:317:38: ( '+' | '>' )?
int alt10=3;
int LA10_0 = input.LA(1);
if ( (LA10_0==PRECEDED) ) {
alt10=1;
}
else if ( (LA10_0==CHILD) ) {
alt10=2;
}
switch (alt10) {
case 1 :
// CSS.g:317:40: '+'
{
char_literal42=(Token)match(input,PRECEDED,FOLLOW_PRECEDED_in_compoundSelector707);
stream_PRECEDED.add(char_literal42);
}
break;
case 2 :
// CSS.g:317:46: '>'
{
char_literal43=(Token)match(input,CHILD,FOLLOW_CHILD_in_compoundSelector711);
stream_CHILD.add(char_literal43);
}
break;
}
// expand token range of the current simple selector
if (simpleSelectorStartToken == null)
simpleSelectorStartToken = (l!=null?(l.start):null);
simpleSelectorStopToken = (l!=null?(l.stop):null);
adaptor.addChild(currentSimpleSelectorNode, (l!=null?((Object)l.getTree()):null));
int end = endOfSimpleSelector();
if (end != -1)
{
adaptor.setTokenBoundaries(
currentSimpleSelectorNode,
simpleSelectorStartToken,
simpleSelectorStopToken);
simpleSelectorNodeList.add(currentSimpleSelectorNode);
simpleSelectorStartToken = null;
simpleSelectorStopToken = null;
if (end == 1)
currentSimpleSelectorNode = adaptor.create(I_CHILD_SELECTOR, "I_CHILD_SELECTOR");
else if (end == 2)
currentSimpleSelectorNode = adaptor.create(I_PRECEDED_SELECTOR, "I_PRECEDED_SELECTOR");
else if (end == 3)
currentSimpleSelectorNode = adaptor.create(I_SIBLING_SELECTOR, "I_SIBLING_SELECTOR");
else
currentSimpleSelectorNode = adaptor.create(I_SIMPLE_SELECTOR, "I_SIMPLE_SELECTOR");
}
}
break;
default :
if ( cnt11 >= 1 ) break loop11;
EarlyExitException eee = new EarlyExitException(11, input);
throw eee;
}
cnt11++;
}
// AST REWRITE
// elements:
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 349:9: -> ^( I_SELECTOR )
{
// CSS.g:349:12: ^( I_SELECTOR )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(I_SELECTOR, "I_SELECTOR"), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
for(final Object simpleSelectorNode : simpleSelectorNodeList)
adaptor.addChild(retval.tree, simpleSelectorNode);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "compoundSelector"
public static class simpleSelectorFraction_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "simpleSelectorFraction"
// CSS.g:376:1: simpleSelectorFraction : ( condition | element );
public final CSSParser.simpleSelectorFraction_return simpleSelectorFraction() throws RecognitionException {
CSSParser.simpleSelectorFraction_return retval = new CSSParser.simpleSelectorFraction_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope condition44 =null;
ParserRuleReturnScope element45 =null;
try {
// CSS.g:377:5: ( condition | element )
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==COLON||(LA12_0 >= DOT && LA12_0 <= DOUBLE_COLON)||LA12_0==HASH_WORD||LA12_0==SQUARE_OPEN) ) {
alt12=1;
}
else if ( (LA12_0==ID||LA12_0==NUMBER_WITH_PERCENT||LA12_0==STAR) ) {
alt12=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// CSS.g:377:9: condition
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_condition_in_simpleSelectorFraction784);
condition44=condition();
state._fsp--;
adaptor.addChild(root_0, condition44.getTree());
}
break;
case 2 :
// CSS.g:378:9: element
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_element_in_simpleSelectorFraction795);
element45=element();
state._fsp--;
adaptor.addChild(root_0, element45.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "simpleSelectorFraction"
public static class condition_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "condition"
// CSS.g:385:1: condition : ( DOT ^ ID | HASH_WORD | COLON ^ NOT ARGUMENTS | COLON ^ ID | DOUBLE_COLON ^ ID | attributeSelector ) ;
public final CSSParser.condition_return condition() throws RecognitionException {
CSSParser.condition_return retval = new CSSParser.condition_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOT46=null;
Token ID47=null;
Token HASH_WORD48=null;
Token COLON49=null;
Token NOT50=null;
Token ARGUMENTS51=null;
Token COLON52=null;
Token ID53=null;
Token DOUBLE_COLON54=null;
Token ID55=null;
ParserRuleReturnScope attributeSelector56 =null;
Object DOT46_tree=null;
Object ID47_tree=null;
Object HASH_WORD48_tree=null;
Object COLON49_tree=null;
Object NOT50_tree=null;
Object ARGUMENTS51_tree=null;
Object COLON52_tree=null;
Object ID53_tree=null;
Object DOUBLE_COLON54_tree=null;
Object ID55_tree=null;
try {
// CSS.g:386:5: ( ( DOT ^ ID | HASH_WORD | COLON ^ NOT ARGUMENTS | COLON ^ ID | DOUBLE_COLON ^ ID | attributeSelector ) )
// CSS.g:386:9: ( DOT ^ ID | HASH_WORD | COLON ^ NOT ARGUMENTS | COLON ^ ID | DOUBLE_COLON ^ ID | attributeSelector )
{
root_0 = (Object)adaptor.nil();
// CSS.g:386:9: ( DOT ^ ID | HASH_WORD | COLON ^ NOT ARGUMENTS | COLON ^ ID | DOUBLE_COLON ^ ID | attributeSelector )
int alt13=6;
switch ( input.LA(1) ) {
case DOT:
{
alt13=1;
}
break;
case HASH_WORD:
{
alt13=2;
}
break;
case COLON:
{
int LA13_3 = input.LA(2);
if ( (LA13_3==NOT) ) {
alt13=3;
}
else if ( (LA13_3==ID) ) {
alt13=4;
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLE_COLON:
{
alt13=5;
}
break;
case SQUARE_OPEN:
{
alt13=6;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
// CSS.g:386:11: DOT ^ ID
{
DOT46=(Token)match(input,DOT,FOLLOW_DOT_in_condition821);
DOT46_tree = (Object)adaptor.create(DOT46);
root_0 = (Object)adaptor.becomeRoot(DOT46_tree, root_0);
ID47=(Token)match(input,ID,FOLLOW_ID_in_condition824);
ID47_tree = (Object)adaptor.create(ID47);
adaptor.addChild(root_0, ID47_tree);
}
break;
case 2 :
// CSS.g:387:11: HASH_WORD
{
HASH_WORD48=(Token)match(input,HASH_WORD,FOLLOW_HASH_WORD_in_condition836);
HASH_WORD48_tree = (Object)adaptor.create(HASH_WORD48);
adaptor.addChild(root_0, HASH_WORD48_tree);
}
break;
case 3 :
// CSS.g:388:11: COLON ^ NOT ARGUMENTS
{
COLON49=(Token)match(input,COLON,FOLLOW_COLON_in_condition849);
COLON49_tree = (Object)adaptor.create(COLON49);
root_0 = (Object)adaptor.becomeRoot(COLON49_tree, root_0);
NOT50=(Token)match(input,NOT,FOLLOW_NOT_in_condition852);
NOT50_tree = (Object)adaptor.create(NOT50);
adaptor.addChild(root_0, NOT50_tree);
ARGUMENTS51=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_condition854);
ARGUMENTS51_tree = (Object)adaptor.create(ARGUMENTS51);
adaptor.addChild(root_0, ARGUMENTS51_tree);
}
break;
case 4 :
// CSS.g:389:11: COLON ^ ID
{
COLON52=(Token)match(input,COLON,FOLLOW_COLON_in_condition867);
COLON52_tree = (Object)adaptor.create(COLON52);
root_0 = (Object)adaptor.becomeRoot(COLON52_tree, root_0);
ID53=(Token)match(input,ID,FOLLOW_ID_in_condition870);
ID53_tree = (Object)adaptor.create(ID53);
adaptor.addChild(root_0, ID53_tree);
}
break;
case 5 :
// CSS.g:390:11: DOUBLE_COLON ^ ID
{
DOUBLE_COLON54=(Token)match(input,DOUBLE_COLON,FOLLOW_DOUBLE_COLON_in_condition883);
DOUBLE_COLON54_tree = (Object)adaptor.create(DOUBLE_COLON54);
root_0 = (Object)adaptor.becomeRoot(DOUBLE_COLON54_tree, root_0);
ID55=(Token)match(input,ID,FOLLOW_ID_in_condition886);
ID55_tree = (Object)adaptor.create(ID55);
adaptor.addChild(root_0, ID55_tree);
}
break;
case 6 :
// CSS.g:391:11: attributeSelector
{
pushFollow(FOLLOW_attributeSelector_in_condition899);
attributeSelector56=attributeSelector();
state._fsp--;
adaptor.addChild(root_0, attributeSelector56.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "condition"
public static class element_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "element"
// CSS.g:400:1: element : ( ID PIPE ^ ID | NUMBER_WITH_PERCENT | ID | STAR );
public final CSSParser.element_return element() throws RecognitionException {
CSSParser.element_return retval = new CSSParser.element_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ID57=null;
Token PIPE58=null;
Token ID59=null;
Token NUMBER_WITH_PERCENT60=null;
Token ID61=null;
Token STAR62=null;
Object ID57_tree=null;
Object PIPE58_tree=null;
Object ID59_tree=null;
Object NUMBER_WITH_PERCENT60_tree=null;
Object ID61_tree=null;
Object STAR62_tree=null;
try {
// CSS.g:401:5: ( ID PIPE ^ ID | NUMBER_WITH_PERCENT | ID | STAR )
int alt14=4;
switch ( input.LA(1) ) {
case ID:
{
int LA14_1 = input.LA(2);
if ( (LA14_1==PIPE) ) {
alt14=1;
}
else if ( (LA14_1==BLOCK_OPEN||LA14_1==CHILD||(LA14_1 >= COLON && LA14_1 <= COMMA)||(LA14_1 >= DOT && LA14_1 <= DOUBLE_COLON)||LA14_1==HASH_WORD||LA14_1==ID||LA14_1==NUMBER_WITH_PERCENT||LA14_1==PRECEDED||(LA14_1 >= SQUARE_OPEN && LA14_1 <= STAR)) ) {
alt14=3;
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 14, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case NUMBER_WITH_PERCENT:
{
alt14=2;
}
break;
case STAR:
{
alt14=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 14, 0, input);
throw nvae;
}
switch (alt14) {
case 1 :
// CSS.g:401:9: ID PIPE ^ ID
{
root_0 = (Object)adaptor.nil();
ID57=(Token)match(input,ID,FOLLOW_ID_in_element933);
ID57_tree = (Object)adaptor.create(ID57);
adaptor.addChild(root_0, ID57_tree);
PIPE58=(Token)match(input,PIPE,FOLLOW_PIPE_in_element935);
PIPE58_tree = (Object)adaptor.create(PIPE58);
root_0 = (Object)adaptor.becomeRoot(PIPE58_tree, root_0);
ID59=(Token)match(input,ID,FOLLOW_ID_in_element938);
ID59_tree = (Object)adaptor.create(ID59);
adaptor.addChild(root_0, ID59_tree);
}
break;
case 2 :
// CSS.g:402:9: NUMBER_WITH_PERCENT
{
root_0 = (Object)adaptor.nil();
NUMBER_WITH_PERCENT60=(Token)match(input,NUMBER_WITH_PERCENT,FOLLOW_NUMBER_WITH_PERCENT_in_element948);
NUMBER_WITH_PERCENT60_tree = (Object)adaptor.create(NUMBER_WITH_PERCENT60);
adaptor.addChild(root_0, NUMBER_WITH_PERCENT60_tree);
}
break;
case 3 :
// CSS.g:403:9: ID
{
root_0 = (Object)adaptor.nil();
ID61=(Token)match(input,ID,FOLLOW_ID_in_element970);
ID61_tree = (Object)adaptor.create(ID61);
adaptor.addChild(root_0, ID61_tree);
}
break;
case 4 :
// CSS.g:404:9: STAR
{
root_0 = (Object)adaptor.nil();
STAR62=(Token)match(input,STAR,FOLLOW_STAR_in_element990);
STAR62_tree = (Object)adaptor.create(STAR62);
adaptor.addChild(root_0, STAR62_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "element"
public static class declarationsBlock_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declarationsBlock"
// CSS.g:412:1: declarationsBlock : BLOCK_OPEN ( ( SEMI_COLONS )? declaration ( SEMI_COLONS declaration )* ( SEMI_COLONS )? )? BLOCK_END -> ^( I_DECL ( declaration )* ) ;
public final CSSParser.declarationsBlock_return declarationsBlock() throws RecognitionException {
CSSParser.declarationsBlock_return retval = new CSSParser.declarationsBlock_return();
retval.start = input.LT(1);
Object root_0 = null;
Token BLOCK_OPEN63=null;
Token SEMI_COLONS64=null;
Token SEMI_COLONS66=null;
Token SEMI_COLONS68=null;
Token BLOCK_END69=null;
ParserRuleReturnScope declaration65 =null;
ParserRuleReturnScope declaration67 =null;
Object BLOCK_OPEN63_tree=null;
Object SEMI_COLONS64_tree=null;
Object SEMI_COLONS66_tree=null;
Object SEMI_COLONS68_tree=null;
Object BLOCK_END69_tree=null;
RewriteRuleTokenStream stream_BLOCK_OPEN=new RewriteRuleTokenStream(adaptor,"token BLOCK_OPEN");
RewriteRuleTokenStream stream_BLOCK_END=new RewriteRuleTokenStream(adaptor,"token BLOCK_END");
RewriteRuleTokenStream stream_SEMI_COLONS=new RewriteRuleTokenStream(adaptor,"token SEMI_COLONS");
RewriteRuleSubtreeStream stream_declaration=new RewriteRuleSubtreeStream(adaptor,"rule declaration");
try {
// CSS.g:413:5: ( BLOCK_OPEN ( ( SEMI_COLONS )? declaration ( SEMI_COLONS declaration )* ( SEMI_COLONS )? )? BLOCK_END -> ^( I_DECL ( declaration )* ) )
// CSS.g:413:9: BLOCK_OPEN ( ( SEMI_COLONS )? declaration ( SEMI_COLONS declaration )* ( SEMI_COLONS )? )? BLOCK_END
{
BLOCK_OPEN63=(Token)match(input,BLOCK_OPEN,FOLLOW_BLOCK_OPEN_in_declarationsBlock1019);
stream_BLOCK_OPEN.add(BLOCK_OPEN63);
// CSS.g:414:9: ( ( SEMI_COLONS )? declaration ( SEMI_COLONS declaration )* ( SEMI_COLONS )? )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==DASHED_ID||LA18_0==ID||LA18_0==SEMI_COLONS) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// CSS.g:415:13: ( SEMI_COLONS )? declaration ( SEMI_COLONS declaration )* ( SEMI_COLONS )?
{
// CSS.g:415:13: ( SEMI_COLONS )?
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==SEMI_COLONS) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// CSS.g:415:13: SEMI_COLONS
{
SEMI_COLONS64=(Token)match(input,SEMI_COLONS,FOLLOW_SEMI_COLONS_in_declarationsBlock1047);
stream_SEMI_COLONS.add(SEMI_COLONS64);
}
break;
}
pushFollow(FOLLOW_declaration_in_declarationsBlock1065);
declaration65=declaration();
state._fsp--;
stream_declaration.add(declaration65.getTree());
// CSS.g:417:13: ( SEMI_COLONS declaration )*
loop16:
while (true) {
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==SEMI_COLONS) ) {
int LA16_1 = input.LA(2);
if ( (LA16_1==DASHED_ID||LA16_1==ID) ) {
alt16=1;
}
}
switch (alt16) {
case 1 :
// CSS.g:418:17: SEMI_COLONS declaration
{
SEMI_COLONS66=(Token)match(input,SEMI_COLONS,FOLLOW_SEMI_COLONS_in_declarationsBlock1099);
stream_SEMI_COLONS.add(SEMI_COLONS66);
pushFollow(FOLLOW_declaration_in_declarationsBlock1118);
declaration67=declaration();
state._fsp--;
stream_declaration.add(declaration67.getTree());
}
break;
default :
break loop16;
}
}
// CSS.g:421:13: ( SEMI_COLONS )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==SEMI_COLONS) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// CSS.g:421:13: SEMI_COLONS
{
SEMI_COLONS68=(Token)match(input,SEMI_COLONS,FOLLOW_SEMI_COLONS_in_declarationsBlock1148);
stream_SEMI_COLONS.add(SEMI_COLONS68);
}
break;
}
}
break;
}
BLOCK_END69=(Token)match(input,BLOCK_END,FOLLOW_BLOCK_END_in_declarationsBlock1171);
stream_BLOCK_END.add(BLOCK_END69);
// AST REWRITE
// elements: declaration
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 424:9: -> ^( I_DECL ( declaration )* )
{
// CSS.g:424:12: ^( I_DECL ( declaration )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(I_DECL, "I_DECL"), root_1);
// CSS.g:424:21: ( declaration )*
while ( stream_declaration.hasNext() ) {
adaptor.addChild(root_1, stream_declaration.nextTree());
}
stream_declaration.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "declarationsBlock"
public static class declaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declaration"
// CSS.g:432:1: declaration : ( ID COLON value -> ^( COLON ID value ) | DASHED_ID COLON value -> ^( COLON DASHED_ID value ) );
public final CSSParser.declaration_return declaration() throws RecognitionException {
CSSParser.declaration_return retval = new CSSParser.declaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ID70=null;
Token COLON71=null;
Token DASHED_ID73=null;
Token COLON74=null;
ParserRuleReturnScope value72 =null;
ParserRuleReturnScope value75 =null;
Object ID70_tree=null;
Object COLON71_tree=null;
Object DASHED_ID73_tree=null;
Object COLON74_tree=null;
RewriteRuleTokenStream stream_DASHED_ID=new RewriteRuleTokenStream(adaptor,"token DASHED_ID");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");
try {
// CSS.g:433:5: ( ID COLON value -> ^( COLON ID value ) | DASHED_ID COLON value -> ^( COLON DASHED_ID value ) )
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==ID) ) {
alt19=1;
}
else if ( (LA19_0==DASHED_ID) ) {
alt19=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 19, 0, input);
throw nvae;
}
switch (alt19) {
case 1 :
// CSS.g:433:9: ID COLON value
{
ID70=(Token)match(input,ID,FOLLOW_ID_in_declaration1211);
stream_ID.add(ID70);
COLON71=(Token)match(input,COLON,FOLLOW_COLON_in_declaration1213);
stream_COLON.add(COLON71);
pushFollow(FOLLOW_value_in_declaration1215);
value72=value();
state._fsp--;
stream_value.add(value72.getTree());
// AST REWRITE
// elements: ID, COLON, value
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 433:24: -> ^( COLON ID value )
{
// CSS.g:433:27: ^( COLON ID value )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_COLON.nextNode(), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
adaptor.addChild(root_1, stream_value.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 2 :
// CSS.g:434:9: DASHED_ID COLON value
{
DASHED_ID73=(Token)match(input,DASHED_ID,FOLLOW_DASHED_ID_in_declaration1235);
stream_DASHED_ID.add(DASHED_ID73);
COLON74=(Token)match(input,COLON,FOLLOW_COLON_in_declaration1237);
stream_COLON.add(COLON74);
pushFollow(FOLLOW_value_in_declaration1239);
value75=value();
state._fsp--;
stream_value.add(value75.getTree());
// AST REWRITE
// elements: COLON, value, DASHED_ID
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 434:31: -> ^( COLON DASHED_ID value )
{
// CSS.g:434:34: ^( COLON DASHED_ID value )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_COLON.nextNode(), root_1);
adaptor.addChild(root_1, stream_DASHED_ID.nextNode());
adaptor.addChild(root_1, stream_value.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "declaration"
public static class value_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "value"
// CSS.g:450:1: value : multiValue ( COMMA multiValue )* -> {count > 1}? ^( I_ARRAY ( multiValue )+ ) -> multiValue ;
public final CSSParser.value_return value() throws RecognitionException {
CSSParser.value_return retval = new CSSParser.value_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA77=null;
ParserRuleReturnScope multiValue76 =null;
ParserRuleReturnScope multiValue78 =null;
Object COMMA77_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_multiValue=new RewriteRuleSubtreeStream(adaptor,"rule multiValue");
int count = 1;
try {
// CSS.g:452:5: ( multiValue ( COMMA multiValue )* -> {count > 1}? ^( I_ARRAY ( multiValue )+ ) -> multiValue )
// CSS.g:452:9: multiValue ( COMMA multiValue )*
{
pushFollow(FOLLOW_multiValue_in_value1285);
multiValue76=multiValue();
state._fsp--;
stream_multiValue.add(multiValue76.getTree());
// CSS.g:452:20: ( COMMA multiValue )*
loop20:
while (true) {
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==COMMA) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// CSS.g:452:22: COMMA multiValue
{
COMMA77=(Token)match(input,COMMA,FOLLOW_COMMA_in_value1289);
stream_COMMA.add(COMMA77);
pushFollow(FOLLOW_multiValue_in_value1291);
multiValue78=multiValue();
state._fsp--;
stream_multiValue.add(multiValue78.getTree());
count++;
}
break;
default :
break loop20;
}
}
// AST REWRITE
// elements: multiValue, multiValue
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 453:9: -> {count > 1}? ^( I_ARRAY ( multiValue )+ )
if (count > 1) {
// CSS.g:453:25: ^( I_ARRAY ( multiValue )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(I_ARRAY, "I_ARRAY"), root_1);
if ( !(stream_multiValue.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_multiValue.hasNext() ) {
adaptor.addChild(root_1, stream_multiValue.nextTree());
}
stream_multiValue.reset();
adaptor.addChild(root_0, root_1);
}
}
else // 454:9: -> multiValue
{
adaptor.addChild(root_0, stream_multiValue.nextTree());
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "value"
public static class multiValue_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multiValue"
// CSS.g:466:1: multiValue : singleValue ( singleValue )* -> {count > 1}? ^( I_MULTIVALUE ( singleValue )+ ) -> singleValue ;
public final CSSParser.multiValue_return multiValue() throws RecognitionException {
CSSParser.multiValue_return retval = new CSSParser.multiValue_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope singleValue79 =null;
ParserRuleReturnScope singleValue80 =null;
RewriteRuleSubtreeStream stream_singleValue=new RewriteRuleSubtreeStream(adaptor,"rule singleValue");
int count = 1;
try {
// CSS.g:468:5: ( singleValue ( singleValue )* -> {count > 1}? ^( I_MULTIVALUE ( singleValue )+ ) -> singleValue )
// CSS.g:468:9: singleValue ( singleValue )*
{
pushFollow(FOLLOW_singleValue_in_multiValue1372);
singleValue79=singleValue();
state._fsp--;
stream_singleValue.add(singleValue79.getTree());
// CSS.g:468:21: ( singleValue )*
loop21:
while (true) {
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==ALPHA_VALUE||LA21_0==CALC||LA21_0==CLASS_REFERENCE||LA21_0==EMBED||(LA21_0 >= FUNCTIONS && LA21_0 <= HASH_WORD)||(LA21_0 >= ID && LA21_0 <= IMPORTANT)||(LA21_0 >= LOCAL && LA21_0 <= MATRIX_VALUE)||(LA21_0 >= NUMBER_WITH_PERCENT && LA21_0 <= NUMBER_WITH_UNIT)||LA21_0==OPERATOR||(LA21_0 >= PROPERTY_REFERENCE && LA21_0 <= ROTATE_VALUE)||LA21_0==SCALE_VALUE||LA21_0==STRING||(LA21_0 >= TRANSLATE3D_VALUE && LA21_0 <= VAR)) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// CSS.g:468:23: singleValue
{
pushFollow(FOLLOW_singleValue_in_multiValue1376);
singleValue80=singleValue();
state._fsp--;
stream_singleValue.add(singleValue80.getTree());
count++;
}
break;
default :
break loop21;
}
}
// AST REWRITE
// elements: singleValue, singleValue
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 469:9: -> {count > 1}? ^( I_MULTIVALUE ( singleValue )+ )
if (count > 1) {
// CSS.g:469:25: ^( I_MULTIVALUE ( singleValue )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(I_MULTIVALUE, "I_MULTIVALUE"), root_1);
if ( !(stream_singleValue.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_singleValue.hasNext() ) {
adaptor.addChild(root_1, stream_singleValue.nextTree());
}
stream_singleValue.reset();
adaptor.addChild(root_0, root_1);
}
}
else // 470:9: -> singleValue
{
adaptor.addChild(root_0, stream_singleValue.nextTree());
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "multiValue"
public static class singleValue_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "singleValue"
// CSS.g:488:1: singleValue : ( NUMBER_WITH_PERCENT | NUMBER_WITH_UNIT | HASH_WORD | CLASS_REFERENCE ARGUMENTS -> ^( CLASS_REFERENCE ARGUMENTS ) | PROPERTY_REFERENCE ARGUMENTS -> ^( PROPERTY_REFERENCE ARGUMENTS ) | EMBED ARGUMENTS -> ^( EMBED ARGUMENTS ) | URL ARGUMENTS ( formatOption )* -> ^( URL ARGUMENTS ( formatOption )* ) | LOCAL ARGUMENTS -> ^( LOCAL ARGUMENTS ) | CALC ARGUMENTS -> ^( CALC ARGUMENTS ) | VAR ARGUMENTS -> ^( VAR ARGUMENTS ) | FUNCTIONS ARGUMENTS -> ^( FUNCTIONS ARGUMENTS ) | ALPHA_VALUE | SCALE_VALUE | RECT_VALUE | ROTATE_VALUE | TRANSLATE3D_VALUE | MATRIX_VALUE | MATRIX3D_VALUE | RGB | RGBA | STRING | ID | OPERATOR | IMPORTANT );
public final CSSParser.singleValue_return singleValue() throws RecognitionException {
CSSParser.singleValue_return retval = new CSSParser.singleValue_return();
retval.start = input.LT(1);
Object root_0 = null;
Token NUMBER_WITH_PERCENT81=null;
Token NUMBER_WITH_UNIT82=null;
Token HASH_WORD83=null;
Token CLASS_REFERENCE84=null;
Token ARGUMENTS85=null;
Token PROPERTY_REFERENCE86=null;
Token ARGUMENTS87=null;
Token EMBED88=null;
Token ARGUMENTS89=null;
Token URL90=null;
Token ARGUMENTS91=null;
Token LOCAL93=null;
Token ARGUMENTS94=null;
Token CALC95=null;
Token ARGUMENTS96=null;
Token VAR97=null;
Token ARGUMENTS98=null;
Token FUNCTIONS99=null;
Token ARGUMENTS100=null;
Token ALPHA_VALUE101=null;
Token SCALE_VALUE102=null;
Token RECT_VALUE103=null;
Token ROTATE_VALUE104=null;
Token TRANSLATE3D_VALUE105=null;
Token MATRIX_VALUE106=null;
Token MATRIX3D_VALUE107=null;
Token RGB108=null;
Token RGBA109=null;
Token STRING110=null;
Token ID111=null;
Token OPERATOR112=null;
Token IMPORTANT113=null;
ParserRuleReturnScope formatOption92 =null;
Object NUMBER_WITH_PERCENT81_tree=null;
Object NUMBER_WITH_UNIT82_tree=null;
Object HASH_WORD83_tree=null;
Object CLASS_REFERENCE84_tree=null;
Object ARGUMENTS85_tree=null;
Object PROPERTY_REFERENCE86_tree=null;
Object ARGUMENTS87_tree=null;
Object EMBED88_tree=null;
Object ARGUMENTS89_tree=null;
Object URL90_tree=null;
Object ARGUMENTS91_tree=null;
Object LOCAL93_tree=null;
Object ARGUMENTS94_tree=null;
Object CALC95_tree=null;
Object ARGUMENTS96_tree=null;
Object VAR97_tree=null;
Object ARGUMENTS98_tree=null;
Object FUNCTIONS99_tree=null;
Object ARGUMENTS100_tree=null;
Object ALPHA_VALUE101_tree=null;
Object SCALE_VALUE102_tree=null;
Object RECT_VALUE103_tree=null;
Object ROTATE_VALUE104_tree=null;
Object TRANSLATE3D_VALUE105_tree=null;
Object MATRIX_VALUE106_tree=null;
Object MATRIX3D_VALUE107_tree=null;
Object RGB108_tree=null;
Object RGBA109_tree=null;
Object STRING110_tree=null;
Object ID111_tree=null;
Object OPERATOR112_tree=null;
Object IMPORTANT113_tree=null;
RewriteRuleTokenStream stream_ARGUMENTS=new RewriteRuleTokenStream(adaptor,"token ARGUMENTS");
RewriteRuleTokenStream stream_PROPERTY_REFERENCE=new RewriteRuleTokenStream(adaptor,"token PROPERTY_REFERENCE");
RewriteRuleTokenStream stream_VAR=new RewriteRuleTokenStream(adaptor,"token VAR");
RewriteRuleTokenStream stream_CLASS_REFERENCE=new RewriteRuleTokenStream(adaptor,"token CLASS_REFERENCE");
RewriteRuleTokenStream stream_LOCAL=new RewriteRuleTokenStream(adaptor,"token LOCAL");
RewriteRuleTokenStream stream_EMBED=new RewriteRuleTokenStream(adaptor,"token EMBED");
RewriteRuleTokenStream stream_CALC=new RewriteRuleTokenStream(adaptor,"token CALC");
RewriteRuleTokenStream stream_FUNCTIONS=new RewriteRuleTokenStream(adaptor,"token FUNCTIONS");
RewriteRuleTokenStream stream_URL=new RewriteRuleTokenStream(adaptor,"token URL");
RewriteRuleSubtreeStream stream_formatOption=new RewriteRuleSubtreeStream(adaptor,"rule formatOption");
try {
// CSS.g:489:5: ( NUMBER_WITH_PERCENT | NUMBER_WITH_UNIT | HASH_WORD | CLASS_REFERENCE ARGUMENTS -> ^( CLASS_REFERENCE ARGUMENTS ) | PROPERTY_REFERENCE ARGUMENTS -> ^( PROPERTY_REFERENCE ARGUMENTS ) | EMBED ARGUMENTS -> ^( EMBED ARGUMENTS ) | URL ARGUMENTS ( formatOption )* -> ^( URL ARGUMENTS ( formatOption )* ) | LOCAL ARGUMENTS -> ^( LOCAL ARGUMENTS ) | CALC ARGUMENTS -> ^( CALC ARGUMENTS ) | VAR ARGUMENTS -> ^( VAR ARGUMENTS ) | FUNCTIONS ARGUMENTS -> ^( FUNCTIONS ARGUMENTS ) | ALPHA_VALUE | SCALE_VALUE | RECT_VALUE | ROTATE_VALUE | TRANSLATE3D_VALUE | MATRIX_VALUE | MATRIX3D_VALUE | RGB | RGBA | STRING | ID | OPERATOR | IMPORTANT )
int alt23=24;
switch ( input.LA(1) ) {
case NUMBER_WITH_PERCENT:
{
alt23=1;
}
break;
case NUMBER_WITH_UNIT:
{
alt23=2;
}
break;
case HASH_WORD:
{
alt23=3;
}
break;
case CLASS_REFERENCE:
{
alt23=4;
}
break;
case PROPERTY_REFERENCE:
{
alt23=5;
}
break;
case EMBED:
{
alt23=6;
}
break;
case URL:
{
alt23=7;
}
break;
case LOCAL:
{
alt23=8;
}
break;
case CALC:
{
alt23=9;
}
break;
case VAR:
{
alt23=10;
}
break;
case FUNCTIONS:
{
alt23=11;
}
break;
case ALPHA_VALUE:
{
alt23=12;
}
break;
case SCALE_VALUE:
{
alt23=13;
}
break;
case RECT_VALUE:
{
alt23=14;
}
break;
case ROTATE_VALUE:
{
alt23=15;
}
break;
case TRANSLATE3D_VALUE:
{
alt23=16;
}
break;
case MATRIX_VALUE:
{
alt23=17;
}
break;
case MATRIX3D_VALUE:
{
alt23=18;
}
break;
case RGB:
{
alt23=19;
}
break;
case RGBA:
{
alt23=20;
}
break;
case STRING:
{
alt23=21;
}
break;
case ID:
{
alt23=22;
}
break;
case OPERATOR:
{
alt23=23;
}
break;
case IMPORTANT:
{
alt23=24;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 23, 0, input);
throw nvae;
}
switch (alt23) {
case 1 :
// CSS.g:489:9: NUMBER_WITH_PERCENT
{
root_0 = (Object)adaptor.nil();
NUMBER_WITH_PERCENT81=(Token)match(input,NUMBER_WITH_PERCENT,FOLLOW_NUMBER_WITH_PERCENT_in_singleValue1446);
NUMBER_WITH_PERCENT81_tree = (Object)adaptor.create(NUMBER_WITH_PERCENT81);
adaptor.addChild(root_0, NUMBER_WITH_PERCENT81_tree);
}
break;
case 2 :
// CSS.g:490:9: NUMBER_WITH_UNIT
{
root_0 = (Object)adaptor.nil();
NUMBER_WITH_UNIT82=(Token)match(input,NUMBER_WITH_UNIT,FOLLOW_NUMBER_WITH_UNIT_in_singleValue1456);
NUMBER_WITH_UNIT82_tree = (Object)adaptor.create(NUMBER_WITH_UNIT82);
adaptor.addChild(root_0, NUMBER_WITH_UNIT82_tree);
}
break;
case 3 :
// CSS.g:491:9: HASH_WORD
{
root_0 = (Object)adaptor.nil();
HASH_WORD83=(Token)match(input,HASH_WORD,FOLLOW_HASH_WORD_in_singleValue1466);
HASH_WORD83_tree = (Object)adaptor.create(HASH_WORD83);
adaptor.addChild(root_0, HASH_WORD83_tree);
}
break;
case 4 :
// CSS.g:492:9: CLASS_REFERENCE ARGUMENTS
{
CLASS_REFERENCE84=(Token)match(input,CLASS_REFERENCE,FOLLOW_CLASS_REFERENCE_in_singleValue1476);
stream_CLASS_REFERENCE.add(CLASS_REFERENCE84);
ARGUMENTS85=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1478);
stream_ARGUMENTS.add(ARGUMENTS85);
// AST REWRITE
// elements: CLASS_REFERENCE, ARGUMENTS
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 493:13: -> ^( CLASS_REFERENCE ARGUMENTS )
{
// CSS.g:493:16: ^( CLASS_REFERENCE ARGUMENTS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_CLASS_REFERENCE.nextNode(), root_1);
adaptor.addChild(root_1, stream_ARGUMENTS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 5 :
// CSS.g:494:9: PROPERTY_REFERENCE ARGUMENTS
{
PROPERTY_REFERENCE86=(Token)match(input,PROPERTY_REFERENCE,FOLLOW_PROPERTY_REFERENCE_in_singleValue1508);
stream_PROPERTY_REFERENCE.add(PROPERTY_REFERENCE86);
ARGUMENTS87=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1510);
stream_ARGUMENTS.add(ARGUMENTS87);
// AST REWRITE
// elements: ARGUMENTS, PROPERTY_REFERENCE
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 495:13: -> ^( PROPERTY_REFERENCE ARGUMENTS )
{
// CSS.g:495:16: ^( PROPERTY_REFERENCE ARGUMENTS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_PROPERTY_REFERENCE.nextNode(), root_1);
adaptor.addChild(root_1, stream_ARGUMENTS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 6 :
// CSS.g:496:9: EMBED ARGUMENTS
{
EMBED88=(Token)match(input,EMBED,FOLLOW_EMBED_in_singleValue1540);
stream_EMBED.add(EMBED88);
ARGUMENTS89=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1542);
stream_ARGUMENTS.add(ARGUMENTS89);
// AST REWRITE
// elements: ARGUMENTS, EMBED
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 497:13: -> ^( EMBED ARGUMENTS )
{
// CSS.g:497:16: ^( EMBED ARGUMENTS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_EMBED.nextNode(), root_1);
adaptor.addChild(root_1, stream_ARGUMENTS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 7 :
// CSS.g:498:9: URL ARGUMENTS ( formatOption )*
{
URL90=(Token)match(input,URL,FOLLOW_URL_in_singleValue1572);
stream_URL.add(URL90);
ARGUMENTS91=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1574);
stream_ARGUMENTS.add(ARGUMENTS91);
// CSS.g:498:23: ( formatOption )*
loop22:
while (true) {
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==FORMAT) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// CSS.g:498:23: formatOption
{
pushFollow(FOLLOW_formatOption_in_singleValue1576);
formatOption92=formatOption();
state._fsp--;
stream_formatOption.add(formatOption92.getTree());
}
break;
default :
break loop22;
}
}
// AST REWRITE
// elements: formatOption, URL, ARGUMENTS
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 498:39: -> ^( URL ARGUMENTS ( formatOption )* )
{
// CSS.g:498:42: ^( URL ARGUMENTS ( formatOption )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_URL.nextNode(), root_1);
adaptor.addChild(root_1, stream_ARGUMENTS.nextNode());
// CSS.g:498:58: ( formatOption )*
while ( stream_formatOption.hasNext() ) {
adaptor.addChild(root_1, stream_formatOption.nextTree());
}
stream_formatOption.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 8 :
// CSS.g:499:9: LOCAL ARGUMENTS
{
LOCAL93=(Token)match(input,LOCAL,FOLLOW_LOCAL_in_singleValue1600);
stream_LOCAL.add(LOCAL93);
ARGUMENTS94=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1602);
stream_ARGUMENTS.add(ARGUMENTS94);
// AST REWRITE
// elements: LOCAL, ARGUMENTS
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 499:34: -> ^( LOCAL ARGUMENTS )
{
// CSS.g:499:37: ^( LOCAL ARGUMENTS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_LOCAL.nextNode(), root_1);
adaptor.addChild(root_1, stream_ARGUMENTS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 9 :
// CSS.g:500:9: CALC ARGUMENTS
{
CALC95=(Token)match(input,CALC,FOLLOW_CALC_in_singleValue1629);
stream_CALC.add(CALC95);
ARGUMENTS96=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1631);
stream_ARGUMENTS.add(ARGUMENTS96);
// AST REWRITE
// elements: CALC, ARGUMENTS
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 500:33: -> ^( CALC ARGUMENTS )
{
// CSS.g:500:36: ^( CALC ARGUMENTS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_CALC.nextNode(), root_1);
adaptor.addChild(root_1, stream_ARGUMENTS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 10 :
// CSS.g:501:9: VAR ARGUMENTS
{
VAR97=(Token)match(input,VAR,FOLLOW_VAR_in_singleValue1658);
stream_VAR.add(VAR97);
ARGUMENTS98=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1660);
stream_ARGUMENTS.add(ARGUMENTS98);
// AST REWRITE
// elements: VAR, ARGUMENTS
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 501:32: -> ^( VAR ARGUMENTS )
{
// CSS.g:501:35: ^( VAR ARGUMENTS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_VAR.nextNode(), root_1);
adaptor.addChild(root_1, stream_ARGUMENTS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 11 :
// CSS.g:502:9: FUNCTIONS ARGUMENTS
{
FUNCTIONS99=(Token)match(input,FUNCTIONS,FOLLOW_FUNCTIONS_in_singleValue1687);
stream_FUNCTIONS.add(FUNCTIONS99);
ARGUMENTS100=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1689);
stream_ARGUMENTS.add(ARGUMENTS100);
// AST REWRITE
// elements: FUNCTIONS, ARGUMENTS
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 502:38: -> ^( FUNCTIONS ARGUMENTS )
{
// CSS.g:502:41: ^( FUNCTIONS ARGUMENTS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_FUNCTIONS.nextNode(), root_1);
adaptor.addChild(root_1, stream_ARGUMENTS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 12 :
// CSS.g:503:9: ALPHA_VALUE
{
root_0 = (Object)adaptor.nil();
ALPHA_VALUE101=(Token)match(input,ALPHA_VALUE,FOLLOW_ALPHA_VALUE_in_singleValue1716);
ALPHA_VALUE101_tree = (Object)adaptor.create(ALPHA_VALUE101);
adaptor.addChild(root_0, ALPHA_VALUE101_tree);
}
break;
case 13 :
// CSS.g:504:9: SCALE_VALUE
{
root_0 = (Object)adaptor.nil();
SCALE_VALUE102=(Token)match(input,SCALE_VALUE,FOLLOW_SCALE_VALUE_in_singleValue1726);
SCALE_VALUE102_tree = (Object)adaptor.create(SCALE_VALUE102);
adaptor.addChild(root_0, SCALE_VALUE102_tree);
}
break;
case 14 :
// CSS.g:505:9: RECT_VALUE
{
root_0 = (Object)adaptor.nil();
RECT_VALUE103=(Token)match(input,RECT_VALUE,FOLLOW_RECT_VALUE_in_singleValue1736);
RECT_VALUE103_tree = (Object)adaptor.create(RECT_VALUE103);
adaptor.addChild(root_0, RECT_VALUE103_tree);
}
break;
case 15 :
// CSS.g:506:9: ROTATE_VALUE
{
root_0 = (Object)adaptor.nil();
ROTATE_VALUE104=(Token)match(input,ROTATE_VALUE,FOLLOW_ROTATE_VALUE_in_singleValue1746);
ROTATE_VALUE104_tree = (Object)adaptor.create(ROTATE_VALUE104);
adaptor.addChild(root_0, ROTATE_VALUE104_tree);
}
break;
case 16 :
// CSS.g:507:9: TRANSLATE3D_VALUE
{
root_0 = (Object)adaptor.nil();
TRANSLATE3D_VALUE105=(Token)match(input,TRANSLATE3D_VALUE,FOLLOW_TRANSLATE3D_VALUE_in_singleValue1756);
TRANSLATE3D_VALUE105_tree = (Object)adaptor.create(TRANSLATE3D_VALUE105);
adaptor.addChild(root_0, TRANSLATE3D_VALUE105_tree);
}
break;
case 17 :
// CSS.g:508:9: MATRIX_VALUE
{
root_0 = (Object)adaptor.nil();
MATRIX_VALUE106=(Token)match(input,MATRIX_VALUE,FOLLOW_MATRIX_VALUE_in_singleValue1766);
MATRIX_VALUE106_tree = (Object)adaptor.create(MATRIX_VALUE106);
adaptor.addChild(root_0, MATRIX_VALUE106_tree);
}
break;
case 18 :
// CSS.g:509:9: MATRIX3D_VALUE
{
root_0 = (Object)adaptor.nil();
MATRIX3D_VALUE107=(Token)match(input,MATRIX3D_VALUE,FOLLOW_MATRIX3D_VALUE_in_singleValue1776);
MATRIX3D_VALUE107_tree = (Object)adaptor.create(MATRIX3D_VALUE107);
adaptor.addChild(root_0, MATRIX3D_VALUE107_tree);
}
break;
case 19 :
// CSS.g:510:9: RGB
{
root_0 = (Object)adaptor.nil();
RGB108=(Token)match(input,RGB,FOLLOW_RGB_in_singleValue1786);
RGB108_tree = (Object)adaptor.create(RGB108);
adaptor.addChild(root_0, RGB108_tree);
}
break;
case 20 :
// CSS.g:511:9: RGBA
{
root_0 = (Object)adaptor.nil();
RGBA109=(Token)match(input,RGBA,FOLLOW_RGBA_in_singleValue1796);
RGBA109_tree = (Object)adaptor.create(RGBA109);
adaptor.addChild(root_0, RGBA109_tree);
}
break;
case 21 :
// CSS.g:512:9: STRING
{
root_0 = (Object)adaptor.nil();
STRING110=(Token)match(input,STRING,FOLLOW_STRING_in_singleValue1806);
STRING110_tree = (Object)adaptor.create(STRING110);
adaptor.addChild(root_0, STRING110_tree);
}
break;
case 22 :
// CSS.g:513:9: ID
{
root_0 = (Object)adaptor.nil();
ID111=(Token)match(input,ID,FOLLOW_ID_in_singleValue1822);
ID111_tree = (Object)adaptor.create(ID111);
adaptor.addChild(root_0, ID111_tree);
}
break;
case 23 :
// CSS.g:514:9: OPERATOR
{
root_0 = (Object)adaptor.nil();
OPERATOR112=(Token)match(input,OPERATOR,FOLLOW_OPERATOR_in_singleValue1832);
OPERATOR112_tree = (Object)adaptor.create(OPERATOR112);
adaptor.addChild(root_0, OPERATOR112_tree);
}
break;
case 24 :
// CSS.g:515:9: IMPORTANT
{
root_0 = (Object)adaptor.nil();
IMPORTANT113=(Token)match(input,IMPORTANT,FOLLOW_IMPORTANT_in_singleValue1842);
IMPORTANT113_tree = (Object)adaptor.create(IMPORTANT113);
adaptor.addChild(root_0, IMPORTANT113_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "singleValue"
public static class formatOption_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "formatOption"
// CSS.g:518:1: formatOption : FORMAT ARGUMENTS -> ^( FORMAT ARGUMENTS ) ;
public final CSSParser.formatOption_return formatOption() throws RecognitionException {
CSSParser.formatOption_return retval = new CSSParser.formatOption_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FORMAT114=null;
Token ARGUMENTS115=null;
Object FORMAT114_tree=null;
Object ARGUMENTS115_tree=null;
RewriteRuleTokenStream stream_ARGUMENTS=new RewriteRuleTokenStream(adaptor,"token ARGUMENTS");
RewriteRuleTokenStream stream_FORMAT=new RewriteRuleTokenStream(adaptor,"token FORMAT");
try {
// CSS.g:519:5: ( FORMAT ARGUMENTS -> ^( FORMAT ARGUMENTS ) )
// CSS.g:519:9: FORMAT ARGUMENTS
{
FORMAT114=(Token)match(input,FORMAT,FOLLOW_FORMAT_in_formatOption1862);
stream_FORMAT.add(FORMAT114);
ARGUMENTS115=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_formatOption1864);
stream_ARGUMENTS.add(ARGUMENTS115);
// AST REWRITE
// elements: ARGUMENTS, FORMAT
// 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.getTree():null);
root_0 = (Object)adaptor.nil();
// 519:26: -> ^( FORMAT ARGUMENTS )
{
// CSS.g:519:29: ^( FORMAT ARGUMENTS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_FORMAT.nextNode(), root_1);
adaptor.addChild(root_1, stream_ARGUMENTS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "formatOption"
public static class attributeSelector_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "attributeSelector"
// CSS.g:522:1: attributeSelector : SQUARE_OPEN attributeName ( attributeOperator )* ( attributeValue )* SQUARE_END ;
public final CSSParser.attributeSelector_return attributeSelector() throws RecognitionException {
CSSParser.attributeSelector_return retval = new CSSParser.attributeSelector_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SQUARE_OPEN116=null;
Token SQUARE_END120=null;
ParserRuleReturnScope attributeName117 =null;
ParserRuleReturnScope attributeOperator118 =null;
ParserRuleReturnScope attributeValue119 =null;
Object SQUARE_OPEN116_tree=null;
Object SQUARE_END120_tree=null;
try {
// CSS.g:523:5: ( SQUARE_OPEN attributeName ( attributeOperator )* ( attributeValue )* SQUARE_END )
// CSS.g:523:9: SQUARE_OPEN attributeName ( attributeOperator )* ( attributeValue )* SQUARE_END
{
root_0 = (Object)adaptor.nil();
SQUARE_OPEN116=(Token)match(input,SQUARE_OPEN,FOLLOW_SQUARE_OPEN_in_attributeSelector1892);
SQUARE_OPEN116_tree = (Object)adaptor.create(SQUARE_OPEN116);
adaptor.addChild(root_0, SQUARE_OPEN116_tree);
pushFollow(FOLLOW_attributeName_in_attributeSelector1894);
attributeName117=attributeName();
state._fsp--;
adaptor.addChild(root_0, attributeName117.getTree());
// CSS.g:523:35: ( attributeOperator )*
loop24:
while (true) {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==BEGINS_WITH||LA24_0==CONTAINS||(LA24_0 >= ENDS_WITH && LA24_0 <= EQUALS)||LA24_0==HREFLANG_MATCH||LA24_0==LIST_MATCH) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// CSS.g:523:35: attributeOperator
{
pushFollow(FOLLOW_attributeOperator_in_attributeSelector1896);
attributeOperator118=attributeOperator();
state._fsp--;
adaptor.addChild(root_0, attributeOperator118.getTree());
}
break;
default :
break loop24;
}
}
// CSS.g:523:54: ( attributeValue )*
loop25:
while (true) {
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==ID||LA25_0==STRING) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// CSS.g:523:54: attributeValue
{
pushFollow(FOLLOW_attributeValue_in_attributeSelector1899);
attributeValue119=attributeValue();
state._fsp--;
adaptor.addChild(root_0, attributeValue119.getTree());
}
break;
default :
break loop25;
}
}
SQUARE_END120=(Token)match(input,SQUARE_END,FOLLOW_SQUARE_END_in_attributeSelector1902);
SQUARE_END120_tree = (Object)adaptor.create(SQUARE_END120);
adaptor.addChild(root_0, SQUARE_END120_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "attributeSelector"
public static class attributeName_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "attributeName"
// CSS.g:526:1: attributeName : ID ;
public final CSSParser.attributeName_return attributeName() throws RecognitionException {
CSSParser.attributeName_return retval = new CSSParser.attributeName_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ID121=null;
Object ID121_tree=null;
try {
// CSS.g:527:5: ( ID )
// CSS.g:527:10: ID
{
root_0 = (Object)adaptor.nil();
ID121=(Token)match(input,ID,FOLLOW_ID_in_attributeName1926);
ID121_tree = (Object)adaptor.create(ID121);
adaptor.addChild(root_0, ID121_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "attributeName"
public static class attributeOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "attributeOperator"
// CSS.g:530:1: attributeOperator : ( BEGINS_WITH | ENDS_WITH | CONTAINS | LIST_MATCH | HREFLANG_MATCH | EQUALS );
public final CSSParser.attributeOperator_return attributeOperator() throws RecognitionException {
CSSParser.attributeOperator_return retval = new CSSParser.attributeOperator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set122=null;
Object set122_tree=null;
try {
// CSS.g:531:5: ( BEGINS_WITH | ENDS_WITH | CONTAINS | LIST_MATCH | HREFLANG_MATCH | EQUALS )
// CSS.g:
{
root_0 = (Object)adaptor.nil();
set122=input.LT(1);
if ( input.LA(1)==BEGINS_WITH||input.LA(1)==CONTAINS||(input.LA(1) >= ENDS_WITH && input.LA(1) <= EQUALS)||input.LA(1)==HREFLANG_MATCH||input.LA(1)==LIST_MATCH ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set122));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "attributeOperator"
public static class attributeValue_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "attributeValue"
// CSS.g:539:1: attributeValue : ( STRING | ID );
public final CSSParser.attributeValue_return attributeValue() throws RecognitionException {
CSSParser.attributeValue_return retval = new CSSParser.attributeValue_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set123=null;
Object set123_tree=null;
try {
// CSS.g:540:5: ( STRING | ID )
// CSS.g:
{
root_0 = (Object)adaptor.nil();
set123=input.LT(1);
if ( input.LA(1)==ID||input.LA(1)==STRING ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set123));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "attributeValue"
// Delegated rules
public static final BitSet FOLLOW_namespaceStatement_in_stylesheet149 = new BitSet(new long[]{0x01000004818207C0L,0x0000000000000300L});
public static final BitSet FOLLOW_fontFace_in_stylesheet153 = new BitSet(new long[]{0x01000004818207C0L,0x0000000000000300L});
public static final BitSet FOLLOW_keyframes_in_stylesheet157 = new BitSet(new long[]{0x01000004818207C0L,0x0000000000000300L});
public static final BitSet FOLLOW_mediaQuery_in_stylesheet161 = new BitSet(new long[]{0x01000004818207C0L,0x0000000000000300L});
public static final BitSet FOLLOW_ruleset_in_stylesheet165 = new BitSet(new long[]{0x01000004818207C0L,0x0000000000000300L});
public static final BitSet FOLLOW_EOF_in_stylesheet170 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_NAMESPACE_in_namespaceStatement191 = new BitSet(new long[]{0x0000000400000000L,0x0000000000000400L});
public static final BitSet FOLLOW_ID_in_namespaceStatement193 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_STRING_in_namespaceStatement196 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_SEMI_COLONS_in_namespaceStatement198 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_KEYFRAMES_in_keyframes241 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_ID_in_keyframes243 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_BLOCK_OPEN_in_keyframes245 = new BitSet(new long[]{0x0100000481821000L,0x0000000000000300L});
public static final BitSet FOLLOW_ruleset_in_keyframes247 = new BitSet(new long[]{0x0100000481821000L,0x0000000000000300L});
public static final BitSet FOLLOW_BLOCK_END_in_keyframes250 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_WEBKIT_KEYFRAMES_in_keyframes276 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_ID_in_keyframes278 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_BLOCK_OPEN_in_keyframes280 = new BitSet(new long[]{0x0100000481821000L,0x0000000000000300L});
public static final BitSet FOLLOW_ruleset_in_keyframes282 = new BitSet(new long[]{0x0100000481821000L,0x0000000000000300L});
public static final BitSet FOLLOW_BLOCK_END_in_keyframes285 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_MEDIA_in_mediaQuery324 = new BitSet(new long[]{0x0400000400040020L});
public static final BitSet FOLLOW_medium_in_mediaQuery326 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_BLOCK_OPEN_in_mediaQuery328 = new BitSet(new long[]{0x0100000481821000L,0x0000000000000300L});
public static final BitSet FOLLOW_ruleset_in_mediaQuery330 = new BitSet(new long[]{0x0100000481821000L,0x0000000000000300L});
public static final BitSet FOLLOW_BLOCK_END_in_mediaQuery333 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mediumCondition_in_medium373 = new BitSet(new long[]{0x0400000400040022L,0x0000000000020000L});
public static final BitSet FOLLOW_81_in_medium416 = new BitSet(new long[]{0x0400000400040020L});
public static final BitSet FOLLOW_mediumCondition_in_medium431 = new BitSet(new long[]{0x0400000400040022L,0x0000000000020000L});
public static final BitSet FOLLOW_mediumCondition_in_medium447 = new BitSet(new long[]{0x0400000400040022L,0x0000000000020000L});
public static final BitSet FOLLOW_ID_in_mediumCondition498 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ONLY_in_mediumCondition508 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_ID_in_mediumCondition510 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ARGUMENTS_in_mediumCondition524 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_mediumCondition534 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_FONT_FACE_in_fontFace563 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_declarationsBlock_in_fontFace565 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_selectorGroup_in_ruleset596 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_declarationsBlock_in_ruleset598 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compoundSelector_in_selectorGroup632 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_COMMA_in_selectorGroup636 = new BitSet(new long[]{0x0100000481820000L,0x0000000000000300L});
public static final BitSet FOLLOW_compoundSelector_in_selectorGroup638 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_simpleSelectorFraction_in_compoundSelector703 = new BitSet(new long[]{0x4100000481828002L,0x0000000000000300L});
public static final BitSet FOLLOW_PRECEDED_in_compoundSelector707 = new BitSet(new long[]{0x0100000481820002L,0x0000000000000300L});
public static final BitSet FOLLOW_CHILD_in_compoundSelector711 = new BitSet(new long[]{0x0100000481820002L,0x0000000000000300L});
public static final BitSet FOLLOW_condition_in_simpleSelectorFraction784 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_element_in_simpleSelectorFraction795 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_condition821 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_ID_in_condition824 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HASH_WORD_in_condition836 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_condition849 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_NOT_in_condition852 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_condition854 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_condition867 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_ID_in_condition870 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_COLON_in_condition883 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_ID_in_condition886 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeSelector_in_condition899 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_element933 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_PIPE_in_element935 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_ID_in_element938 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NUMBER_WITH_PERCENT_in_element948 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_element970 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_element990 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BLOCK_OPEN_in_declarationsBlock1019 = new BitSet(new long[]{0x0000000400201000L,0x0000000000000040L});
public static final BitSet FOLLOW_SEMI_COLONS_in_declarationsBlock1047 = new BitSet(new long[]{0x0000000400200000L});
public static final BitSet FOLLOW_declaration_in_declarationsBlock1065 = new BitSet(new long[]{0x0000000000001000L,0x0000000000000040L});
public static final BitSet FOLLOW_SEMI_COLONS_in_declarationsBlock1099 = new BitSet(new long[]{0x0000000400200000L});
public static final BitSet FOLLOW_declaration_in_declarationsBlock1118 = new BitSet(new long[]{0x0000000000001000L,0x0000000000000040L});
public static final BitSet FOLLOW_SEMI_COLONS_in_declarationsBlock1148 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BLOCK_END_in_declarationsBlock1171 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_declaration1211 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_COLON_in_declaration1213 = new BitSet(new long[]{0x8B1C000CC2014010L,0x000000000000E42FL});
public static final BitSet FOLLOW_value_in_declaration1215 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DASHED_ID_in_declaration1235 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_COLON_in_declaration1237 = new BitSet(new long[]{0x8B1C000CC2014010L,0x000000000000E42FL});
public static final BitSet FOLLOW_value_in_declaration1239 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_multiValue_in_value1285 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_COMMA_in_value1289 = new BitSet(new long[]{0x8B1C000CC2014010L,0x000000000000E42FL});
public static final BitSet FOLLOW_multiValue_in_value1291 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_singleValue_in_multiValue1372 = new BitSet(new long[]{0x8B1C000CC2014012L,0x000000000000E42FL});
public static final BitSet FOLLOW_singleValue_in_multiValue1376 = new BitSet(new long[]{0x8B1C000CC2014012L,0x000000000000E42FL});
public static final BitSet FOLLOW_NUMBER_WITH_PERCENT_in_singleValue1446 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NUMBER_WITH_UNIT_in_singleValue1456 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HASH_WORD_in_singleValue1466 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_REFERENCE_in_singleValue1476 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1478 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PROPERTY_REFERENCE_in_singleValue1508 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1510 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EMBED_in_singleValue1540 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1542 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_URL_in_singleValue1572 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1574 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_formatOption_in_singleValue1576 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_LOCAL_in_singleValue1600 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1602 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CALC_in_singleValue1629 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1631 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_in_singleValue1658 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1660 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTIONS_in_singleValue1687 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALPHA_VALUE_in_singleValue1716 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SCALE_VALUE_in_singleValue1726 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECT_VALUE_in_singleValue1736 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROTATE_VALUE_in_singleValue1746 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRANSLATE3D_VALUE_in_singleValue1756 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MATRIX_VALUE_in_singleValue1766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MATRIX3D_VALUE_in_singleValue1776 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RGB_in_singleValue1786 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RGBA_in_singleValue1796 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_singleValue1806 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_singleValue1822 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OPERATOR_in_singleValue1832 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMPORTANT_in_singleValue1842 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FORMAT_in_formatOption1862 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_formatOption1864 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SQUARE_OPEN_in_attributeSelector1892 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_attributeName_in_attributeSelector1894 = new BitSet(new long[]{0x000200060C100800L,0x0000000000000480L});
public static final BitSet FOLLOW_attributeOperator_in_attributeSelector1896 = new BitSet(new long[]{0x000200060C100800L,0x0000000000000480L});
public static final BitSet FOLLOW_attributeValue_in_attributeSelector1899 = new BitSet(new long[]{0x0000000400000000L,0x0000000000000480L});
public static final BitSet FOLLOW_SQUARE_END_in_attributeSelector1902 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_attributeName1926 = new BitSet(new long[]{0x0000000000000002L});
}