blob: 9cacf941e9249c5a24e8125f8680618f69cec1c1 [file] [log] [blame]
options {
LOOKAHEAD = 1;
CHOICE_AMBIGUITY_CHECK = 2;
OTHER_AMBIGUITY_CHECK = 1;
STATIC = false;
DEBUG_PARSER = false;
DEBUG_LOOKAHEAD = false;
DEBUG_TOKEN_MANAGER = false;
ERROR_REPORTING = true;
JAVA_UNICODE_ESCAPE = false;
UNICODE_INPUT = false;
IGNORE_CASE = false;
USER_TOKEN_MANAGER = false;
USER_CHAR_STREAM = false;
BUILD_PARSER = true;
BUILD_TOKEN_MANAGER = true;
SANITY_CHECK = true;
BUILD_NODE_FILES = true;
FORCE_LA_CHECK = false;
MULTI = true;
NODE_DEFAULT_VOID = true;
VISITOR = true;
NODE_CLASS= "ASTNode";
}
PARSER_BEGIN(ClasspathExpressionParser)
package org.apache.river.container.classloading;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
public class ClasspathExpressionParser {
private static final Logger log=
Logger.getLogger(ClasspathExpressionParser.class.getName());
}
PARSER_END(ClasspathExpressionParser)
/* WHITE SPACE */
SKIP :
{
" "
| "\t"
| "\n"
| "\r"
| "\f"
| <"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")>
| <"/*" (~["*"])* "*" ("*" | ~["*","/"] (~["*"])* "*")* "/">}
TOKEN :
{
< SYMBOL:
["A"-"Z", "a"-"z", "_"] (["0"-"9", "A"-"Z", "a"-"z", ".", "_", "-", "$"])*>
| < STRING_LITERAL:
("\""
( (~["\"","\\","\n","\r"])
| ("\\"
( ["n","t","b","r","f","\\","'","\""]
| ["0"-"7"] ( ["0"-"7"] )?
| ["0"-"3"] ["0"-"7"] ["0"-"7"]
)
)
)*
"\"" )
| ("\'"
( (~["'","\\","\n","\r"])
| ("\\"
( ["n","t","b","r","f","\\","'","\""]
| ["0"-"7"] ( ["0"-"7"] )?
| ["0"-"3"] ["0"-"7"] ["0"-"7"]
)
)
)*
"\'") >
{
/* Remove the leading and trailing quotes. */
image.deleteCharAt(image.length() -1);
image.deleteCharAt(0);
matchedToken.image=image.toString();
}
| < COMMA: "," >
| < COLON: ":" >
| < LPAREN: "(" >
| < RPAREN: ")" >
}
void cpExpression() #cpExpression:
{
log.finest("cpExpression()");
}
{
cpClause() ( <COLON> cpClause())*
}
void cpClause() #cpClause:
{
log.finest("cpClause()");
}
{
symbol() [ <LPAREN> filterExpression() <RPAREN>]
}
void filterExpression():
{
log.finest("filterExpression()");
}
{
filterClause() ( <COMMA> filterClause())*
}
void filterClause():
{
log.finest("filterClause()");
}
{
symbol() | stringLiteral()
}
void symbol() #symbol:
{
log.finest("symbol()");
Token t=null;
}
{
t=<SYMBOL> {
jjtThis.setValue(t.image);
}
}
void stringLiteral() #stringLiteral:
{
log.finest("stringLiteral()");
Token t=null;
}
{
t=<STRING_LITERAL> {
jjtThis.setValue(t.image);
}
}