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.6.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.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", "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", "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",
"WS", "'and'"
};
public static final int EOF=-1;
public static final int T__77=77;
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 DIGIT=21;
public static final int DOT=22;
public static final int DOUBLE_COLON=23;
public static final int EMBED=24;
public static final int ENDS_WITH=25;
public static final int EQUALS=26;
public static final int ESCAPED_HEX=27;
public static final int FORMAT=28;
public static final int FUNCTIONS=29;
public static final int HASH_WORD=30;
public static final int HEX_DIGIT=31;
public static final int HREFLANG_MATCH=32;
public static final int ID=33;
public static final int IMPORTANT=34;
public static final int I_ARRAY=35;
public static final int I_CHILD_SELECTOR=36;
public static final int I_DECL=37;
public static final int I_MEDIUM_CONDITIONS=38;
public static final int I_MULTIVALUE=39;
public static final int I_PRECEDED_SELECTOR=40;
public static final int I_RULE=41;
public static final int I_RULES=42;
public static final int I_SELECTOR=43;
public static final int I_SELECTOR_GROUP=44;
public static final int I_SIBLING_SELECTOR=45;
public static final int I_SIMPLE_SELECTOR=46;
public static final int LETTER=47;
public static final int LIST_MATCH=48;
public static final int LOCAL=49;
public static final int NOT=50;
public static final int NULL=51;
public static final int NUMBER=52;
public static final int NUMBER_WITH_PERCENT=53;
public static final int NUMBER_WITH_UNIT=54;
public static final int ONLY=55;
public static final int OPERATOR=56;
public static final int PERCENT=57;
public static final int PIPE=58;
public static final int PRECEDED=59;
public static final int PROPERTY_REFERENCE=60;
public static final int RECT_VALUE=61;
public static final int RGB=62;
public static final int RGBA=63;
public static final int ROTATE_VALUE=64;
public static final int SCALE=65;
public static final int SCALE_VALUE=66;
public static final int SEMI_COLONS=67;
public static final int SQUARE_END=68;
public static final int SQUARE_OPEN=69;
public static final int STAR=70;
public static final int STRING=71;
public static final int STRING_QUOTE=72;
public static final int TILDE=73;
public static final int TRANSLATE3D_VALUE=74;
public static final int URL=75;
public static final int WS=76;
// 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);
final int lastType = lastToken.getType();
if (lastType == CHILD)
{
return 1;
}
if (lastType == PRECEDED)
{
return 2;
}
if (lastType == TILDE)
{
return 3;
}
if (lastToken != null && 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;
}
return -1;
}
public static class stylesheet_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "stylesheet"
// CSS.g:180:1: stylesheet : ( namespaceStatement | fontFace | keyframes | mediaQuery | ruleset )* ;
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;
ParserRuleReturnScope namespaceStatement1 =null;
ParserRuleReturnScope fontFace2 =null;
ParserRuleReturnScope keyframes3 =null;
ParserRuleReturnScope mediaQuery4 =null;
ParserRuleReturnScope ruleset5 =null;
try {
// CSS.g:181:5: ( ( namespaceStatement | fontFace | keyframes | mediaQuery | ruleset )* )
// CSS.g:181:9: ( namespaceStatement | fontFace | keyframes | mediaQuery | ruleset )*
{
root_0 = (Object)adaptor.nil();
// CSS.g:181: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:181:11: namespaceStatement
{
pushFollow(FOLLOW_namespaceStatement_in_stylesheet149);
namespaceStatement1=namespaceStatement();
state._fsp--;
adaptor.addChild(root_0, namespaceStatement1.getTree());
}
break;
case 2 :
// CSS.g:181:32: fontFace
{
pushFollow(FOLLOW_fontFace_in_stylesheet153);
fontFace2=fontFace();
state._fsp--;
adaptor.addChild(root_0, fontFace2.getTree());
}
break;
case 3 :
// CSS.g:181:43: keyframes
{
pushFollow(FOLLOW_keyframes_in_stylesheet157);
keyframes3=keyframes();
state._fsp--;
adaptor.addChild(root_0, keyframes3.getTree());
}
break;
case 4 :
// CSS.g:181:55: mediaQuery
{
pushFollow(FOLLOW_mediaQuery_in_stylesheet161);
mediaQuery4=mediaQuery();
state._fsp--;
adaptor.addChild(root_0, mediaQuery4.getTree());
}
break;
case 5 :
// CSS.g:181:68: ruleset
{
pushFollow(FOLLOW_ruleset_in_stylesheet165);
ruleset5=ruleset();
state._fsp--;
adaptor.addChild(root_0, ruleset5.getTree());
}
break;
default :
break loop1;
}
}
}
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:193: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_NAMESPACE6=null;
Token ID7=null;
Token STRING8=null;
Token SEMI_COLONS9=null;
Object AT_NAMESPACE6_tree=null;
Object ID7_tree=null;
Object STRING8_tree=null;
Object SEMI_COLONS9_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:194:5: ( AT_NAMESPACE ( ID )? STRING SEMI_COLONS -> ^( AT_NAMESPACE ( ID )? STRING ) )
// CSS.g:194:9: AT_NAMESPACE ( ID )? STRING SEMI_COLONS
{
AT_NAMESPACE6=(Token)match(input,AT_NAMESPACE,FOLLOW_AT_NAMESPACE_in_namespaceStatement189);
stream_AT_NAMESPACE.add(AT_NAMESPACE6);
// CSS.g:194:22: ( ID )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==ID) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// CSS.g:194:22: ID
{
ID7=(Token)match(input,ID,FOLLOW_ID_in_namespaceStatement191);
stream_ID.add(ID7);
}
break;
}
STRING8=(Token)match(input,STRING,FOLLOW_STRING_in_namespaceStatement194);
stream_STRING.add(STRING8);
SEMI_COLONS9=(Token)match(input,SEMI_COLONS,FOLLOW_SEMI_COLONS_in_namespaceStatement196);
stream_SEMI_COLONS.add(SEMI_COLONS9);
// AST REWRITE
// elements: ID, STRING, AT_NAMESPACE
// 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();
// 195:6: -> ^( AT_NAMESPACE ( ID )? STRING )
{
// CSS.g:195:9: ^( AT_NAMESPACE ( ID )? STRING )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_AT_NAMESPACE.nextNode(), root_1);
// CSS.g:195: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:206: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_KEYFRAMES10=null;
Token ID11=null;
Token BLOCK_OPEN12=null;
Token BLOCK_END14=null;
Token AT_WEBKIT_KEYFRAMES15=null;
Token ID16=null;
Token BLOCK_OPEN17=null;
Token BLOCK_END19=null;
ParserRuleReturnScope ruleset13 =null;
ParserRuleReturnScope ruleset18 =null;
Object AT_KEYFRAMES10_tree=null;
Object ID11_tree=null;
Object BLOCK_OPEN12_tree=null;
Object BLOCK_END14_tree=null;
Object AT_WEBKIT_KEYFRAMES15_tree=null;
Object ID16_tree=null;
Object BLOCK_OPEN17_tree=null;
Object BLOCK_END19_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:207: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:207:9: AT_KEYFRAMES ID BLOCK_OPEN ( ruleset )* BLOCK_END
{
AT_KEYFRAMES10=(Token)match(input,AT_KEYFRAMES,FOLLOW_AT_KEYFRAMES_in_keyframes239);
stream_AT_KEYFRAMES.add(AT_KEYFRAMES10);
ID11=(Token)match(input,ID,FOLLOW_ID_in_keyframes241);
stream_ID.add(ID11);
BLOCK_OPEN12=(Token)match(input,BLOCK_OPEN,FOLLOW_BLOCK_OPEN_in_keyframes243);
stream_BLOCK_OPEN.add(BLOCK_OPEN12);
// CSS.g:207: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:207:36: ruleset
{
pushFollow(FOLLOW_ruleset_in_keyframes245);
ruleset13=ruleset();
state._fsp--;
stream_ruleset.add(ruleset13.getTree());
}
break;
default :
break loop3;
}
}
BLOCK_END14=(Token)match(input,BLOCK_END,FOLLOW_BLOCK_END_in_keyframes248);
stream_BLOCK_END.add(BLOCK_END14);
// AST REWRITE
// elements: AT_KEYFRAMES, ruleset, 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();
// 208:6: -> ^( AT_KEYFRAMES ID ( ruleset )* )
{
// CSS.g:208: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:208: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:209:9: AT_WEBKIT_KEYFRAMES ID BLOCK_OPEN ( ruleset )* BLOCK_END
{
AT_WEBKIT_KEYFRAMES15=(Token)match(input,AT_WEBKIT_KEYFRAMES,FOLLOW_AT_WEBKIT_KEYFRAMES_in_keyframes274);
stream_AT_WEBKIT_KEYFRAMES.add(AT_WEBKIT_KEYFRAMES15);
ID16=(Token)match(input,ID,FOLLOW_ID_in_keyframes276);
stream_ID.add(ID16);
BLOCK_OPEN17=(Token)match(input,BLOCK_OPEN,FOLLOW_BLOCK_OPEN_in_keyframes278);
stream_BLOCK_OPEN.add(BLOCK_OPEN17);
// CSS.g:209: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:209:43: ruleset
{
pushFollow(FOLLOW_ruleset_in_keyframes280);
ruleset18=ruleset();
state._fsp--;
stream_ruleset.add(ruleset18.getTree());
}
break;
default :
break loop4;
}
}
BLOCK_END19=(Token)match(input,BLOCK_END,FOLLOW_BLOCK_END_in_keyframes283);
stream_BLOCK_END.add(BLOCK_END19);
// AST REWRITE
// elements: ruleset, AT_WEBKIT_KEYFRAMES, 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();
// 210:6: -> ^( AT_WEBKIT_KEYFRAMES ID ( ruleset )* )
{
// CSS.g:210: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:210: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:221: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_MEDIA20=null;
Token BLOCK_OPEN22=null;
Token BLOCK_END24=null;
ParserRuleReturnScope medium21 =null;
ParserRuleReturnScope ruleset23 =null;
Object AT_MEDIA20_tree=null;
Object BLOCK_OPEN22_tree=null;
Object BLOCK_END24_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:222:5: ( AT_MEDIA medium BLOCK_OPEN ( ruleset )* BLOCK_END -> ^( AT_MEDIA medium ( ruleset )* ) )
// CSS.g:222:9: AT_MEDIA medium BLOCK_OPEN ( ruleset )* BLOCK_END
{
AT_MEDIA20=(Token)match(input,AT_MEDIA,FOLLOW_AT_MEDIA_in_mediaQuery322);
stream_AT_MEDIA.add(AT_MEDIA20);
pushFollow(FOLLOW_medium_in_mediaQuery324);
medium21=medium();
state._fsp--;
stream_medium.add(medium21.getTree());
BLOCK_OPEN22=(Token)match(input,BLOCK_OPEN,FOLLOW_BLOCK_OPEN_in_mediaQuery326);
stream_BLOCK_OPEN.add(BLOCK_OPEN22);
// CSS.g:222: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:222:36: ruleset
{
pushFollow(FOLLOW_ruleset_in_mediaQuery328);
ruleset23=ruleset();
state._fsp--;
stream_ruleset.add(ruleset23.getTree());
}
break;
default :
break loop6;
}
}
BLOCK_END24=(Token)match(input,BLOCK_END,FOLLOW_BLOCK_END_in_mediaQuery331);
stream_BLOCK_END.add(BLOCK_END24);
// 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();
// 223:6: -> ^( AT_MEDIA medium ( ruleset )* )
{
// CSS.g:223: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:223: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:230: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_literal26=null;
ParserRuleReturnScope mediumCondition25 =null;
ParserRuleReturnScope mediumCondition27 =null;
ParserRuleReturnScope mediumCondition28 =null;
Object string_literal26_tree=null;
RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77");
RewriteRuleSubtreeStream stream_mediumCondition=new RewriteRuleSubtreeStream(adaptor,"rule mediumCondition");
try {
// CSS.g:231:5: ( mediumCondition ( 'and' mediumCondition | mediumCondition )* -> ^( I_MEDIUM_CONDITIONS ( mediumCondition )* ) )
// CSS.g:231:9: mediumCondition ( 'and' mediumCondition | mediumCondition )*
{
pushFollow(FOLLOW_mediumCondition_in_medium371);
mediumCondition25=mediumCondition();
state._fsp--;
stream_mediumCondition.add(mediumCondition25.getTree());
// CSS.g:232:9: ( 'and' mediumCondition | mediumCondition )*
loop7:
while (true) {
int alt7=3;
int LA7_0 = input.LA(1);
if ( (LA7_0==77) ) {
alt7=1;
}
else if ( (LA7_0==ARGUMENTS||LA7_0==COMMA||LA7_0==ID||LA7_0==ONLY) ) {
alt7=2;
}
switch (alt7) {
case 1 :
// CSS.g:234:13: 'and' mediumCondition
{
string_literal26=(Token)match(input,77,FOLLOW_77_in_medium414);
stream_77.add(string_literal26);
pushFollow(FOLLOW_mediumCondition_in_medium429);
mediumCondition27=mediumCondition();
state._fsp--;
stream_mediumCondition.add(mediumCondition27.getTree());
}
break;
case 2 :
// CSS.g:236:15: mediumCondition
{
pushFollow(FOLLOW_mediumCondition_in_medium445);
mediumCondition28=mediumCondition();
state._fsp--;
stream_mediumCondition.add(mediumCondition28.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();
// 238:9: -> ^( I_MEDIUM_CONDITIONS ( mediumCondition )* )
{
// CSS.g:238: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:238: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:245: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 ID29=null;
Token ONLY30=null;
Token ID31=null;
Token ARGUMENTS32=null;
Token COMMA33=null;
Object ID29_tree=null;
Object ONLY30_tree=null;
Object ID31_tree=null;
Object ARGUMENTS32_tree=null;
Object COMMA33_tree=null;
try {
// CSS.g:246: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:246:9: ID
{
root_0 = (Object)adaptor.nil();
ID29=(Token)match(input,ID,FOLLOW_ID_in_mediumCondition496);
ID29_tree = (Object)adaptor.create(ID29);
adaptor.addChild(root_0, ID29_tree);
}
break;
case 2 :
// CSS.g:247:9: ONLY ID
{
root_0 = (Object)adaptor.nil();
ONLY30=(Token)match(input,ONLY,FOLLOW_ONLY_in_mediumCondition506);
ONLY30_tree = (Object)adaptor.create(ONLY30);
adaptor.addChild(root_0, ONLY30_tree);
ID31=(Token)match(input,ID,FOLLOW_ID_in_mediumCondition508);
ID31_tree = (Object)adaptor.create(ID31);
adaptor.addChild(root_0, ID31_tree);
}
break;
case 3 :
// CSS.g:248:9: ARGUMENTS
{
root_0 = (Object)adaptor.nil();
ARGUMENTS32=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_mediumCondition522);
ARGUMENTS32_tree = (Object)adaptor.create(ARGUMENTS32);
adaptor.addChild(root_0, ARGUMENTS32_tree);
}
break;
case 4 :
// CSS.g:249:9: COMMA
{
root_0 = (Object)adaptor.nil();
COMMA33=(Token)match(input,COMMA,FOLLOW_COMMA_in_mediumCondition532);
COMMA33_tree = (Object)adaptor.create(COMMA33);
adaptor.addChild(root_0, COMMA33_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:263: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_FACE34=null;
ParserRuleReturnScope declarationsBlock35 =null;
Object AT_FONT_FACE34_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:264:5: ( AT_FONT_FACE declarationsBlock -> ^( AT_FONT_FACE declarationsBlock ) )
// CSS.g:264:9: AT_FONT_FACE declarationsBlock
{
AT_FONT_FACE34=(Token)match(input,AT_FONT_FACE,FOLLOW_AT_FONT_FACE_in_fontFace561);
stream_AT_FONT_FACE.add(AT_FONT_FACE34);
pushFollow(FOLLOW_declarationsBlock_in_fontFace563);
declarationsBlock35=declarationsBlock();
state._fsp--;
stream_declarationsBlock.add(declarationsBlock35.getTree());
// AST REWRITE
// elements: declarationsBlock, AT_FONT_FACE
// 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();
// 264:40: -> ^( AT_FONT_FACE declarationsBlock )
{
// CSS.g:264: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:270: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 selectorGroup36 =null;
ParserRuleReturnScope declarationsBlock37 =null;
RewriteRuleSubtreeStream stream_selectorGroup=new RewriteRuleSubtreeStream(adaptor,"rule selectorGroup");
RewriteRuleSubtreeStream stream_declarationsBlock=new RewriteRuleSubtreeStream(adaptor,"rule declarationsBlock");
try {
// CSS.g:271:5: ( selectorGroup declarationsBlock -> ^( I_RULE selectorGroup declarationsBlock ) )
// CSS.g:271:9: selectorGroup declarationsBlock
{
pushFollow(FOLLOW_selectorGroup_in_ruleset594);
selectorGroup36=selectorGroup();
state._fsp--;
stream_selectorGroup.add(selectorGroup36.getTree());
pushFollow(FOLLOW_declarationsBlock_in_ruleset596);
declarationsBlock37=declarationsBlock();
state._fsp--;
stream_declarationsBlock.add(declarationsBlock37.getTree());
// AST REWRITE
// elements: declarationsBlock, selectorGroup
// 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();
// 272:9: -> ^( I_RULE selectorGroup declarationsBlock )
{
// CSS.g:272: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:278: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 COMMA39=null;
ParserRuleReturnScope compoundSelector38 =null;
ParserRuleReturnScope compoundSelector40 =null;
Object COMMA39_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_compoundSelector=new RewriteRuleSubtreeStream(adaptor,"rule compoundSelector");
try {
// CSS.g:279:2: ( compoundSelector ( COMMA compoundSelector )* -> ^( I_SELECTOR_GROUP ( compoundSelector )+ ) )
// CSS.g:279:4: compoundSelector ( COMMA compoundSelector )*
{
pushFollow(FOLLOW_compoundSelector_in_selectorGroup630);
compoundSelector38=compoundSelector();
state._fsp--;
stream_compoundSelector.add(compoundSelector38.getTree());
// CSS.g:279: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:279:23: COMMA compoundSelector
{
COMMA39=(Token)match(input,COMMA,FOLLOW_COMMA_in_selectorGroup634);
stream_COMMA.add(COMMA39);
pushFollow(FOLLOW_compoundSelector_in_selectorGroup636);
compoundSelector40=compoundSelector();
state._fsp--;
stream_compoundSelector.add(compoundSelector40.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();
// 280:9: -> ^( I_SELECTOR_GROUP ( compoundSelector )+ )
{
// CSS.g:280: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:291: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_literal41=null;
Token char_literal42=null;
ParserRuleReturnScope l =null;
Object char_literal41_tree=null;
Object char_literal42_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:304:5: ( (l= simpleSelectorFraction ( '+' | '>' )? )+ -> ^( I_SELECTOR ) )
// CSS.g:304:9: (l= simpleSelectorFraction ( '+' | '>' )? )+
{
// CSS.g:304: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:304:13: l= simpleSelectorFraction ( '+' | '>' )?
{
pushFollow(FOLLOW_simpleSelectorFraction_in_compoundSelector701);
l=simpleSelectorFraction();
state._fsp--;
stream_simpleSelectorFraction.add(l.getTree());
// CSS.g:304: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:304:40: '+'
{
char_literal41=(Token)match(input,PRECEDED,FOLLOW_PRECEDED_in_compoundSelector705);
stream_PRECEDED.add(char_literal41);
}
break;
case 2 :
// CSS.g:304:46: '>'
{
char_literal42=(Token)match(input,CHILD,FOLLOW_CHILD_in_compoundSelector709);
stream_CHILD.add(char_literal42);
}
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();
// 336:9: -> ^( I_SELECTOR )
{
// CSS.g:336: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:363: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 condition43 =null;
ParserRuleReturnScope element44 =null;
try {
// CSS.g:364: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:364:9: condition
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_condition_in_simpleSelectorFraction782);
condition43=condition();
state._fsp--;
adaptor.addChild(root_0, condition43.getTree());
}
break;
case 2 :
// CSS.g:365:9: element
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_element_in_simpleSelectorFraction793);
element44=element();
state._fsp--;
adaptor.addChild(root_0, element44.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:372: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 DOT45=null;
Token ID46=null;
Token HASH_WORD47=null;
Token COLON48=null;
Token NOT49=null;
Token ARGUMENTS50=null;
Token COLON51=null;
Token ID52=null;
Token DOUBLE_COLON53=null;
Token ID54=null;
ParserRuleReturnScope attributeSelector55 =null;
Object DOT45_tree=null;
Object ID46_tree=null;
Object HASH_WORD47_tree=null;
Object COLON48_tree=null;
Object NOT49_tree=null;
Object ARGUMENTS50_tree=null;
Object COLON51_tree=null;
Object ID52_tree=null;
Object DOUBLE_COLON53_tree=null;
Object ID54_tree=null;
try {
// CSS.g:373:5: ( ( DOT ^ ID | HASH_WORD | COLON ^ NOT ARGUMENTS | COLON ^ ID | DOUBLE_COLON ^ ID | attributeSelector ) )
// CSS.g:373:9: ( DOT ^ ID | HASH_WORD | COLON ^ NOT ARGUMENTS | COLON ^ ID | DOUBLE_COLON ^ ID | attributeSelector )
{
root_0 = (Object)adaptor.nil();
// CSS.g:373: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:373:11: DOT ^ ID
{
DOT45=(Token)match(input,DOT,FOLLOW_DOT_in_condition819);
DOT45_tree = (Object)adaptor.create(DOT45);
root_0 = (Object)adaptor.becomeRoot(DOT45_tree, root_0);
ID46=(Token)match(input,ID,FOLLOW_ID_in_condition822);
ID46_tree = (Object)adaptor.create(ID46);
adaptor.addChild(root_0, ID46_tree);
}
break;
case 2 :
// CSS.g:374:11: HASH_WORD
{
HASH_WORD47=(Token)match(input,HASH_WORD,FOLLOW_HASH_WORD_in_condition834);
HASH_WORD47_tree = (Object)adaptor.create(HASH_WORD47);
adaptor.addChild(root_0, HASH_WORD47_tree);
}
break;
case 3 :
// CSS.g:375:11: COLON ^ NOT ARGUMENTS
{
COLON48=(Token)match(input,COLON,FOLLOW_COLON_in_condition847);
COLON48_tree = (Object)adaptor.create(COLON48);
root_0 = (Object)adaptor.becomeRoot(COLON48_tree, root_0);
NOT49=(Token)match(input,NOT,FOLLOW_NOT_in_condition850);
NOT49_tree = (Object)adaptor.create(NOT49);
adaptor.addChild(root_0, NOT49_tree);
ARGUMENTS50=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_condition852);
ARGUMENTS50_tree = (Object)adaptor.create(ARGUMENTS50);
adaptor.addChild(root_0, ARGUMENTS50_tree);
}
break;
case 4 :
// CSS.g:376:11: COLON ^ ID
{
COLON51=(Token)match(input,COLON,FOLLOW_COLON_in_condition865);
COLON51_tree = (Object)adaptor.create(COLON51);
root_0 = (Object)adaptor.becomeRoot(COLON51_tree, root_0);
ID52=(Token)match(input,ID,FOLLOW_ID_in_condition868);
ID52_tree = (Object)adaptor.create(ID52);
adaptor.addChild(root_0, ID52_tree);
}
break;
case 5 :
// CSS.g:377:11: DOUBLE_COLON ^ ID
{
DOUBLE_COLON53=(Token)match(input,DOUBLE_COLON,FOLLOW_DOUBLE_COLON_in_condition881);
DOUBLE_COLON53_tree = (Object)adaptor.create(DOUBLE_COLON53);
root_0 = (Object)adaptor.becomeRoot(DOUBLE_COLON53_tree, root_0);
ID54=(Token)match(input,ID,FOLLOW_ID_in_condition884);
ID54_tree = (Object)adaptor.create(ID54);
adaptor.addChild(root_0, ID54_tree);
}
break;
case 6 :
// CSS.g:378:11: attributeSelector
{
pushFollow(FOLLOW_attributeSelector_in_condition897);
attributeSelector55=attributeSelector();
state._fsp--;
adaptor.addChild(root_0, attributeSelector55.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:387: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 ID56=null;
Token PIPE57=null;
Token ID58=null;
Token NUMBER_WITH_PERCENT59=null;
Token ID60=null;
Token STAR61=null;
Object ID56_tree=null;
Object PIPE57_tree=null;
Object ID58_tree=null;
Object NUMBER_WITH_PERCENT59_tree=null;
Object ID60_tree=null;
Object STAR61_tree=null;
try {
// CSS.g:388: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:388:9: ID PIPE ^ ID
{
root_0 = (Object)adaptor.nil();
ID56=(Token)match(input,ID,FOLLOW_ID_in_element931);
ID56_tree = (Object)adaptor.create(ID56);
adaptor.addChild(root_0, ID56_tree);
PIPE57=(Token)match(input,PIPE,FOLLOW_PIPE_in_element933);
PIPE57_tree = (Object)adaptor.create(PIPE57);
root_0 = (Object)adaptor.becomeRoot(PIPE57_tree, root_0);
ID58=(Token)match(input,ID,FOLLOW_ID_in_element936);
ID58_tree = (Object)adaptor.create(ID58);
adaptor.addChild(root_0, ID58_tree);
}
break;
case 2 :
// CSS.g:389:9: NUMBER_WITH_PERCENT
{
root_0 = (Object)adaptor.nil();
NUMBER_WITH_PERCENT59=(Token)match(input,NUMBER_WITH_PERCENT,FOLLOW_NUMBER_WITH_PERCENT_in_element946);
NUMBER_WITH_PERCENT59_tree = (Object)adaptor.create(NUMBER_WITH_PERCENT59);
adaptor.addChild(root_0, NUMBER_WITH_PERCENT59_tree);
}
break;
case 3 :
// CSS.g:390:9: ID
{
root_0 = (Object)adaptor.nil();
ID60=(Token)match(input,ID,FOLLOW_ID_in_element968);
ID60_tree = (Object)adaptor.create(ID60);
adaptor.addChild(root_0, ID60_tree);
}
break;
case 4 :
// CSS.g:391:9: STAR
{
root_0 = (Object)adaptor.nil();
STAR61=(Token)match(input,STAR,FOLLOW_STAR_in_element988);
STAR61_tree = (Object)adaptor.create(STAR61);
adaptor.addChild(root_0, STAR61_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:399: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_OPEN62=null;
Token SEMI_COLONS63=null;
Token SEMI_COLONS65=null;
Token SEMI_COLONS67=null;
Token BLOCK_END68=null;
ParserRuleReturnScope declaration64 =null;
ParserRuleReturnScope declaration66 =null;
Object BLOCK_OPEN62_tree=null;
Object SEMI_COLONS63_tree=null;
Object SEMI_COLONS65_tree=null;
Object SEMI_COLONS67_tree=null;
Object BLOCK_END68_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:400:5: ( BLOCK_OPEN ( ( SEMI_COLONS )? declaration ( SEMI_COLONS declaration )* ( SEMI_COLONS )? )? BLOCK_END -> ^( I_DECL ( declaration )* ) )
// CSS.g:400:9: BLOCK_OPEN ( ( SEMI_COLONS )? declaration ( SEMI_COLONS declaration )* ( SEMI_COLONS )? )? BLOCK_END
{
BLOCK_OPEN62=(Token)match(input,BLOCK_OPEN,FOLLOW_BLOCK_OPEN_in_declarationsBlock1017);
stream_BLOCK_OPEN.add(BLOCK_OPEN62);
// CSS.g:401:9: ( ( SEMI_COLONS )? declaration ( SEMI_COLONS declaration )* ( SEMI_COLONS )? )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==ID||LA18_0==SEMI_COLONS) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// CSS.g:402:13: ( SEMI_COLONS )? declaration ( SEMI_COLONS declaration )* ( SEMI_COLONS )?
{
// CSS.g:402: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:402:13: SEMI_COLONS
{
SEMI_COLONS63=(Token)match(input,SEMI_COLONS,FOLLOW_SEMI_COLONS_in_declarationsBlock1045);
stream_SEMI_COLONS.add(SEMI_COLONS63);
}
break;
}
pushFollow(FOLLOW_declaration_in_declarationsBlock1063);
declaration64=declaration();
state._fsp--;
stream_declaration.add(declaration64.getTree());
// CSS.g:404: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==ID) ) {
alt16=1;
}
}
switch (alt16) {
case 1 :
// CSS.g:405:17: SEMI_COLONS declaration
{
SEMI_COLONS65=(Token)match(input,SEMI_COLONS,FOLLOW_SEMI_COLONS_in_declarationsBlock1097);
stream_SEMI_COLONS.add(SEMI_COLONS65);
pushFollow(FOLLOW_declaration_in_declarationsBlock1116);
declaration66=declaration();
state._fsp--;
stream_declaration.add(declaration66.getTree());
}
break;
default :
break loop16;
}
}
// CSS.g:408: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:408:13: SEMI_COLONS
{
SEMI_COLONS67=(Token)match(input,SEMI_COLONS,FOLLOW_SEMI_COLONS_in_declarationsBlock1146);
stream_SEMI_COLONS.add(SEMI_COLONS67);
}
break;
}
}
break;
}
BLOCK_END68=(Token)match(input,BLOCK_END,FOLLOW_BLOCK_END_in_declarationsBlock1169);
stream_BLOCK_END.add(BLOCK_END68);
// 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();
// 411:9: -> ^( I_DECL ( declaration )* )
{
// CSS.g:411: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:411: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:419:1: declaration : ID COLON value -> ^( COLON 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 ID69=null;
Token COLON70=null;
ParserRuleReturnScope value71 =null;
Object ID69_tree=null;
Object COLON70_tree=null;
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:420:5: ( ID COLON value -> ^( COLON ID value ) )
// CSS.g:420:9: ID COLON value
{
ID69=(Token)match(input,ID,FOLLOW_ID_in_declaration1209);
stream_ID.add(ID69);
COLON70=(Token)match(input,COLON,FOLLOW_COLON_in_declaration1211);
stream_COLON.add(COLON70);
pushFollow(FOLLOW_value_in_declaration1213);
value71=value();
state._fsp--;
stream_value.add(value71.getTree());
// AST REWRITE
// elements: COLON, ID, 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();
// 420:24: -> ^( COLON ID value )
{
// CSS.g:420: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;
}
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:436: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 COMMA73=null;
ParserRuleReturnScope multiValue72 =null;
ParserRuleReturnScope multiValue74 =null;
Object COMMA73_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_multiValue=new RewriteRuleSubtreeStream(adaptor,"rule multiValue");
int count = 1;
try {
// CSS.g:438:5: ( multiValue ( COMMA multiValue )* -> {count > 1}? ^( I_ARRAY ( multiValue )+ ) -> multiValue )
// CSS.g:438:9: multiValue ( COMMA multiValue )*
{
pushFollow(FOLLOW_multiValue_in_value1259);
multiValue72=multiValue();
state._fsp--;
stream_multiValue.add(multiValue72.getTree());
// CSS.g:438:20: ( COMMA multiValue )*
loop19:
while (true) {
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==COMMA) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// CSS.g:438:22: COMMA multiValue
{
COMMA73=(Token)match(input,COMMA,FOLLOW_COMMA_in_value1263);
stream_COMMA.add(COMMA73);
pushFollow(FOLLOW_multiValue_in_value1265);
multiValue74=multiValue();
state._fsp--;
stream_multiValue.add(multiValue74.getTree());
count++;
}
break;
default :
break loop19;
}
}
// 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();
// 439:9: -> {count > 1}? ^( I_ARRAY ( multiValue )+ )
if (count > 1) {
// CSS.g:439: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 // 440: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:452: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 singleValue75 =null;
ParserRuleReturnScope singleValue76 =null;
RewriteRuleSubtreeStream stream_singleValue=new RewriteRuleSubtreeStream(adaptor,"rule singleValue");
int count = 1;
try {
// CSS.g:454:5: ( singleValue ( singleValue )* -> {count > 1}? ^( I_MULTIVALUE ( singleValue )+ ) -> singleValue )
// CSS.g:454:9: singleValue ( singleValue )*
{
pushFollow(FOLLOW_singleValue_in_multiValue1346);
singleValue75=singleValue();
state._fsp--;
stream_singleValue.add(singleValue75.getTree());
// CSS.g:454:21: ( singleValue )*
loop20:
while (true) {
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==ALPHA_VALUE||LA20_0==CALC||LA20_0==CLASS_REFERENCE||LA20_0==EMBED||(LA20_0 >= FUNCTIONS && LA20_0 <= HASH_WORD)||(LA20_0 >= ID && LA20_0 <= IMPORTANT)||LA20_0==LOCAL||(LA20_0 >= NUMBER_WITH_PERCENT && LA20_0 <= NUMBER_WITH_UNIT)||LA20_0==OPERATOR||(LA20_0 >= PROPERTY_REFERENCE && LA20_0 <= ROTATE_VALUE)||LA20_0==SCALE_VALUE||LA20_0==STRING||(LA20_0 >= TRANSLATE3D_VALUE && LA20_0 <= URL)) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// CSS.g:454:23: singleValue
{
pushFollow(FOLLOW_singleValue_in_multiValue1350);
singleValue76=singleValue();
state._fsp--;
stream_singleValue.add(singleValue76.getTree());
count++;
}
break;
default :
break loop20;
}
}
// 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();
// 455:9: -> {count > 1}? ^( I_MULTIVALUE ( singleValue )+ )
if (count > 1) {
// CSS.g:455: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 // 456: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:474: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 ) | FUNCTIONS ARGUMENTS -> ^( FUNCTIONS ARGUMENTS ) | ALPHA_VALUE | SCALE_VALUE | RECT_VALUE | ROTATE_VALUE | TRANSLATE3D_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_PERCENT77=null;
Token NUMBER_WITH_UNIT78=null;
Token HASH_WORD79=null;
Token CLASS_REFERENCE80=null;
Token ARGUMENTS81=null;
Token PROPERTY_REFERENCE82=null;
Token ARGUMENTS83=null;
Token EMBED84=null;
Token ARGUMENTS85=null;
Token URL86=null;
Token ARGUMENTS87=null;
Token LOCAL89=null;
Token ARGUMENTS90=null;
Token CALC91=null;
Token ARGUMENTS92=null;
Token FUNCTIONS93=null;
Token ARGUMENTS94=null;
Token ALPHA_VALUE95=null;
Token SCALE_VALUE96=null;
Token RECT_VALUE97=null;
Token ROTATE_VALUE98=null;
Token TRANSLATE3D_VALUE99=null;
Token RGB100=null;
Token RGBA101=null;
Token STRING102=null;
Token ID103=null;
Token OPERATOR104=null;
Token IMPORTANT105=null;
ParserRuleReturnScope formatOption88 =null;
Object NUMBER_WITH_PERCENT77_tree=null;
Object NUMBER_WITH_UNIT78_tree=null;
Object HASH_WORD79_tree=null;
Object CLASS_REFERENCE80_tree=null;
Object ARGUMENTS81_tree=null;
Object PROPERTY_REFERENCE82_tree=null;
Object ARGUMENTS83_tree=null;
Object EMBED84_tree=null;
Object ARGUMENTS85_tree=null;
Object URL86_tree=null;
Object ARGUMENTS87_tree=null;
Object LOCAL89_tree=null;
Object ARGUMENTS90_tree=null;
Object CALC91_tree=null;
Object ARGUMENTS92_tree=null;
Object FUNCTIONS93_tree=null;
Object ARGUMENTS94_tree=null;
Object ALPHA_VALUE95_tree=null;
Object SCALE_VALUE96_tree=null;
Object RECT_VALUE97_tree=null;
Object ROTATE_VALUE98_tree=null;
Object TRANSLATE3D_VALUE99_tree=null;
Object RGB100_tree=null;
Object RGBA101_tree=null;
Object STRING102_tree=null;
Object ID103_tree=null;
Object OPERATOR104_tree=null;
Object IMPORTANT105_tree=null;
RewriteRuleTokenStream stream_ARGUMENTS=new RewriteRuleTokenStream(adaptor,"token ARGUMENTS");
RewriteRuleTokenStream stream_PROPERTY_REFERENCE=new RewriteRuleTokenStream(adaptor,"token PROPERTY_REFERENCE");
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:475: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 ) | FUNCTIONS ARGUMENTS -> ^( FUNCTIONS ARGUMENTS ) | ALPHA_VALUE | SCALE_VALUE | RECT_VALUE | ROTATE_VALUE | TRANSLATE3D_VALUE | RGB | RGBA | STRING | ID | OPERATOR | IMPORTANT )
int alt22=21;
switch ( input.LA(1) ) {
case NUMBER_WITH_PERCENT:
{
alt22=1;
}
break;
case NUMBER_WITH_UNIT:
{
alt22=2;
}
break;
case HASH_WORD:
{
alt22=3;
}
break;
case CLASS_REFERENCE:
{
alt22=4;
}
break;
case PROPERTY_REFERENCE:
{
alt22=5;
}
break;
case EMBED:
{
alt22=6;
}
break;
case URL:
{
alt22=7;
}
break;
case LOCAL:
{
alt22=8;
}
break;
case CALC:
{
alt22=9;
}
break;
case FUNCTIONS:
{
alt22=10;
}
break;
case ALPHA_VALUE:
{
alt22=11;
}
break;
case SCALE_VALUE:
{
alt22=12;
}
break;
case RECT_VALUE:
{
alt22=13;
}
break;
case ROTATE_VALUE:
{
alt22=14;
}
break;
case TRANSLATE3D_VALUE:
{
alt22=15;
}
break;
case RGB:
{
alt22=16;
}
break;
case RGBA:
{
alt22=17;
}
break;
case STRING:
{
alt22=18;
}
break;
case ID:
{
alt22=19;
}
break;
case OPERATOR:
{
alt22=20;
}
break;
case IMPORTANT:
{
alt22=21;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 22, 0, input);
throw nvae;
}
switch (alt22) {
case 1 :
// CSS.g:475:9: NUMBER_WITH_PERCENT
{
root_0 = (Object)adaptor.nil();
NUMBER_WITH_PERCENT77=(Token)match(input,NUMBER_WITH_PERCENT,FOLLOW_NUMBER_WITH_PERCENT_in_singleValue1420);
NUMBER_WITH_PERCENT77_tree = (Object)adaptor.create(NUMBER_WITH_PERCENT77);
adaptor.addChild(root_0, NUMBER_WITH_PERCENT77_tree);
}
break;
case 2 :
// CSS.g:476:9: NUMBER_WITH_UNIT
{
root_0 = (Object)adaptor.nil();
NUMBER_WITH_UNIT78=(Token)match(input,NUMBER_WITH_UNIT,FOLLOW_NUMBER_WITH_UNIT_in_singleValue1430);
NUMBER_WITH_UNIT78_tree = (Object)adaptor.create(NUMBER_WITH_UNIT78);
adaptor.addChild(root_0, NUMBER_WITH_UNIT78_tree);
}
break;
case 3 :
// CSS.g:477:9: HASH_WORD
{
root_0 = (Object)adaptor.nil();
HASH_WORD79=(Token)match(input,HASH_WORD,FOLLOW_HASH_WORD_in_singleValue1440);
HASH_WORD79_tree = (Object)adaptor.create(HASH_WORD79);
adaptor.addChild(root_0, HASH_WORD79_tree);
}
break;
case 4 :
// CSS.g:478:9: CLASS_REFERENCE ARGUMENTS
{
CLASS_REFERENCE80=(Token)match(input,CLASS_REFERENCE,FOLLOW_CLASS_REFERENCE_in_singleValue1450);
stream_CLASS_REFERENCE.add(CLASS_REFERENCE80);
ARGUMENTS81=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1452);
stream_ARGUMENTS.add(ARGUMENTS81);
// 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();
// 479:13: -> ^( CLASS_REFERENCE ARGUMENTS )
{
// CSS.g:479: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:480:9: PROPERTY_REFERENCE ARGUMENTS
{
PROPERTY_REFERENCE82=(Token)match(input,PROPERTY_REFERENCE,FOLLOW_PROPERTY_REFERENCE_in_singleValue1482);
stream_PROPERTY_REFERENCE.add(PROPERTY_REFERENCE82);
ARGUMENTS83=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1484);
stream_ARGUMENTS.add(ARGUMENTS83);
// 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();
// 481:13: -> ^( PROPERTY_REFERENCE ARGUMENTS )
{
// CSS.g:481: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:482:9: EMBED ARGUMENTS
{
EMBED84=(Token)match(input,EMBED,FOLLOW_EMBED_in_singleValue1514);
stream_EMBED.add(EMBED84);
ARGUMENTS85=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1516);
stream_ARGUMENTS.add(ARGUMENTS85);
// AST REWRITE
// elements: EMBED, 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();
// 483:13: -> ^( EMBED ARGUMENTS )
{
// CSS.g:483: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:484:9: URL ARGUMENTS ( formatOption )*
{
URL86=(Token)match(input,URL,FOLLOW_URL_in_singleValue1546);
stream_URL.add(URL86);
ARGUMENTS87=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1548);
stream_ARGUMENTS.add(ARGUMENTS87);
// CSS.g:484:23: ( formatOption )*
loop21:
while (true) {
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==FORMAT) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// CSS.g:484:23: formatOption
{
pushFollow(FOLLOW_formatOption_in_singleValue1550);
formatOption88=formatOption();
state._fsp--;
stream_formatOption.add(formatOption88.getTree());
}
break;
default :
break loop21;
}
}
// AST REWRITE
// elements: formatOption, ARGUMENTS, URL
// 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();
// 484:39: -> ^( URL ARGUMENTS ( formatOption )* )
{
// CSS.g:484: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:484: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:485:9: LOCAL ARGUMENTS
{
LOCAL89=(Token)match(input,LOCAL,FOLLOW_LOCAL_in_singleValue1574);
stream_LOCAL.add(LOCAL89);
ARGUMENTS90=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1576);
stream_ARGUMENTS.add(ARGUMENTS90);
// 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();
// 485:34: -> ^( LOCAL ARGUMENTS )
{
// CSS.g:485: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:486:9: CALC ARGUMENTS
{
CALC91=(Token)match(input,CALC,FOLLOW_CALC_in_singleValue1603);
stream_CALC.add(CALC91);
ARGUMENTS92=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1605);
stream_ARGUMENTS.add(ARGUMENTS92);
// AST REWRITE
// elements: ARGUMENTS, CALC
// 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();
// 486:33: -> ^( CALC ARGUMENTS )
{
// CSS.g:486: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:487:9: FUNCTIONS ARGUMENTS
{
FUNCTIONS93=(Token)match(input,FUNCTIONS,FOLLOW_FUNCTIONS_in_singleValue1632);
stream_FUNCTIONS.add(FUNCTIONS93);
ARGUMENTS94=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_singleValue1634);
stream_ARGUMENTS.add(ARGUMENTS94);
// AST REWRITE
// elements: ARGUMENTS, FUNCTIONS
// 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();
// 487:38: -> ^( FUNCTIONS ARGUMENTS )
{
// CSS.g:487: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 11 :
// CSS.g:488:9: ALPHA_VALUE
{
root_0 = (Object)adaptor.nil();
ALPHA_VALUE95=(Token)match(input,ALPHA_VALUE,FOLLOW_ALPHA_VALUE_in_singleValue1661);
ALPHA_VALUE95_tree = (Object)adaptor.create(ALPHA_VALUE95);
adaptor.addChild(root_0, ALPHA_VALUE95_tree);
}
break;
case 12 :
// CSS.g:489:9: SCALE_VALUE
{
root_0 = (Object)adaptor.nil();
SCALE_VALUE96=(Token)match(input,SCALE_VALUE,FOLLOW_SCALE_VALUE_in_singleValue1671);
SCALE_VALUE96_tree = (Object)adaptor.create(SCALE_VALUE96);
adaptor.addChild(root_0, SCALE_VALUE96_tree);
}
break;
case 13 :
// CSS.g:490:9: RECT_VALUE
{
root_0 = (Object)adaptor.nil();
RECT_VALUE97=(Token)match(input,RECT_VALUE,FOLLOW_RECT_VALUE_in_singleValue1681);
RECT_VALUE97_tree = (Object)adaptor.create(RECT_VALUE97);
adaptor.addChild(root_0, RECT_VALUE97_tree);
}
break;
case 14 :
// CSS.g:491:9: ROTATE_VALUE
{
root_0 = (Object)adaptor.nil();
ROTATE_VALUE98=(Token)match(input,ROTATE_VALUE,FOLLOW_ROTATE_VALUE_in_singleValue1691);
ROTATE_VALUE98_tree = (Object)adaptor.create(ROTATE_VALUE98);
adaptor.addChild(root_0, ROTATE_VALUE98_tree);
}
break;
case 15 :
// CSS.g:492:9: TRANSLATE3D_VALUE
{
root_0 = (Object)adaptor.nil();
TRANSLATE3D_VALUE99=(Token)match(input,TRANSLATE3D_VALUE,FOLLOW_TRANSLATE3D_VALUE_in_singleValue1701);
TRANSLATE3D_VALUE99_tree = (Object)adaptor.create(TRANSLATE3D_VALUE99);
adaptor.addChild(root_0, TRANSLATE3D_VALUE99_tree);
}
break;
case 16 :
// CSS.g:493:9: RGB
{
root_0 = (Object)adaptor.nil();
RGB100=(Token)match(input,RGB,FOLLOW_RGB_in_singleValue1711);
RGB100_tree = (Object)adaptor.create(RGB100);
adaptor.addChild(root_0, RGB100_tree);
}
break;
case 17 :
// CSS.g:494:9: RGBA
{
root_0 = (Object)adaptor.nil();
RGBA101=(Token)match(input,RGBA,FOLLOW_RGBA_in_singleValue1721);
RGBA101_tree = (Object)adaptor.create(RGBA101);
adaptor.addChild(root_0, RGBA101_tree);
}
break;
case 18 :
// CSS.g:495:9: STRING
{
root_0 = (Object)adaptor.nil();
STRING102=(Token)match(input,STRING,FOLLOW_STRING_in_singleValue1731);
STRING102_tree = (Object)adaptor.create(STRING102);
adaptor.addChild(root_0, STRING102_tree);
}
break;
case 19 :
// CSS.g:496:9: ID
{
root_0 = (Object)adaptor.nil();
ID103=(Token)match(input,ID,FOLLOW_ID_in_singleValue1747);
ID103_tree = (Object)adaptor.create(ID103);
adaptor.addChild(root_0, ID103_tree);
}
break;
case 20 :
// CSS.g:497:9: OPERATOR
{
root_0 = (Object)adaptor.nil();
OPERATOR104=(Token)match(input,OPERATOR,FOLLOW_OPERATOR_in_singleValue1757);
OPERATOR104_tree = (Object)adaptor.create(OPERATOR104);
adaptor.addChild(root_0, OPERATOR104_tree);
}
break;
case 21 :
// CSS.g:498:9: IMPORTANT
{
root_0 = (Object)adaptor.nil();
IMPORTANT105=(Token)match(input,IMPORTANT,FOLLOW_IMPORTANT_in_singleValue1767);
IMPORTANT105_tree = (Object)adaptor.create(IMPORTANT105);
adaptor.addChild(root_0, IMPORTANT105_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:501: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 FORMAT106=null;
Token ARGUMENTS107=null;
Object FORMAT106_tree=null;
Object ARGUMENTS107_tree=null;
RewriteRuleTokenStream stream_ARGUMENTS=new RewriteRuleTokenStream(adaptor,"token ARGUMENTS");
RewriteRuleTokenStream stream_FORMAT=new RewriteRuleTokenStream(adaptor,"token FORMAT");
try {
// CSS.g:502:5: ( FORMAT ARGUMENTS -> ^( FORMAT ARGUMENTS ) )
// CSS.g:502:9: FORMAT ARGUMENTS
{
FORMAT106=(Token)match(input,FORMAT,FOLLOW_FORMAT_in_formatOption1787);
stream_FORMAT.add(FORMAT106);
ARGUMENTS107=(Token)match(input,ARGUMENTS,FOLLOW_ARGUMENTS_in_formatOption1789);
stream_ARGUMENTS.add(ARGUMENTS107);
// AST REWRITE
// elements: FORMAT, 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:26: -> ^( FORMAT ARGUMENTS )
{
// CSS.g:502: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:505: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_OPEN108=null;
Token SQUARE_END112=null;
ParserRuleReturnScope attributeName109 =null;
ParserRuleReturnScope attributeOperator110 =null;
ParserRuleReturnScope attributeValue111 =null;
Object SQUARE_OPEN108_tree=null;
Object SQUARE_END112_tree=null;
try {
// CSS.g:506:5: ( SQUARE_OPEN attributeName ( attributeOperator )* ( attributeValue )* SQUARE_END )
// CSS.g:506:9: SQUARE_OPEN attributeName ( attributeOperator )* ( attributeValue )* SQUARE_END
{
root_0 = (Object)adaptor.nil();
SQUARE_OPEN108=(Token)match(input,SQUARE_OPEN,FOLLOW_SQUARE_OPEN_in_attributeSelector1817);
SQUARE_OPEN108_tree = (Object)adaptor.create(SQUARE_OPEN108);
adaptor.addChild(root_0, SQUARE_OPEN108_tree);
pushFollow(FOLLOW_attributeName_in_attributeSelector1819);
attributeName109=attributeName();
state._fsp--;
adaptor.addChild(root_0, attributeName109.getTree());
// CSS.g:506:35: ( attributeOperator )*
loop23:
while (true) {
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==BEGINS_WITH||LA23_0==CONTAINS||(LA23_0 >= ENDS_WITH && LA23_0 <= EQUALS)||LA23_0==HREFLANG_MATCH||LA23_0==LIST_MATCH) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// CSS.g:506:35: attributeOperator
{
pushFollow(FOLLOW_attributeOperator_in_attributeSelector1821);
attributeOperator110=attributeOperator();
state._fsp--;
adaptor.addChild(root_0, attributeOperator110.getTree());
}
break;
default :
break loop23;
}
}
// CSS.g:506:54: ( attributeValue )*
loop24:
while (true) {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==STRING) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// CSS.g:506:54: attributeValue
{
pushFollow(FOLLOW_attributeValue_in_attributeSelector1824);
attributeValue111=attributeValue();
state._fsp--;
adaptor.addChild(root_0, attributeValue111.getTree());
}
break;
default :
break loop24;
}
}
SQUARE_END112=(Token)match(input,SQUARE_END,FOLLOW_SQUARE_END_in_attributeSelector1827);
SQUARE_END112_tree = (Object)adaptor.create(SQUARE_END112);
adaptor.addChild(root_0, SQUARE_END112_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:509: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 ID113=null;
Object ID113_tree=null;
try {
// CSS.g:510:5: ( ID )
// CSS.g:510:10: ID
{
root_0 = (Object)adaptor.nil();
ID113=(Token)match(input,ID,FOLLOW_ID_in_attributeName1851);
ID113_tree = (Object)adaptor.create(ID113);
adaptor.addChild(root_0, ID113_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:513: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 set114=null;
Object set114_tree=null;
try {
// CSS.g:514:5: ( BEGINS_WITH | ENDS_WITH | CONTAINS | LIST_MATCH | HREFLANG_MATCH | EQUALS )
// CSS.g:
{
root_0 = (Object)adaptor.nil();
set114=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(set114));
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:522:1: attributeValue : STRING ;
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 STRING115=null;
Object STRING115_tree=null;
try {
// CSS.g:523:5: ( STRING )
// CSS.g:523:10: STRING
{
root_0 = (Object)adaptor.nil();
STRING115=(Token)match(input,STRING,FOLLOW_STRING_in_attributeValue1954);
STRING115_tree = (Object)adaptor.create(STRING115);
adaptor.addChild(root_0, STRING115_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 "attributeValue"
// Delegated rules
public static final BitSet FOLLOW_namespaceStatement_in_stylesheet149 = new BitSet(new long[]{0x0020000240C207C2L,0x0000000000000060L});
public static final BitSet FOLLOW_fontFace_in_stylesheet153 = new BitSet(new long[]{0x0020000240C207C2L,0x0000000000000060L});
public static final BitSet FOLLOW_keyframes_in_stylesheet157 = new BitSet(new long[]{0x0020000240C207C2L,0x0000000000000060L});
public static final BitSet FOLLOW_mediaQuery_in_stylesheet161 = new BitSet(new long[]{0x0020000240C207C2L,0x0000000000000060L});
public static final BitSet FOLLOW_ruleset_in_stylesheet165 = new BitSet(new long[]{0x0020000240C207C2L,0x0000000000000060L});
public static final BitSet FOLLOW_AT_NAMESPACE_in_namespaceStatement189 = new BitSet(new long[]{0x0000000200000000L,0x0000000000000080L});
public static final BitSet FOLLOW_ID_in_namespaceStatement191 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_STRING_in_namespaceStatement194 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_SEMI_COLONS_in_namespaceStatement196 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_KEYFRAMES_in_keyframes239 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ID_in_keyframes241 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_BLOCK_OPEN_in_keyframes243 = new BitSet(new long[]{0x0020000240C21000L,0x0000000000000060L});
public static final BitSet FOLLOW_ruleset_in_keyframes245 = new BitSet(new long[]{0x0020000240C21000L,0x0000000000000060L});
public static final BitSet FOLLOW_BLOCK_END_in_keyframes248 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_WEBKIT_KEYFRAMES_in_keyframes274 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ID_in_keyframes276 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_BLOCK_OPEN_in_keyframes278 = new BitSet(new long[]{0x0020000240C21000L,0x0000000000000060L});
public static final BitSet FOLLOW_ruleset_in_keyframes280 = new BitSet(new long[]{0x0020000240C21000L,0x0000000000000060L});
public static final BitSet FOLLOW_BLOCK_END_in_keyframes283 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_MEDIA_in_mediaQuery322 = new BitSet(new long[]{0x0080000200040020L});
public static final BitSet FOLLOW_medium_in_mediaQuery324 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_BLOCK_OPEN_in_mediaQuery326 = new BitSet(new long[]{0x0020000240C21000L,0x0000000000000060L});
public static final BitSet FOLLOW_ruleset_in_mediaQuery328 = new BitSet(new long[]{0x0020000240C21000L,0x0000000000000060L});
public static final BitSet FOLLOW_BLOCK_END_in_mediaQuery331 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mediumCondition_in_medium371 = new BitSet(new long[]{0x0080000200040022L,0x0000000000002000L});
public static final BitSet FOLLOW_77_in_medium414 = new BitSet(new long[]{0x0080000200040020L});
public static final BitSet FOLLOW_mediumCondition_in_medium429 = new BitSet(new long[]{0x0080000200040022L,0x0000000000002000L});
public static final BitSet FOLLOW_mediumCondition_in_medium445 = new BitSet(new long[]{0x0080000200040022L,0x0000000000002000L});
public static final BitSet FOLLOW_ID_in_mediumCondition496 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ONLY_in_mediumCondition506 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ID_in_mediumCondition508 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ARGUMENTS_in_mediumCondition522 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_mediumCondition532 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_FONT_FACE_in_fontFace561 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_declarationsBlock_in_fontFace563 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_selectorGroup_in_ruleset594 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_declarationsBlock_in_ruleset596 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compoundSelector_in_selectorGroup630 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_COMMA_in_selectorGroup634 = new BitSet(new long[]{0x0020000240C20000L,0x0000000000000060L});
public static final BitSet FOLLOW_compoundSelector_in_selectorGroup636 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_simpleSelectorFraction_in_compoundSelector701 = new BitSet(new long[]{0x0820000240C28002L,0x0000000000000060L});
public static final BitSet FOLLOW_PRECEDED_in_compoundSelector705 = new BitSet(new long[]{0x0020000240C20002L,0x0000000000000060L});
public static final BitSet FOLLOW_CHILD_in_compoundSelector709 = new BitSet(new long[]{0x0020000240C20002L,0x0000000000000060L});
public static final BitSet FOLLOW_condition_in_simpleSelectorFraction782 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_element_in_simpleSelectorFraction793 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_condition819 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ID_in_condition822 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HASH_WORD_in_condition834 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_condition847 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_NOT_in_condition850 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_condition852 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_condition865 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ID_in_condition868 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_COLON_in_condition881 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ID_in_condition884 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeSelector_in_condition897 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_element931 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_PIPE_in_element933 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ID_in_element936 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NUMBER_WITH_PERCENT_in_element946 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_element968 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_element988 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BLOCK_OPEN_in_declarationsBlock1017 = new BitSet(new long[]{0x0000000200001000L,0x0000000000000008L});
public static final BitSet FOLLOW_SEMI_COLONS_in_declarationsBlock1045 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_declaration_in_declarationsBlock1063 = new BitSet(new long[]{0x0000000000001000L,0x0000000000000008L});
public static final BitSet FOLLOW_SEMI_COLONS_in_declarationsBlock1097 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_declaration_in_declarationsBlock1116 = new BitSet(new long[]{0x0000000000001000L,0x0000000000000008L});
public static final BitSet FOLLOW_SEMI_COLONS_in_declarationsBlock1146 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BLOCK_END_in_declarationsBlock1169 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_declaration1209 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_COLON_in_declaration1211 = new BitSet(new long[]{0xF162000661014010L,0x0000000000000C85L});
public static final BitSet FOLLOW_value_in_declaration1213 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_multiValue_in_value1259 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_COMMA_in_value1263 = new BitSet(new long[]{0xF162000661014010L,0x0000000000000C85L});
public static final BitSet FOLLOW_multiValue_in_value1265 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_singleValue_in_multiValue1346 = new BitSet(new long[]{0xF162000661014012L,0x0000000000000C85L});
public static final BitSet FOLLOW_singleValue_in_multiValue1350 = new BitSet(new long[]{0xF162000661014012L,0x0000000000000C85L});
public static final BitSet FOLLOW_NUMBER_WITH_PERCENT_in_singleValue1420 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NUMBER_WITH_UNIT_in_singleValue1430 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HASH_WORD_in_singleValue1440 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_REFERENCE_in_singleValue1450 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PROPERTY_REFERENCE_in_singleValue1482 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1484 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EMBED_in_singleValue1514 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1516 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_URL_in_singleValue1546 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1548 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_formatOption_in_singleValue1550 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_LOCAL_in_singleValue1574 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1576 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CALC_in_singleValue1603 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1605 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTIONS_in_singleValue1632 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_singleValue1634 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALPHA_VALUE_in_singleValue1661 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SCALE_VALUE_in_singleValue1671 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECT_VALUE_in_singleValue1681 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROTATE_VALUE_in_singleValue1691 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRANSLATE3D_VALUE_in_singleValue1701 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RGB_in_singleValue1711 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RGBA_in_singleValue1721 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_singleValue1731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_singleValue1747 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OPERATOR_in_singleValue1757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMPORTANT_in_singleValue1767 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FORMAT_in_formatOption1787 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_ARGUMENTS_in_formatOption1789 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SQUARE_OPEN_in_attributeSelector1817 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_attributeName_in_attributeSelector1819 = new BitSet(new long[]{0x0001000106100800L,0x0000000000000090L});
public static final BitSet FOLLOW_attributeOperator_in_attributeSelector1821 = new BitSet(new long[]{0x0001000106100800L,0x0000000000000090L});
public static final BitSet FOLLOW_attributeValue_in_attributeSelector1824 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000090L});
public static final BitSet FOLLOW_SQUARE_END_in_attributeSelector1827 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_attributeName1851 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_attributeValue1954 = new BitSet(new long[]{0x0000000000000002L});
}