package org.xerial.core;
/**
- * A common interfarce for error codes
+ * A common interface for error codes
*
* @author leo
*
*/
-public interface ErrorCode
-{
+public interface ErrorCode {
+
static final String EMPTY_DESCRIPTION = "";
/**
* @return
*/
public String getDescription();
+
}
* @author leo
*
*/
-public class XerialError extends RuntimeException
-{
+public class XerialError extends RuntimeException {
/**
*
*/
private final ErrorCode errorCode;
- public XerialError(ErrorCode errorCode)
- {
+ public XerialError(ErrorCode errorCode) {
super();
this.errorCode = errorCode;
}
- public XerialError(ErrorCode errorCode, String message, Throwable cause)
- {
+ public XerialError(ErrorCode errorCode, String message, Throwable cause) {
super(message, cause);
this.errorCode = errorCode;
}
- public XerialError(ErrorCode errorCode, String message)
- {
+ public XerialError(ErrorCode errorCode, String message) {
super(message);
this.errorCode = errorCode;
}
- public XerialError(ErrorCode errorCode, Throwable cause)
- {
+ public XerialError(ErrorCode errorCode, Throwable cause) {
super(cause);
this.errorCode = errorCode;
}
-
- public XerialError(XerialError cause)
- {
+
+ public XerialError(XerialError cause) {
super(cause);
this.errorCode = cause.getErrorCode();
}
-
- public XerialError(XerialException cause)
- {
+
+ public XerialError(XerialException cause) {
super(cause);
this.errorCode = cause.getErrorCode();
}
*
* @return
*/
- public ErrorCode getErrorCode()
- {
+ public ErrorCode getErrorCode() {
return errorCode;
}
@Override
- public String getMessage()
- {
+ public String getMessage() {
return ExceptionHelper.getMessage(errorCode, super.getMessage());
}
public enum XerialErrorCode implements ErrorCode {
// related to programming error
- INVALID_STATE,
- SYNTAX_ERROR,
- NOT_INITIALIZED,
- UNSUPPORTED,
- INVALID_INPUT,
- NOT_READY,
+ INVALID_STATE, SYNTAX_ERROR, NOT_INITIALIZED, UNSUPPORTED, INVALID_INPUT, INVALID_ARGUMENT, NOT_READY,
// collection
MISSING_ELEMENT,
RESOURCE_NOT_FOUND,
// I/O
- READ_ERROR,
- OUTPUT_ERROR,
- IO_EXCEPTION,
- INTERRUPTED,
+ READ_ERROR, OUTPUT_ERROR, IO_EXCEPTION, INTERRUPTED,
// option parser error
- DUPLICATE_OPTION,
- NO_OPTION,
- NO_USAGE_ANNOTATION,
- MISSING_ARGUMENT,
+ DUPLICATE_OPTION, NO_OPTION, NO_USAGE_ANNOTATION, MISSING_ARGUMENT,
// type
- MISSING_TYPE_PARAMETER,
- NOT_A_COLLECTION,
- INACCESSIBLE_METHOD,
- WRONG_DATA_TYPE,
- DECODE_ERROR,
- ENCODE_ERROR,
+ MISSING_TYPE_PARAMETER, NOT_A_COLLECTION, INACCESSIBLE_METHOD, WRONG_DATA_TYPE, DECODE_ERROR, ENCODE_ERROR,
// parse error
- INVALID_TOKEN,
- PARSE_ERROR,
+ INVALID_TOKEN, PARSE_ERROR,
// general exception
INHERITED, ;
private final String description;
- private XerialErrorCode()
- {
+ private XerialErrorCode() {
this.description = EMPTY_DESCRIPTION;
}
- private XerialErrorCode(String description)
- {
+ private XerialErrorCode(String description) {
this.description = description;
}
- public String getCodeName()
- {
+ public String getCodeName() {
return name();
}
- public String getDescription()
- {
+ public String getDescription() {
return null;
}
+ public Enum< ? > getCode() {
+ return this;
+ }
+
}
* @author leo
*
*/
-public class XerialException extends Exception
-{
+public class XerialException extends Exception {
private static final long serialVersionUID = 1L;
- private final ErrorCode errorCode;
+ private final ErrorCode errorCode;
- public XerialException(XerialException e)
- {
+ public XerialException(XerialException e) {
super(e.getErrorMessage());
this.errorCode = e.errorCode;
}
- public XerialException(ErrorCode errorCode)
- {
+ public XerialException(ErrorCode errorCode) {
super();
this.errorCode = errorCode;
}
- public XerialException(ErrorCode errorCode, String message, Throwable cause)
- {
+ public XerialException(ErrorCode errorCode, String message, Throwable cause) {
super(message, cause);
this.errorCode = errorCode;
}
- public XerialException(ErrorCode errorCode, String message)
- {
+ public XerialException(ErrorCode errorCode, String message) {
super(message);
this.errorCode = errorCode;
}
- public XerialException(ErrorCode errorCode, Throwable cause)
- {
+ public XerialException(ErrorCode errorCode, Throwable cause) {
super(cause);
this.errorCode = errorCode;
}
*
* @return
*/
- public ErrorCode getErrorCode()
- {
+ public ErrorCode getErrorCode() {
return errorCode;
}
@Override
- public String getMessage()
- {
+ public String getMessage() {
return ExceptionHelper.getMessage(errorCode, super.getMessage());
}
- private String getErrorMessage()
- {
+ private String getErrorMessage() {
return super.getMessage();
}
private final String description;
- private JSONErrorCode(String description)
- {
+ private JSONErrorCode(String description) {
this.description = description;
}
- private JSONErrorCode()
- {
+ private JSONErrorCode() {
this.description = EMPTY_DESCRIPTION;
}
- public String getCodeName()
- {
+ public String getCodeName() {
return name();
}
- public String getDescription()
- {
+ public String getDescription() {
return description;
}
+ public Enum< ? > getCode() {
+ return this;
+ }
+
}
return mapper.map(result, parser);
}
+ public static String toJSON(Object obj) {
+ return ObjectLens.toJSON(obj);
+ }
+
public static <Result> void find(Class<Result> bindingType, TreeParser parser,
ObjectHandler<Result> handler) throws XerialException {
find(bindingType, bindingType.getSimpleName(), parser, handler);
}
- public static String toJSON(Object obj) {
- return ObjectLens.toJSON(obj);
- }
-
public static <Result> void find(Class<Result> bindingType, String coreNodeName,
TreeParser parser, ObjectHandler<Result> handler) throws XerialException {
ObjectMapper mapper = ObjectMapper.getMapper(bindingType.getClass());
-
+ mapper.find(bindingType, parser, coreNodeName, handler);
}
}
}
+ public <T> void find(Class<T> targetType, TreeParser parser,
+ String coreNodeNameOfTheTargetType, ObjectHandler<T> handler) throws XerialException {
+
+ try {
+ AmoebaJoinHandler mapper = new RelationExtracter();
+
+ _logger.info(qs);
+
+ StreamAmoebaJoin aj = new StreamAmoebaJoin(qs, mapper);
+ aj.sweep(parser);
+ }
+ catch (IOException e) {
+ throw new XerialException(XerialErrorCode.IO_EXCEPTION, e);
+ }
+ catch (Exception e) {
+ throw new XerialException(XerialErrorCode.INHERITED, e);
+ }
+
+ }
+
private QuerySet buildQuery(Class< ? > targetType) {
QueryBuilder qb = new QueryBuilder();
qb.build(targetType, "root");
Default: 'default';\r
Projection: 'projection';\r
OrderBy: 'order_by';\r
+On: 'on';\r
\r
fragment SafeFirstLetter: 'A' .. 'Z' | 'a' .. 'z';\r
fragment SafeLetter: SafeFirstLetter | '0' .. '9' | '-' | '_';\r
includeItem: QName -> Mixin[$QName.text];\r
\r
fragment \r
-indexStatement: Index QName indexTarget (Comma indexTarget)*\r
+indexStatement: Index QName On indexTarget (Comma indexTarget)*\r
-> ^(Index TypeName[$QName.text] indexTarget+)\r
; \r
\r
HexDigit=24\r
Symbol=47\r
OrderBy=56\r
-T__65=65\r
Default=54\r
Argument=17\r
+On=57\r
Index=52\r
Module=5\r
Letter=23\r
Integer=30\r
Relation=51\r
Mixin=9\r
-WhiteSpace=62\r
+WhiteSpace=63\r
ClassDef=6\r
LineComment=20\r
-ModuleName=59\r
+ModuleName=60\r
Projection=55\r
BelongsTo=53\r
-SafeFirstLetter=57\r
+SafeFirstLetter=58\r
Star=43\r
Preamble=19\r
Exp=32\r
-QNameChar=63\r
+QNameChar=64\r
RParen=42\r
UnicodeChar=25\r
StringChar=27\r
LineBreak=21\r
Function=16\r
Name=7\r
-ModuleDef=61\r
+ModuleDef=62\r
LParen=41\r
String=29\r
-SafeLetter=58\r
+SafeLetter=59\r
LineBreakChar=18\r
IsArray=11\r
-QName=64\r
+QName=65\r
StringChar_s=28\r
UnsafeUnicodeChar=44\r
Double=33\r
Lt=38\r
Parent=8\r
TypeName=12\r
-WhiteSpaces=60\r
-'on'=65\r
+WhiteSpaces=61\r
+'on'=57\r
-// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 SilkSchema.g 2009-07-08 15:38:42\r
+// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 SilkSchema.g 2009-07-08 19:54:26\r
\r
/*--------------------------------------------------------------------------\r
* Copyright 2009 Taro L. Saito\r
public static final int Frac=31;\r
public static final int HexDigit=24;\r
public static final int Symbol=47;\r
- public static final int T__65=65;\r
public static final int OrderBy=56;\r
public static final int Default=54;\r
public static final int Argument=17;\r
+ public static final int On=57;\r
public static final int Index=52;\r
public static final int Module=5;\r
public static final int Letter=23;\r
public static final int Integer=30;\r
public static final int Relation=51;\r
public static final int Mixin=9;\r
- public static final int WhiteSpace=62;\r
+ public static final int WhiteSpace=63;\r
public static final int ClassDef=6;\r
public static final int LineComment=20;\r
- public static final int ModuleName=59;\r
+ public static final int ModuleName=60;\r
public static final int Projection=55;\r
public static final int BelongsTo=53;\r
- public static final int SafeFirstLetter=57;\r
+ public static final int SafeFirstLetter=58;\r
public static final int Star=43;\r
public static final int Preamble=19;\r
public static final int Exp=32;\r
- public static final int QNameChar=63;\r
+ public static final int QNameChar=64;\r
public static final int RParen=42;\r
public static final int UnicodeChar=25;\r
public static final int StringChar=27;\r
public static final int Name=7;\r
public static final int Function=16;\r
public static final int LParen=41;\r
- public static final int ModuleDef=61;\r
+ public static final int ModuleDef=62;\r
public static final int String=29;\r
- public static final int SafeLetter=58;\r
+ public static final int SafeLetter=59;\r
public static final int LineBreakChar=18;\r
public static final int IsArray=11;\r
- public static final int QName=64;\r
+ public static final int QName=65;\r
public static final int EOF=-1;\r
public static final int StringChar_s=28;\r
public static final int UnsafeUnicodeChar=44;\r
public static final int RBracket=37;\r
public static final int Parent=8;\r
public static final int TypeName=12;\r
- public static final int WhiteSpaces=60;\r
+ public static final int WhiteSpaces=61;\r
\r
\r
\r
}\r
public String getGrammarFileName() { return "SilkSchema.g"; }\r
\r
- // $ANTLR start "T__65"\r
- public final void mT__65() throws RecognitionException {\r
- try {\r
- int _type = T__65;\r
- int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // SilkSchema.g:38:7: ( 'on' )\r
- // SilkSchema.g:38:9: 'on'\r
- {\r
- match("on"); if (state.failed) return ;\r
-\r
-\r
- }\r
-\r
- state.type = _type;\r
- state.channel = _channel;\r
- }\r
- finally {\r
- }\r
- }\r
- // $ANTLR end "T__65"\r
-\r
// $ANTLR start "Preamble"\r
public final void mPreamble() throws RecognitionException {\r
try {\r
// SilkSchema.g:134:9: '\"' s= StringChar_s '\"'\r
{\r
match('\"'); if (state.failed) return ;\r
- int sStart273 = getCharIndex();\r
+ int sStart264 = getCharIndex();\r
mStringChar_s(); if (state.failed) return ;\r
- s = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, sStart273, getCharIndex()-1);\r
+ s = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, sStart264, getCharIndex()-1);\r
match('\"'); if (state.failed) return ;\r
if ( state.backtracking==0 ) {\r
setText((s!=null?s.getText():null)); \r
// SilkSchema.g:163:9: ( ':' NonWhiteSpaceChar )=> ':' s= SymbolChars\r
{\r
match(':'); if (state.failed) return ;\r
- int sStart588 = getCharIndex();\r
+ int sStart579 = getCharIndex();\r
mSymbolChars(); if (state.failed) return ;\r
- s = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, sStart588, getCharIndex()-1);\r
+ s = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, sStart579, getCharIndex()-1);\r
if ( state.backtracking==0 ) {\r
setText((s!=null?s.getText():null)); \r
}\r
}\r
// $ANTLR end "OrderBy"\r
\r
+ // $ANTLR start "On"\r
+ public final void mOn() throws RecognitionException {\r
+ try {\r
+ int _type = On;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // SilkSchema.g:174:3: ( 'on' )\r
+ // SilkSchema.g:174:5: 'on'\r
+ {\r
+ match("on"); if (state.failed) return ;\r
+\r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "On"\r
+\r
// $ANTLR start "SafeFirstLetter"\r
public final void mSafeFirstLetter() throws RecognitionException {\r
try {\r
- // SilkSchema.g:175:25: ( 'A' .. 'Z' | 'a' .. 'z' )\r
+ // SilkSchema.g:176:25: ( 'A' .. 'Z' | 'a' .. 'z' )\r
// SilkSchema.g:\r
{\r
if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {\r
// $ANTLR start "SafeLetter"\r
public final void mSafeLetter() throws RecognitionException {\r
try {\r
- // SilkSchema.g:176:20: ( SafeFirstLetter | '0' .. '9' | '-' | '_' )\r
+ // SilkSchema.g:177:20: ( SafeFirstLetter | '0' .. '9' | '-' | '_' )\r
// SilkSchema.g:\r
{\r
if ( input.LA(1)=='-'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {\r
// $ANTLR start "ModuleName"\r
public final void mModuleName() throws RecognitionException {\r
try {\r
- // SilkSchema.g:178:20: ( SafeFirstLetter ( SafeLetter )* ( '.' SafeFirstLetter ( SafeLetter )* )* )\r
- // SilkSchema.g:178:22: SafeFirstLetter ( SafeLetter )* ( '.' SafeFirstLetter ( SafeLetter )* )*\r
+ // SilkSchema.g:179:20: ( SafeFirstLetter ( SafeLetter )* ( '.' SafeFirstLetter ( SafeLetter )* )* )\r
+ // SilkSchema.g:179:22: SafeFirstLetter ( SafeLetter )* ( '.' SafeFirstLetter ( SafeLetter )* )*\r
{\r
mSafeFirstLetter(); if (state.failed) return ;\r
- // SilkSchema.g:178:38: ( SafeLetter )*\r
+ // SilkSchema.g:179:38: ( SafeLetter )*\r
loop16:\r
do {\r
int alt16=2;\r
\r
switch (alt16) {\r
case 1 :\r
- // SilkSchema.g:178:38: SafeLetter\r
+ // SilkSchema.g:179:38: SafeLetter\r
{\r
mSafeLetter(); if (state.failed) return ;\r
\r
}\r
} while (true);\r
\r
- // SilkSchema.g:178:50: ( '.' SafeFirstLetter ( SafeLetter )* )*\r
+ // SilkSchema.g:179:50: ( '.' SafeFirstLetter ( SafeLetter )* )*\r
loop18:\r
do {\r
int alt18=2;\r
\r
switch (alt18) {\r
case 1 :\r
- // SilkSchema.g:178:51: '.' SafeFirstLetter ( SafeLetter )*\r
+ // SilkSchema.g:179:51: '.' SafeFirstLetter ( SafeLetter )*\r
{\r
match('.'); if (state.failed) return ;\r
mSafeFirstLetter(); if (state.failed) return ;\r
- // SilkSchema.g:178:71: ( SafeLetter )*\r
+ // SilkSchema.g:179:71: ( SafeLetter )*\r
loop17:\r
do {\r
int alt17=2;\r
\r
switch (alt17) {\r
case 1 :\r
- // SilkSchema.g:178:71: SafeLetter\r
+ // SilkSchema.g:179:71: SafeLetter\r
{\r
mSafeLetter(); if (state.failed) return ;\r
\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
Token s=null;\r
\r
- // SilkSchema.g:179:10: ( 'module' WhiteSpaces s= ModuleName )\r
- // SilkSchema.g:179:12: 'module' WhiteSpaces s= ModuleName\r
+ // SilkSchema.g:180:10: ( 'module' WhiteSpaces s= ModuleName )\r
+ // SilkSchema.g:180:12: 'module' WhiteSpaces s= ModuleName\r
{\r
match("module"); if (state.failed) return ;\r
\r
mWhiteSpaces(); if (state.failed) return ;\r
- int sStart738 = getCharIndex();\r
+ int sStart736 = getCharIndex();\r
mModuleName(); if (state.failed) return ;\r
- s = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, sStart738, getCharIndex()-1);\r
+ s = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, sStart736, getCharIndex()-1);\r
if ( state.backtracking==0 ) {\r
setText((s!=null?s.getText():null)); \r
}\r
// $ANTLR start "QNameChar"\r
public final void mQNameChar() throws RecognitionException {\r
try {\r
- // SilkSchema.g:181:19: (~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace ) )\r
- // SilkSchema.g:181:21: ~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace )\r
+ // SilkSchema.g:182:19: (~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace ) )\r
+ // SilkSchema.g:182:21: ~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace )\r
{\r
if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001F')||input.LA(1)=='!'||input.LA(1)=='$'||input.LA(1)=='&'||input.LA(1)=='+'||(input.LA(1)>='/' && input.LA(1)<='9')||input.LA(1)==';'||input.LA(1)=='='||input.LA(1)=='?'||(input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='^' && input.LA(1)<='z')||(input.LA(1)>='~' && input.LA(1)<='\uFFFF') ) {\r
input.consume();\r
try {\r
int _type = QName;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // SilkSchema.g:182:6: ( ( QNameChar )+ ( Dot ( QNameChar )+ )* )\r
- // SilkSchema.g:182:8: ( QNameChar )+ ( Dot ( QNameChar )+ )*\r
+ // SilkSchema.g:183:6: ( ( QNameChar )+ ( Dot ( QNameChar )+ )* )\r
+ // SilkSchema.g:183:8: ( QNameChar )+ ( Dot ( QNameChar )+ )*\r
{\r
- // SilkSchema.g:182:8: ( QNameChar )+\r
+ // SilkSchema.g:183:8: ( QNameChar )+\r
int cnt19=0;\r
loop19:\r
do {\r
\r
switch (alt19) {\r
case 1 :\r
- // SilkSchema.g:182:8: QNameChar\r
+ // SilkSchema.g:183:8: QNameChar\r
{\r
mQNameChar(); if (state.failed) return ;\r
\r
cnt19++;\r
} while (true);\r
\r
- // SilkSchema.g:182:19: ( Dot ( QNameChar )+ )*\r
+ // SilkSchema.g:183:19: ( Dot ( QNameChar )+ )*\r
loop21:\r
do {\r
int alt21=2;\r
\r
switch (alt21) {\r
case 1 :\r
- // SilkSchema.g:182:20: Dot ( QNameChar )+\r
+ // SilkSchema.g:183:20: Dot ( QNameChar )+\r
{\r
mDot(); if (state.failed) return ;\r
- // SilkSchema.g:182:24: ( QNameChar )+\r
+ // SilkSchema.g:183:24: ( QNameChar )+\r
int cnt20=0;\r
loop20:\r
do {\r
\r
switch (alt20) {\r
case 1 :\r
- // SilkSchema.g:182:24: QNameChar\r
+ // SilkSchema.g:183:24: QNameChar\r
{\r
mQNameChar(); if (state.failed) return ;\r
\r
// $ANTLR start "WhiteSpace"\r
public final void mWhiteSpace() throws RecognitionException {\r
try {\r
- // SilkSchema.g:185:11: ( ' ' | '\\t' )\r
+ // SilkSchema.g:186:11: ( ' ' | '\\t' )\r
// SilkSchema.g:\r
{\r
if ( input.LA(1)=='\t'||input.LA(1)==' ' ) {\r
try {\r
int _type = WhiteSpaces;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // SilkSchema.g:187:12: ( ( WhiteSpace )+ )\r
- // SilkSchema.g:187:14: ( WhiteSpace )+\r
+ // SilkSchema.g:188:12: ( ( WhiteSpace )+ )\r
+ // SilkSchema.g:188:14: ( WhiteSpace )+\r
{\r
- // SilkSchema.g:187:14: ( WhiteSpace )+\r
+ // SilkSchema.g:188:14: ( WhiteSpace )+\r
int cnt22=0;\r
loop22:\r
do {\r
\r
switch (alt22) {\r
case 1 :\r
- // SilkSchema.g:187:14: WhiteSpace\r
+ // SilkSchema.g:188:14: WhiteSpace\r
{\r
mWhiteSpace(); if (state.failed) return ;\r
\r
// $ANTLR end "WhiteSpaces"\r
\r
public void mTokens() throws RecognitionException {\r
- // SilkSchema.g:1:8: ( T__65 | Preamble | LineComment | LineBreak | String | Integer | Double | LBrace | RBrace | LBracket | RBracket | Lt | Dot | Comma | LParen | RParen | Star | Symbol | Class | Includes | End | Relation | Index | BelongsTo | Default | Projection | OrderBy | ModuleDef | QName | WhiteSpaces )\r
+ // SilkSchema.g:1:8: ( Preamble | LineComment | LineBreak | String | Integer | Double | LBrace | RBrace | LBracket | RBracket | Lt | Dot | Comma | LParen | RParen | Star | Symbol | Class | Includes | End | Relation | Index | BelongsTo | Default | Projection | OrderBy | On | ModuleDef | QName | WhiteSpaces )\r
int alt23=30;\r
alt23 = dfa23.predict(input);\r
switch (alt23) {\r
case 1 :\r
- // SilkSchema.g:1:10: T__65\r
+ // SilkSchema.g:1:10: Preamble\r
{\r
- mT__65(); if (state.failed) return ;\r
+ mPreamble(); if (state.failed) return ;\r
\r
}\r
break;\r
case 2 :\r
- // SilkSchema.g:1:16: Preamble\r
+ // SilkSchema.g:1:19: LineComment\r
{\r
- mPreamble(); if (state.failed) return ;\r
+ mLineComment(); if (state.failed) return ;\r
\r
}\r
break;\r
case 3 :\r
- // SilkSchema.g:1:25: LineComment\r
+ // SilkSchema.g:1:31: LineBreak\r
{\r
- mLineComment(); if (state.failed) return ;\r
+ mLineBreak(); if (state.failed) return ;\r
\r
}\r
break;\r
case 4 :\r
- // SilkSchema.g:1:37: LineBreak\r
+ // SilkSchema.g:1:41: String\r
{\r
- mLineBreak(); if (state.failed) return ;\r
+ mString(); if (state.failed) return ;\r
\r
}\r
break;\r
case 5 :\r
- // SilkSchema.g:1:47: String\r
+ // SilkSchema.g:1:48: Integer\r
{\r
- mString(); if (state.failed) return ;\r
+ mInteger(); if (state.failed) return ;\r
\r
}\r
break;\r
case 6 :\r
- // SilkSchema.g:1:54: Integer\r
+ // SilkSchema.g:1:56: Double\r
{\r
- mInteger(); if (state.failed) return ;\r
+ mDouble(); if (state.failed) return ;\r
\r
}\r
break;\r
case 7 :\r
- // SilkSchema.g:1:62: Double\r
+ // SilkSchema.g:1:63: LBrace\r
{\r
- mDouble(); if (state.failed) return ;\r
+ mLBrace(); if (state.failed) return ;\r
\r
}\r
break;\r
case 8 :\r
- // SilkSchema.g:1:69: LBrace\r
+ // SilkSchema.g:1:70: RBrace\r
{\r
- mLBrace(); if (state.failed) return ;\r
+ mRBrace(); if (state.failed) return ;\r
\r
}\r
break;\r
case 9 :\r
- // SilkSchema.g:1:76: RBrace\r
+ // SilkSchema.g:1:77: LBracket\r
{\r
- mRBrace(); if (state.failed) return ;\r
+ mLBracket(); if (state.failed) return ;\r
\r
}\r
break;\r
case 10 :\r
- // SilkSchema.g:1:83: LBracket\r
+ // SilkSchema.g:1:86: RBracket\r
{\r
- mLBracket(); if (state.failed) return ;\r
+ mRBracket(); if (state.failed) return ;\r
\r
}\r
break;\r
case 11 :\r
- // SilkSchema.g:1:92: RBracket\r
+ // SilkSchema.g:1:95: Lt\r
{\r
- mRBracket(); if (state.failed) return ;\r
+ mLt(); if (state.failed) return ;\r
\r
}\r
break;\r
case 12 :\r
- // SilkSchema.g:1:101: Lt\r
+ // SilkSchema.g:1:98: Dot\r
{\r
- mLt(); if (state.failed) return ;\r
+ mDot(); if (state.failed) return ;\r
\r
}\r
break;\r
case 13 :\r
- // SilkSchema.g:1:104: Dot\r
+ // SilkSchema.g:1:102: Comma\r
{\r
- mDot(); if (state.failed) return ;\r
+ mComma(); if (state.failed) return ;\r
\r
}\r
break;\r
case 14 :\r
- // SilkSchema.g:1:108: Comma\r
+ // SilkSchema.g:1:108: LParen\r
{\r
- mComma(); if (state.failed) return ;\r
+ mLParen(); if (state.failed) return ;\r
\r
}\r
break;\r
case 15 :\r
- // SilkSchema.g:1:114: LParen\r
+ // SilkSchema.g:1:115: RParen\r
{\r
- mLParen(); if (state.failed) return ;\r
+ mRParen(); if (state.failed) return ;\r
\r
}\r
break;\r
case 16 :\r
- // SilkSchema.g:1:121: RParen\r
+ // SilkSchema.g:1:122: Star\r
{\r
- mRParen(); if (state.failed) return ;\r
+ mStar(); if (state.failed) return ;\r
\r
}\r
break;\r
case 17 :\r
- // SilkSchema.g:1:128: Star\r
+ // SilkSchema.g:1:127: Symbol\r
{\r
- mStar(); if (state.failed) return ;\r
+ mSymbol(); if (state.failed) return ;\r
\r
}\r
break;\r
case 18 :\r
- // SilkSchema.g:1:133: Symbol\r
+ // SilkSchema.g:1:134: Class\r
{\r
- mSymbol(); if (state.failed) return ;\r
+ mClass(); if (state.failed) return ;\r
\r
}\r
break;\r
case 19 :\r
- // SilkSchema.g:1:140: Class\r
+ // SilkSchema.g:1:140: Includes\r
{\r
- mClass(); if (state.failed) return ;\r
+ mIncludes(); if (state.failed) return ;\r
\r
}\r
break;\r
case 20 :\r
- // SilkSchema.g:1:146: Includes\r
+ // SilkSchema.g:1:149: End\r
{\r
- mIncludes(); if (state.failed) return ;\r
+ mEnd(); if (state.failed) return ;\r
\r
}\r
break;\r
case 21 :\r
- // SilkSchema.g:1:155: End\r
+ // SilkSchema.g:1:153: Relation\r
{\r
- mEnd(); if (state.failed) return ;\r
+ mRelation(); if (state.failed) return ;\r
\r
}\r
break;\r
case 22 :\r
- // SilkSchema.g:1:159: Relation\r
+ // SilkSchema.g:1:162: Index\r
{\r
- mRelation(); if (state.failed) return ;\r
+ mIndex(); if (state.failed) return ;\r
\r
}\r
break;\r
case 23 :\r
- // SilkSchema.g:1:168: Index\r
+ // SilkSchema.g:1:168: BelongsTo\r
{\r
- mIndex(); if (state.failed) return ;\r
+ mBelongsTo(); if (state.failed) return ;\r
\r
}\r
break;\r
case 24 :\r
- // SilkSchema.g:1:174: BelongsTo\r
+ // SilkSchema.g:1:178: Default\r
{\r
- mBelongsTo(); if (state.failed) return ;\r
+ mDefault(); if (state.failed) return ;\r
\r
}\r
break;\r
case 25 :\r
- // SilkSchema.g:1:184: Default\r
+ // SilkSchema.g:1:186: Projection\r
{\r
- mDefault(); if (state.failed) return ;\r
+ mProjection(); if (state.failed) return ;\r
\r
}\r
break;\r
case 26 :\r
- // SilkSchema.g:1:192: Projection\r
+ // SilkSchema.g:1:197: OrderBy\r
{\r
- mProjection(); if (state.failed) return ;\r
+ mOrderBy(); if (state.failed) return ;\r
\r
}\r
break;\r
case 27 :\r
- // SilkSchema.g:1:203: OrderBy\r
+ // SilkSchema.g:1:205: On\r
{\r
- mOrderBy(); if (state.failed) return ;\r
+ mOn(); if (state.failed) return ;\r
\r
}\r
break;\r
case 28 :\r
- // SilkSchema.g:1:211: ModuleDef\r
+ // SilkSchema.g:1:208: ModuleDef\r
{\r
mModuleDef(); if (state.failed) return ;\r
\r
}\r
break;\r
case 29 :\r
- // SilkSchema.g:1:221: QName\r
+ // SilkSchema.g:1:218: QName\r
{\r
mQName(); if (state.failed) return ;\r
\r
}\r
break;\r
case 30 :\r
- // SilkSchema.g:1:227: WhiteSpaces\r
+ // SilkSchema.g:1:224: WhiteSpaces\r
{\r
mWhiteSpaces(); if (state.failed) return ;\r
\r
\r
protected DFA23 dfa23 = new DFA23(this);\r
static final String DFA23_eotS =\r
- "\1\uffff\1\34\5\uffff\2\42\13\uffff\10\34\2\uffff\1\56\1\34\2\42"+\r
- "\2\uffff\1\34\1\42\10\34\1\uffff\1\34\1\uffff\1\42\1\60\1\34\1\60"+\r
- "\3\34\1\103\12\34\1\uffff\7\34\1\60\1\125\1\34\1\127\6\34\1\uffff"+\r
- "\1\34\1\uffff\11\34\1\150\1\34\1\uffff\1\152\1\153\1\154\1\34\1"+\r
- "\uffff\1\34\3\uffff\2\34\1\161\1\162\2\uffff";\r
+ "\6\uffff\2\40\13\uffff\11\34\2\uffff\2\40\2\uffff\1\34\1\40\10"+\r
+ "\34\1\74\1\34\1\uffff\1\40\1\56\1\34\1\56\3\34\1\102\5\34\1\uffff"+\r
+ "\5\34\1\uffff\7\34\1\56\1\124\1\34\1\126\6\34\1\uffff\1\34\1\uffff"+\r
+ "\11\34\1\147\2\34\1\uffff\1\152\1\153\1\34\1\uffff\1\34\1\156\2"+\r
+ "\uffff\2\34\1\uffff\1\161\1\162\2\uffff";\r
static final String DFA23_eofS =\r
"\163\uffff";\r
static final String DFA23_minS =\r
- "\1\0\1\156\4\uffff\1\60\2\0\13\uffff\1\154\2\156\3\145\1\162\1"+\r
- "\157\2\uffff\1\0\1\144\2\56\1\uffff\1\0\1\53\1\0\1\141\1\143\1\144"+\r
- "\2\154\1\146\1\157\1\144\1\uffff\1\145\1\uffff\1\56\1\0\1\60\1\0"+\r
- "\1\163\1\154\1\145\1\0\1\141\1\157\1\141\1\152\1\165\1\162\1\53"+\r
- "\1\163\1\165\1\170\1\uffff\1\164\1\156\1\165\1\145\1\154\1\137\1"+\r
- "\60\2\0\1\144\1\0\1\151\1\147\1\154\1\143\1\145\1\142\1\uffff\1"+\r
- "\145\1\uffff\1\157\1\163\2\164\1\11\1\171\1\163\1\156\1\137\1\0"+\r
- "\1\151\1\uffff\3\0\1\164\1\uffff\1\157\3\uffff\1\157\1\156\2\0\2"+\r
- "\uffff";\r
+ "\1\0\4\uffff\1\60\2\0\13\uffff\1\154\2\156\3\145\1\162\1\156\1"+\r
+ "\157\2\uffff\2\56\1\uffff\1\0\1\53\1\0\1\141\1\143\1\144\2\154\1"+\r
+ "\146\1\157\1\144\1\0\1\144\1\uffff\1\56\1\0\1\60\1\0\1\163\1\154"+\r
+ "\1\145\1\0\1\141\1\157\1\141\1\152\1\145\1\uffff\1\165\1\53\1\163"+\r
+ "\1\165\1\170\1\uffff\1\164\1\156\1\165\1\145\1\162\1\154\1\60\2"+\r
+ "\0\1\144\1\0\1\151\1\147\1\154\1\143\1\137\1\145\1\uffff\1\145\1"+\r
+ "\uffff\1\157\1\163\2\164\1\142\1\11\1\163\1\156\1\137\1\0\1\151"+\r
+ "\1\171\1\uffff\2\0\1\164\1\uffff\1\157\1\0\2\uffff\1\157\1\156\1"+\r
+ "\uffff\2\0\2\uffff";\r
static final String DFA23_maxS =\r
- "\1\uffff\1\162\4\uffff\1\71\2\uffff\13\uffff\1\154\2\156\3\145"+\r
- "\1\162\1\157\2\uffff\1\uffff\1\144\2\145\1\uffff\1\uffff\1\71\1"+\r
- "\uffff\1\141\2\144\2\154\1\146\1\157\1\144\1\uffff\1\145\1\uffff"+\r
- "\1\145\1\uffff\1\71\1\uffff\1\163\1\154\1\145\1\uffff\1\141\1\157"+\r
- "\1\141\1\152\1\165\1\162\1\71\1\163\1\165\1\170\1\uffff\1\164\1"+\r
- "\156\1\165\1\145\1\154\1\137\1\71\2\uffff\1\144\1\uffff\1\151\1"+\r
- "\147\1\154\1\143\1\145\1\142\1\uffff\1\145\1\uffff\1\157\1\163\2"+\r
- "\164\1\40\1\171\1\163\1\156\1\137\1\uffff\1\151\1\uffff\3\uffff"+\r
- "\1\164\1\uffff\1\157\3\uffff\1\157\1\156\2\uffff\2\uffff";\r
+ "\1\uffff\4\uffff\1\71\2\uffff\13\uffff\1\154\2\156\3\145\2\162"+\r
+ "\1\157\2\uffff\2\145\1\uffff\1\uffff\1\71\1\uffff\1\141\2\144\2"+\r
+ "\154\1\146\1\157\1\144\1\uffff\1\144\1\uffff\1\145\1\uffff\1\71"+\r
+ "\1\uffff\1\163\1\154\1\145\1\uffff\1\141\1\157\1\141\1\152\1\145"+\r
+ "\1\uffff\1\165\1\71\1\163\1\165\1\170\1\uffff\1\164\1\156\1\165"+\r
+ "\1\145\1\162\1\154\1\71\2\uffff\1\144\1\uffff\1\151\1\147\1\154"+\r
+ "\1\143\1\137\1\145\1\uffff\1\145\1\uffff\1\157\1\163\2\164\1\142"+\r
+ "\1\40\1\163\1\156\1\137\1\uffff\1\151\1\171\1\uffff\2\uffff\1\164"+\r
+ "\1\uffff\1\157\1\uffff\2\uffff\1\157\1\156\1\uffff\2\uffff\2\uffff";\r
static final String DFA23_acceptS =\r
- "\2\uffff\1\2\1\3\1\4\1\5\3\uffff\1\10\1\11\1\12\1\13\1\14\1\15"+\r
- "\1\16\1\17\1\20\1\21\1\22\10\uffff\1\35\1\36\4\uffff\1\6\13\uffff"+\r
- "\1\1\1\uffff\1\7\22\uffff\1\25\21\uffff\1\23\1\uffff\1\27\13\uffff"+\r
- "\1\34\4\uffff\1\31\1\uffff\1\33\1\24\1\26\4\uffff\1\30\1\32";\r
+ "\1\uffff\1\1\1\2\1\3\1\4\3\uffff\1\7\1\10\1\11\1\12\1\13\1\14\1"+\r
+ "\15\1\16\1\17\1\20\1\21\11\uffff\1\35\1\36\2\uffff\1\5\15\uffff"+\r
+ "\1\6\15\uffff\1\33\5\uffff\1\24\21\uffff\1\22\1\uffff\1\26\14\uffff"+\r
+ "\1\34\3\uffff\1\30\2\uffff\1\23\1\25\2\uffff\1\32\2\uffff\1\27\1"+\r
+ "\31";\r
static final String DFA23_specialS =\r
- "\1\20\6\uffff\1\12\1\2\25\uffff\1\3\4\uffff\1\13\1\uffff\1\14\14"+\r
- "\uffff\1\11\1\uffff\1\1\3\uffff\1\21\22\uffff\1\16\1\17\1\uffff"+\r
- "\1\10\22\uffff\1\6\2\uffff\1\4\1\5\1\0\10\uffff\1\7\1\15\2\uffff}>";\r
+ "\1\10\5\uffff\1\1\1\17\31\uffff\1\20\1\uffff\1\16\10\uffff\1\11"+\r
+ "\3\uffff\1\15\1\uffff\1\4\3\uffff\1\12\23\uffff\1\5\1\7\1\uffff"+\r
+ "\1\13\22\uffff\1\0\3\uffff\1\3\1\2\3\uffff\1\14\5\uffff\1\6\1\21"+\r
+ "\2\uffff}>";\r
static final String[] DFA23_transitionS = {\r
- "\11\34\1\35\1\4\2\34\1\4\22\34\1\35\1\34\1\5\1\3\1\34\1\2\1"+\r
- "\34\1\uffff\1\20\1\21\1\22\1\34\1\17\1\6\1\16\1\34\1\7\11\10"+\r
- "\1\23\1\34\1\15\1\34\1\uffff\1\34\1\uffff\32\34\1\13\1\uffff"+\r
- "\1\14\4\34\1\30\1\24\1\31\1\26\3\34\1\25\3\34\1\33\1\34\1\1"+\r
- "\1\32\1\34\1\27\10\34\1\11\1\uffff\1\12\uff82\34",\r
- "\1\36\3\uffff\1\37",\r
+ "\11\34\1\35\1\3\2\34\1\3\22\34\1\35\1\34\1\4\1\2\1\34\1\1\1"+\r
+ "\34\1\uffff\1\17\1\20\1\21\1\34\1\16\1\5\1\15\1\34\1\6\11\7"+\r
+ "\1\22\1\34\1\14\1\34\1\uffff\1\34\1\uffff\32\34\1\12\1\uffff"+\r
+ "\1\13\4\34\1\27\1\23\1\30\1\25\3\34\1\24\3\34\1\33\1\34\1\32"+\r
+ "\1\31\1\34\1\26\10\34\1\10\1\uffff\1\11\uff82\34",\r
"",\r
"",\r
"",\r
"",\r
- "\1\40\11\41",\r
+ "\1\36\11\37",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
- "\1\uffff\1\34\4\uffff\1\34\2\uffff\1\43\13\34\1\uffff\1\34\1"+\r
- "\uffff\1\34\1\uffff\1\34\1\uffff\4\34\1\44\25\34\3\uffff\7\34"+\r
- "\1\44\25\34\3\uffff\uff82\34",\r
+ "\1\uffff\1\34\4\uffff\1\34\2\uffff\1\41\13\34\1\uffff\1\34\1"+\r
+ "\uffff\1\34\1\uffff\1\34\1\uffff\4\34\1\42\25\34\3\uffff\7\34"+\r
+ "\1\42\25\34\3\uffff\uff82\34",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
- "\1\uffff\1\34\4\uffff\1\34\2\uffff\1\43\1\34\12\45\1\uffff\1"+\r
- "\34\1\uffff\1\34\1\uffff\1\34\1\uffff\4\34\1\44\25\34\3\uffff"+\r
- "\7\34\1\44\25\34\3\uffff\uff82\34",\r
+ "\1\uffff\1\34\4\uffff\1\34\2\uffff\1\41\1\34\12\43\1\uffff\1"+\r
+ "\34\1\uffff\1\34\1\uffff\1\34\1\uffff\4\34\1\42\25\34\3\uffff"+\r
+ "\7\34\1\42\25\34\3\uffff\uff82\34",\r
"",\r
"",\r
"",\r
"",\r
"",\r
"",\r
+ "\1\44",\r
+ "\1\45",\r
"\1\46",\r
"\1\47",\r
"\1\50",\r
"\1\51",\r
"\1\52",\r
- "\1\53",\r
- "\1\54",\r
+ "\1\54\3\uffff\1\53",\r
"\1\55",\r
"",\r
"",\r
- "\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
- "\1\uffff\1\34\4\uffff\1\34\2\uffff\14\34\1\uffff\1\34\1\uffff"+\r
- "\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff\uff82"+\r
- "\34",\r
- "\1\57",\r
- "\1\60\26\uffff\1\60\37\uffff\1\60",\r
- "\1\60\1\uffff\12\61\13\uffff\1\60\37\uffff\1\60",\r
+ "\1\56\26\uffff\1\56\37\uffff\1\56",\r
+ "\1\56\1\uffff\12\57\13\uffff\1\56\37\uffff\1\56",\r
"",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
- "\1\uffff\1\34\4\uffff\1\34\3\uffff\1\34\12\62\1\uffff\1\34\1"+\r
+ "\1\uffff\1\34\4\uffff\1\34\3\uffff\1\34\12\60\1\uffff\1\34\1"+\r
"\uffff\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff"+\r
"\uff82\34",\r
- "\1\63\1\uffff\1\60\2\uffff\12\64",\r
+ "\1\61\1\uffff\1\56\2\uffff\12\62",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
- "\1\uffff\1\34\4\uffff\1\34\2\uffff\1\43\1\34\12\45\1\uffff\1"+\r
- "\34\1\uffff\1\34\1\uffff\1\34\1\uffff\4\34\1\44\25\34\3\uffff"+\r
- "\7\34\1\44\25\34\3\uffff\uff82\34",\r
- "\1\65",\r
- "\1\66\1\67",\r
+ "\1\uffff\1\34\4\uffff\1\34\2\uffff\1\41\1\34\12\43\1\uffff\1"+\r
+ "\34\1\uffff\1\34\1\uffff\1\34\1\uffff\4\34\1\42\25\34\3\uffff"+\r
+ "\7\34\1\42\25\34\3\uffff\uff82\34",\r
+ "\1\63",\r
+ "\1\64\1\65",\r
+ "\1\66",\r
+ "\1\67",\r
"\1\70",\r
"\1\71",\r
"\1\72",\r
"\1\73",\r
- "\1\74",\r
+ "\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
+ "\1\uffff\1\34\4\uffff\1\34\2\uffff\14\34\1\uffff\1\34\1\uffff"+\r
+ "\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff\uff82"+\r
+ "\34",\r
"\1\75",\r
"",\r
- "\1\76",\r
- "",\r
- "\1\60\1\uffff\12\61\13\uffff\1\60\37\uffff\1\60",\r
+ "\1\56\1\uffff\12\57\13\uffff\1\56\37\uffff\1\56",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
- "\1\uffff\1\34\4\uffff\1\34\2\uffff\2\34\12\62\1\uffff\1\34\1"+\r
- "\uffff\1\34\1\uffff\1\34\1\uffff\4\34\1\77\25\34\3\uffff\7\34"+\r
- "\1\77\25\34\3\uffff\uff82\34",\r
- "\12\64",\r
+ "\1\uffff\1\34\4\uffff\1\34\2\uffff\2\34\12\60\1\uffff\1\34\1"+\r
+ "\uffff\1\34\1\uffff\1\34\1\uffff\4\34\1\76\25\34\3\uffff\7\34"+\r
+ "\1\76\25\34\3\uffff\uff82\34",\r
+ "\12\62",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
- "\1\uffff\1\34\4\uffff\1\34\2\uffff\2\34\12\64\1\uffff\1\34\1"+\r
+ "\1\uffff\1\34\4\uffff\1\34\2\uffff\2\34\12\62\1\uffff\1\34\1"+\r
"\uffff\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff"+\r
"\uff82\34",\r
+ "\1\77",\r
"\1\100",\r
"\1\101",\r
- "\1\102",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
"\1\uffff\1\34\4\uffff\1\34\2\uffff\14\34\1\uffff\1\34\1\uffff"+\r
"\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff\uff82"+\r
"\34",\r
+ "\1\103",\r
"\1\104",\r
"\1\105",\r
"\1\106",\r
"\1\107",\r
+ "",\r
"\1\110",\r
- "\1\111",\r
- "\1\112\1\uffff\1\60\2\uffff\12\113",\r
+ "\1\111\1\uffff\1\56\2\uffff\12\112",\r
+ "\1\113",\r
"\1\114",\r
"\1\115",\r
- "\1\116",\r
"",\r
+ "\1\116",\r
"\1\117",\r
"\1\120",\r
"\1\121",\r
"\1\122",\r
"\1\123",\r
- "\1\124",\r
- "\12\113",\r
+ "\12\112",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
- "\1\uffff\1\34\4\uffff\1\34\2\uffff\2\34\12\113\1\uffff\1\34"+\r
+ "\1\uffff\1\34\4\uffff\1\34\2\uffff\2\34\12\112\1\uffff\1\34"+\r
"\1\uffff\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff"+\r
"\uff82\34",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
"\1\uffff\1\34\4\uffff\1\34\2\uffff\14\34\1\uffff\1\34\1\uffff"+\r
"\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff\uff82"+\r
"\34",\r
- "\1\126",\r
+ "\1\125",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
"\1\uffff\1\34\4\uffff\1\34\2\uffff\14\34\1\uffff\1\34\1\uffff"+\r
"\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff\uff82"+\r
"\34",\r
+ "\1\127",\r
"\1\130",\r
"\1\131",\r
"\1\132",\r
"\1\133",\r
"\1\134",\r
+ "",\r
"\1\135",\r
"",\r
"\1\136",\r
- "",\r
"\1\137",\r
"\1\140",\r
"\1\141",\r
"\1\144",\r
"\1\145",\r
"\1\146",\r
- "\1\147",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
"\1\uffff\1\34\4\uffff\1\34\2\uffff\14\34\1\uffff\1\34\1\uffff"+\r
"\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff\uff82"+\r
"\34",\r
+ "\1\150",\r
"\1\151",\r
"",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
"\1\uffff\1\34\4\uffff\1\34\2\uffff\14\34\1\uffff\1\34\1\uffff"+\r
"\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff\uff82"+\r
"\34",\r
+ "\1\154",\r
+ "",\r
+ "\1\155",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
"\1\uffff\1\34\4\uffff\1\34\2\uffff\14\34\1\uffff\1\34\1\uffff"+\r
"\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff\uff82"+\r
"\34",\r
- "\1\155",\r
- "",\r
- "\1\156",\r
- "",\r
"",\r
"",\r
"\1\157",\r
"\1\160",\r
+ "",\r
"\11\34\2\uffff\2\34\1\uffff\22\34\1\uffff\1\34\2\uffff\1\34"+\r
"\1\uffff\1\34\4\uffff\1\34\2\uffff\14\34\1\uffff\1\34\1\uffff"+\r
"\1\34\1\uffff\1\34\1\uffff\32\34\3\uffff\35\34\3\uffff\uff82"+\r
this.transition = DFA23_transition;\r
}\r
public String getDescription() {\r
- return "1:1: Tokens : ( T__65 | Preamble | LineComment | LineBreak | String | Integer | Double | LBrace | RBrace | LBracket | RBracket | Lt | Dot | Comma | LParen | RParen | Star | Symbol | Class | Includes | End | Relation | Index | BelongsTo | Default | Projection | OrderBy | ModuleDef | QName | WhiteSpaces );";\r
+ return "1:1: Tokens : ( Preamble | LineComment | LineBreak | String | Integer | Double | LBrace | RBrace | LBracket | RBracket | Lt | Dot | Comma | LParen | RParen | Star | Symbol | Class | Includes | End | Relation | Index | BelongsTo | Default | Projection | OrderBy | On | ModuleDef | QName | WhiteSpaces );";\r
}\r
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {\r
IntStream input = _input;\r
int _s = s;\r
switch ( s ) {\r
case 0 : \r
- int LA23_102 = input.LA(1);\r
+ int LA23_96 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_102>='\u0000' && LA23_102<='\b')||(LA23_102>='\u000B' && LA23_102<='\f')||(LA23_102>='\u000E' && LA23_102<='\u001F')||LA23_102=='!'||LA23_102=='$'||LA23_102=='&'||LA23_102=='+'||(LA23_102>='.' && LA23_102<='9')||LA23_102==';'||LA23_102=='='||LA23_102=='?'||(LA23_102>='A' && LA23_102<='Z')||(LA23_102>='^' && LA23_102<='z')||(LA23_102>='~' && LA23_102<='\uFFFF')) ) {s = 28;}\r
+ if ( ((LA23_96>='\u0000' && LA23_96<='\b')||(LA23_96>='\u000B' && LA23_96<='\f')||(LA23_96>='\u000E' && LA23_96<='\u001F')||LA23_96=='!'||LA23_96=='$'||LA23_96=='&'||LA23_96=='+'||(LA23_96>='.' && LA23_96<='9')||LA23_96==';'||LA23_96=='='||LA23_96=='?'||(LA23_96>='A' && LA23_96<='Z')||(LA23_96>='^' && LA23_96<='z')||(LA23_96>='~' && LA23_96<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 108;\r
+ else s = 103;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 1 : \r
- int LA23_52 = input.LA(1);\r
+ int LA23_6 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_52>='0' && LA23_52<='9')) ) {s = 52;}\r
+ if ( (LA23_6=='.') ) {s = 33;}\r
+\r
+ else if ( (LA23_6=='E'||LA23_6=='e') ) {s = 34;}\r
\r
- else if ( ((LA23_52>='\u0000' && LA23_52<='\b')||(LA23_52>='\u000B' && LA23_52<='\f')||(LA23_52>='\u000E' && LA23_52<='\u001F')||LA23_52=='!'||LA23_52=='$'||LA23_52=='&'||LA23_52=='+'||(LA23_52>='.' && LA23_52<='/')||LA23_52==';'||LA23_52=='='||LA23_52=='?'||(LA23_52>='A' && LA23_52<='Z')||(LA23_52>='^' && LA23_52<='z')||(LA23_52>='~' && LA23_52<='\uFFFF')) ) {s = 28;}\r
+ else if ( ((LA23_6>='\u0000' && LA23_6<='\b')||(LA23_6>='\u000B' && LA23_6<='\f')||(LA23_6>='\u000E' && LA23_6<='\u001F')||LA23_6=='!'||LA23_6=='$'||LA23_6=='&'||LA23_6=='+'||(LA23_6>='/' && LA23_6<='9')||LA23_6==';'||LA23_6=='='||LA23_6=='?'||(LA23_6>='A' && LA23_6<='D')||(LA23_6>='F' && LA23_6<='Z')||(LA23_6>='^' && LA23_6<='d')||(LA23_6>='f' && LA23_6<='z')||(LA23_6>='~' && LA23_6<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 48;\r
+ else s = 32;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 2 : \r
- int LA23_8 = input.LA(1);\r
+ int LA23_101 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_8>='0' && LA23_8<='9')) ) {s = 37;}\r
-\r
- else if ( (LA23_8=='.') ) {s = 35;}\r
-\r
- else if ( (LA23_8=='E'||LA23_8=='e') ) {s = 36;}\r
-\r
- else if ( ((LA23_8>='\u0000' && LA23_8<='\b')||(LA23_8>='\u000B' && LA23_8<='\f')||(LA23_8>='\u000E' && LA23_8<='\u001F')||LA23_8=='!'||LA23_8=='$'||LA23_8=='&'||LA23_8=='+'||LA23_8=='/'||LA23_8==';'||LA23_8=='='||LA23_8=='?'||(LA23_8>='A' && LA23_8<='D')||(LA23_8>='F' && LA23_8<='Z')||(LA23_8>='^' && LA23_8<='d')||(LA23_8>='f' && LA23_8<='z')||(LA23_8>='~' && LA23_8<='\uFFFF')) ) {s = 28;}\r
+ if ( ((LA23_101>='\u0000' && LA23_101<='\b')||(LA23_101>='\u000B' && LA23_101<='\f')||(LA23_101>='\u000E' && LA23_101<='\u001F')||LA23_101=='!'||LA23_101=='$'||LA23_101=='&'||LA23_101=='+'||(LA23_101>='.' && LA23_101<='9')||LA23_101==';'||LA23_101=='='||LA23_101=='?'||(LA23_101>='A' && LA23_101<='Z')||(LA23_101>='^' && LA23_101<='z')||(LA23_101>='~' && LA23_101<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 34;\r
+ else s = 107;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 3 : \r
- int LA23_30 = input.LA(1);\r
+ int LA23_100 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_30>='\u0000' && LA23_30<='\b')||(LA23_30>='\u000B' && LA23_30<='\f')||(LA23_30>='\u000E' && LA23_30<='\u001F')||LA23_30=='!'||LA23_30=='$'||LA23_30=='&'||LA23_30=='+'||(LA23_30>='.' && LA23_30<='9')||LA23_30==';'||LA23_30=='='||LA23_30=='?'||(LA23_30>='A' && LA23_30<='Z')||(LA23_30>='^' && LA23_30<='z')||(LA23_30>='~' && LA23_30<='\uFFFF')) ) {s = 28;}\r
+ if ( ((LA23_100>='\u0000' && LA23_100<='\b')||(LA23_100>='\u000B' && LA23_100<='\f')||(LA23_100>='\u000E' && LA23_100<='\u001F')||LA23_100=='!'||LA23_100=='$'||LA23_100=='&'||LA23_100=='+'||(LA23_100>='.' && LA23_100<='9')||LA23_100==';'||LA23_100=='='||LA23_100=='?'||(LA23_100>='A' && LA23_100<='Z')||(LA23_100>='^' && LA23_100<='z')||(LA23_100>='~' && LA23_100<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 46;\r
+ else s = 106;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 4 : \r
- int LA23_100 = input.LA(1);\r
+ int LA23_50 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_100>='\u0000' && LA23_100<='\b')||(LA23_100>='\u000B' && LA23_100<='\f')||(LA23_100>='\u000E' && LA23_100<='\u001F')||LA23_100=='!'||LA23_100=='$'||LA23_100=='&'||LA23_100=='+'||(LA23_100>='.' && LA23_100<='9')||LA23_100==';'||LA23_100=='='||LA23_100=='?'||(LA23_100>='A' && LA23_100<='Z')||(LA23_100>='^' && LA23_100<='z')||(LA23_100>='~' && LA23_100<='\uFFFF')) ) {s = 28;}\r
+ if ( ((LA23_50>='0' && LA23_50<='9')) ) {s = 50;}\r
\r
- else s = 106;\r
+ else if ( ((LA23_50>='\u0000' && LA23_50<='\b')||(LA23_50>='\u000B' && LA23_50<='\f')||(LA23_50>='\u000E' && LA23_50<='\u001F')||LA23_50=='!'||LA23_50=='$'||LA23_50=='&'||LA23_50=='+'||(LA23_50>='.' && LA23_50<='/')||LA23_50==';'||LA23_50=='='||LA23_50=='?'||(LA23_50>='A' && LA23_50<='Z')||(LA23_50>='^' && LA23_50<='z')||(LA23_50>='~' && LA23_50<='\uFFFF')) ) {s = 28;}\r
+\r
+ else s = 46;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 5 : \r
- int LA23_101 = input.LA(1);\r
+ int LA23_74 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_101>='\u0000' && LA23_101<='\b')||(LA23_101>='\u000B' && LA23_101<='\f')||(LA23_101>='\u000E' && LA23_101<='\u001F')||LA23_101=='!'||LA23_101=='$'||LA23_101=='&'||LA23_101=='+'||(LA23_101>='.' && LA23_101<='9')||LA23_101==';'||LA23_101=='='||LA23_101=='?'||(LA23_101>='A' && LA23_101<='Z')||(LA23_101>='^' && LA23_101<='z')||(LA23_101>='~' && LA23_101<='\uFFFF')) ) {s = 28;}\r
+ if ( ((LA23_74>='\u0000' && LA23_74<='\b')||(LA23_74>='\u000B' && LA23_74<='\f')||(LA23_74>='\u000E' && LA23_74<='\u001F')||LA23_74=='!'||LA23_74=='$'||LA23_74=='&'||LA23_74=='+'||(LA23_74>='.' && LA23_74<='/')||LA23_74==';'||LA23_74=='='||LA23_74=='?'||(LA23_74>='A' && LA23_74<='Z')||(LA23_74>='^' && LA23_74<='z')||(LA23_74>='~' && LA23_74<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 107;\r
+ else if ( ((LA23_74>='0' && LA23_74<='9')) ) {s = 74;}\r
+\r
+ else s = 46;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 6 : \r
- int LA23_97 = input.LA(1);\r
+ int LA23_111 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_97>='\u0000' && LA23_97<='\b')||(LA23_97>='\u000B' && LA23_97<='\f')||(LA23_97>='\u000E' && LA23_97<='\u001F')||LA23_97=='!'||LA23_97=='$'||LA23_97=='&'||LA23_97=='+'||(LA23_97>='.' && LA23_97<='9')||LA23_97==';'||LA23_97=='='||LA23_97=='?'||(LA23_97>='A' && LA23_97<='Z')||(LA23_97>='^' && LA23_97<='z')||(LA23_97>='~' && LA23_97<='\uFFFF')) ) {s = 28;}\r
+ if ( ((LA23_111>='\u0000' && LA23_111<='\b')||(LA23_111>='\u000B' && LA23_111<='\f')||(LA23_111>='\u000E' && LA23_111<='\u001F')||LA23_111=='!'||LA23_111=='$'||LA23_111=='&'||LA23_111=='+'||(LA23_111>='.' && LA23_111<='9')||LA23_111==';'||LA23_111=='='||LA23_111=='?'||(LA23_111>='A' && LA23_111<='Z')||(LA23_111>='^' && LA23_111<='z')||(LA23_111>='~' && LA23_111<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 104;\r
+ else s = 113;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 7 : \r
- int LA23_111 = input.LA(1);\r
+ int LA23_75 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_111>='\u0000' && LA23_111<='\b')||(LA23_111>='\u000B' && LA23_111<='\f')||(LA23_111>='\u000E' && LA23_111<='\u001F')||LA23_111=='!'||LA23_111=='$'||LA23_111=='&'||LA23_111=='+'||(LA23_111>='.' && LA23_111<='9')||LA23_111==';'||LA23_111=='='||LA23_111=='?'||(LA23_111>='A' && LA23_111<='Z')||(LA23_111>='^' && LA23_111<='z')||(LA23_111>='~' && LA23_111<='\uFFFF')) ) {s = 28;}\r
+ if ( ((LA23_75>='\u0000' && LA23_75<='\b')||(LA23_75>='\u000B' && LA23_75<='\f')||(LA23_75>='\u000E' && LA23_75<='\u001F')||LA23_75=='!'||LA23_75=='$'||LA23_75=='&'||LA23_75=='+'||(LA23_75>='.' && LA23_75<='9')||LA23_75==';'||LA23_75=='='||LA23_75=='?'||(LA23_75>='A' && LA23_75<='Z')||(LA23_75>='^' && LA23_75<='z')||(LA23_75>='~' && LA23_75<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 113;\r
+ else s = 84;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 8 : \r
- int LA23_78 = input.LA(1);\r
+ int LA23_0 = input.LA(1);\r
\r
+ \r
+ int index23_0 = input.index();\r
+ input.rewind();\r
s = -1;\r
- if ( ((LA23_78>='\u0000' && LA23_78<='\b')||(LA23_78>='\u000B' && LA23_78<='\f')||(LA23_78>='\u000E' && LA23_78<='\u001F')||LA23_78=='!'||LA23_78=='$'||LA23_78=='&'||LA23_78=='+'||(LA23_78>='.' && LA23_78<='9')||LA23_78==';'||LA23_78=='='||LA23_78=='?'||(LA23_78>='A' && LA23_78<='Z')||(LA23_78>='^' && LA23_78<='z')||(LA23_78>='~' && LA23_78<='\uFFFF')) ) {s = 28;}\r
+ if ( (LA23_0=='%') && (( getCharPositionInLine() == 0 ))) {s = 1;}\r
\r
- else s = 87;\r
+ else if ( (LA23_0=='#') ) {s = 2;}\r
\r
- if ( s>=0 ) return s;\r
- break;\r
- case 9 : \r
- int LA23_50 = input.LA(1);\r
+ else if ( (LA23_0=='\n'||LA23_0=='\r') ) {s = 3;}\r
\r
- s = -1;\r
- if ( ((LA23_50>='\u0000' && LA23_50<='\b')||(LA23_50>='\u000B' && LA23_50<='\f')||(LA23_50>='\u000E' && LA23_50<='\u001F')||LA23_50=='!'||LA23_50=='$'||LA23_50=='&'||LA23_50=='+'||(LA23_50>='.' && LA23_50<='/')||LA23_50==';'||LA23_50=='='||LA23_50=='?'||(LA23_50>='A' && LA23_50<='D')||(LA23_50>='F' && LA23_50<='Z')||(LA23_50>='^' && LA23_50<='d')||(LA23_50>='f' && LA23_50<='z')||(LA23_50>='~' && LA23_50<='\uFFFF')) ) {s = 28;}\r
+ else if ( (LA23_0=='\"') ) {s = 4;}\r
\r
- else if ( (LA23_50=='E'||LA23_50=='e') ) {s = 63;}\r
+ else if ( (LA23_0=='-') ) {s = 5;}\r
\r
- else if ( ((LA23_50>='0' && LA23_50<='9')) ) {s = 50;}\r
+ else if ( (LA23_0=='0') ) {s = 6;}\r
\r
- else s = 48;\r
+ else if ( ((LA23_0>='1' && LA23_0<='9')) ) {s = 7;}\r
\r
- if ( s>=0 ) return s;\r
- break;\r
- case 10 : \r
- int LA23_7 = input.LA(1);\r
+ else if ( (LA23_0=='{') ) {s = 8;}\r
\r
- s = -1;\r
- if ( (LA23_7=='.') ) {s = 35;}\r
+ else if ( (LA23_0=='}') ) {s = 9;}\r
\r
- else if ( (LA23_7=='E'||LA23_7=='e') ) {s = 36;}\r
+ else if ( (LA23_0=='[') ) {s = 10;}\r
\r
- else if ( ((LA23_7>='\u0000' && LA23_7<='\b')||(LA23_7>='\u000B' && LA23_7<='\f')||(LA23_7>='\u000E' && LA23_7<='\u001F')||LA23_7=='!'||LA23_7=='$'||LA23_7=='&'||LA23_7=='+'||(LA23_7>='/' && LA23_7<='9')||LA23_7==';'||LA23_7=='='||LA23_7=='?'||(LA23_7>='A' && LA23_7<='D')||(LA23_7>='F' && LA23_7<='Z')||(LA23_7>='^' && LA23_7<='d')||(LA23_7>='f' && LA23_7<='z')||(LA23_7>='~' && LA23_7<='\uFFFF')) ) {s = 28;}\r
+ else if ( (LA23_0==']') ) {s = 11;}\r
\r
- else s = 34;\r
+ else if ( (LA23_0=='<') ) {s = 12;}\r
\r
- if ( s>=0 ) return s;\r
- break;\r
- case 11 : \r
- int LA23_35 = input.LA(1);\r
+ else if ( (LA23_0=='.') ) {s = 13;}\r
\r
- s = -1;\r
- if ( ((LA23_35>='0' && LA23_35<='9')) ) {s = 50;}\r
+ else if ( (LA23_0==',') ) {s = 14;}\r
\r
- else if ( ((LA23_35>='\u0000' && LA23_35<='\b')||(LA23_35>='\u000B' && LA23_35<='\f')||(LA23_35>='\u000E' && LA23_35<='\u001F')||LA23_35=='!'||LA23_35=='$'||LA23_35=='&'||LA23_35=='+'||LA23_35=='/'||LA23_35==';'||LA23_35=='='||LA23_35=='?'||(LA23_35>='A' && LA23_35<='Z')||(LA23_35>='^' && LA23_35<='z')||(LA23_35>='~' && LA23_35<='\uFFFF')) ) {s = 28;}\r
+ else if ( (LA23_0=='(') ) {s = 15;}\r
\r
- if ( s>=0 ) return s;\r
- break;\r
- case 12 : \r
- int LA23_37 = input.LA(1);\r
+ else if ( (LA23_0==')') ) {s = 16;}\r
\r
- s = -1;\r
- if ( (LA23_37=='.') ) {s = 35;}\r
+ else if ( (LA23_0=='*') ) {s = 17;}\r
\r
- else if ( (LA23_37=='E'||LA23_37=='e') ) {s = 36;}\r
+ else if ( (LA23_0==':') ) {s = 18;}\r
\r
- else if ( ((LA23_37>='0' && LA23_37<='9')) ) {s = 37;}\r
+ else if ( (LA23_0=='c') ) {s = 19;}\r
\r
- else if ( ((LA23_37>='\u0000' && LA23_37<='\b')||(LA23_37>='\u000B' && LA23_37<='\f')||(LA23_37>='\u000E' && LA23_37<='\u001F')||LA23_37=='!'||LA23_37=='$'||LA23_37=='&'||LA23_37=='+'||LA23_37=='/'||LA23_37==';'||LA23_37=='='||LA23_37=='?'||(LA23_37>='A' && LA23_37<='D')||(LA23_37>='F' && LA23_37<='Z')||(LA23_37>='^' && LA23_37<='d')||(LA23_37>='f' && LA23_37<='z')||(LA23_37>='~' && LA23_37<='\uFFFF')) ) {s = 28;}\r
+ else if ( (LA23_0=='i') ) {s = 20;}\r
\r
- else s = 34;\r
+ else if ( (LA23_0=='e') ) {s = 21;}\r
\r
- if ( s>=0 ) return s;\r
- break;\r
- case 13 : \r
- int LA23_112 = input.LA(1);\r
+ else if ( (LA23_0=='r') ) {s = 22;}\r
\r
- s = -1;\r
- if ( ((LA23_112>='\u0000' && LA23_112<='\b')||(LA23_112>='\u000B' && LA23_112<='\f')||(LA23_112>='\u000E' && LA23_112<='\u001F')||LA23_112=='!'||LA23_112=='$'||LA23_112=='&'||LA23_112=='+'||(LA23_112>='.' && LA23_112<='9')||LA23_112==';'||LA23_112=='='||LA23_112=='?'||(LA23_112>='A' && LA23_112<='Z')||(LA23_112>='^' && LA23_112<='z')||(LA23_112>='~' && LA23_112<='\uFFFF')) ) {s = 28;}\r
+ else if ( (LA23_0=='b') ) {s = 23;}\r
\r
- else s = 114;\r
+ else if ( (LA23_0=='d') ) {s = 24;}\r
\r
- if ( s>=0 ) return s;\r
- break;\r
- case 14 : \r
- int LA23_75 = input.LA(1);\r
+ else if ( (LA23_0=='p') ) {s = 25;}\r
\r
- s = -1;\r
- if ( ((LA23_75>='\u0000' && LA23_75<='\b')||(LA23_75>='\u000B' && LA23_75<='\f')||(LA23_75>='\u000E' && LA23_75<='\u001F')||LA23_75=='!'||LA23_75=='$'||LA23_75=='&'||LA23_75=='+'||(LA23_75>='.' && LA23_75<='/')||LA23_75==';'||LA23_75=='='||LA23_75=='?'||(LA23_75>='A' && LA23_75<='Z')||(LA23_75>='^' && LA23_75<='z')||(LA23_75>='~' && LA23_75<='\uFFFF')) ) {s = 28;}\r
+ else if ( (LA23_0=='o') ) {s = 26;}\r
\r
- else if ( ((LA23_75>='0' && LA23_75<='9')) ) {s = 75;}\r
+ else if ( (LA23_0=='m') ) {s = 27;}\r
+\r
+ else if ( ((LA23_0>='\u0000' && LA23_0<='\b')||(LA23_0>='\u000B' && LA23_0<='\f')||(LA23_0>='\u000E' && LA23_0<='\u001F')||LA23_0=='!'||LA23_0=='$'||LA23_0=='&'||LA23_0=='+'||LA23_0=='/'||LA23_0==';'||LA23_0=='='||LA23_0=='?'||(LA23_0>='A' && LA23_0<='Z')||(LA23_0>='^' && LA23_0<='a')||(LA23_0>='f' && LA23_0<='h')||(LA23_0>='j' && LA23_0<='l')||LA23_0=='n'||LA23_0=='q'||(LA23_0>='s' && LA23_0<='z')||(LA23_0>='~' && LA23_0<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 48;\r
+ else if ( (LA23_0=='\t'||LA23_0==' ') ) {s = 29;}\r
\r
+ \r
+ input.seek(index23_0);\r
if ( s>=0 ) return s;\r
break;\r
- case 15 : \r
- int LA23_76 = input.LA(1);\r
+ case 9 : \r
+ int LA23_44 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_76>='\u0000' && LA23_76<='\b')||(LA23_76>='\u000B' && LA23_76<='\f')||(LA23_76>='\u000E' && LA23_76<='\u001F')||LA23_76=='!'||LA23_76=='$'||LA23_76=='&'||LA23_76=='+'||(LA23_76>='.' && LA23_76<='9')||LA23_76==';'||LA23_76=='='||LA23_76=='?'||(LA23_76>='A' && LA23_76<='Z')||(LA23_76>='^' && LA23_76<='z')||(LA23_76>='~' && LA23_76<='\uFFFF')) ) {s = 28;}\r
+ if ( ((LA23_44>='\u0000' && LA23_44<='\b')||(LA23_44>='\u000B' && LA23_44<='\f')||(LA23_44>='\u000E' && LA23_44<='\u001F')||LA23_44=='!'||LA23_44=='$'||LA23_44=='&'||LA23_44=='+'||(LA23_44>='.' && LA23_44<='9')||LA23_44==';'||LA23_44=='='||LA23_44=='?'||(LA23_44>='A' && LA23_44<='Z')||(LA23_44>='^' && LA23_44<='z')||(LA23_44>='~' && LA23_44<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 85;\r
+ else s = 60;\r
\r
if ( s>=0 ) return s;\r
break;\r
- case 16 : \r
- int LA23_0 = input.LA(1);\r
+ case 10 : \r
+ int LA23_54 = input.LA(1);\r
\r
- \r
- int index23_0 = input.index();\r
- input.rewind();\r
s = -1;\r
- if ( (LA23_0=='o') ) {s = 1;}\r
+ if ( ((LA23_54>='\u0000' && LA23_54<='\b')||(LA23_54>='\u000B' && LA23_54<='\f')||(LA23_54>='\u000E' && LA23_54<='\u001F')||LA23_54=='!'||LA23_54=='$'||LA23_54=='&'||LA23_54=='+'||(LA23_54>='.' && LA23_54<='9')||LA23_54==';'||LA23_54=='='||LA23_54=='?'||(LA23_54>='A' && LA23_54<='Z')||(LA23_54>='^' && LA23_54<='z')||(LA23_54>='~' && LA23_54<='\uFFFF')) ) {s = 28;}\r
\r
- else if ( (LA23_0=='%') && (( getCharPositionInLine() == 0 ))) {s = 2;}\r
+ else s = 66;\r
\r
- else if ( (LA23_0=='#') ) {s = 3;}\r
-\r
- else if ( (LA23_0=='\n'||LA23_0=='\r') ) {s = 4;}\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 11 : \r
+ int LA23_77 = input.LA(1);\r
\r
- else if ( (LA23_0=='\"') ) {s = 5;}\r
+ s = -1;\r
+ if ( ((LA23_77>='\u0000' && LA23_77<='\b')||(LA23_77>='\u000B' && LA23_77<='\f')||(LA23_77>='\u000E' && LA23_77<='\u001F')||LA23_77=='!'||LA23_77=='$'||LA23_77=='&'||LA23_77=='+'||(LA23_77>='.' && LA23_77<='9')||LA23_77==';'||LA23_77=='='||LA23_77=='?'||(LA23_77>='A' && LA23_77<='Z')||(LA23_77>='^' && LA23_77<='z')||(LA23_77>='~' && LA23_77<='\uFFFF')) ) {s = 28;}\r
\r
- else if ( (LA23_0=='-') ) {s = 6;}\r
+ else s = 86;\r
\r
- else if ( (LA23_0=='0') ) {s = 7;}\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 12 : \r
+ int LA23_105 = input.LA(1);\r
\r
- else if ( ((LA23_0>='1' && LA23_0<='9')) ) {s = 8;}\r
+ s = -1;\r
+ if ( ((LA23_105>='\u0000' && LA23_105<='\b')||(LA23_105>='\u000B' && LA23_105<='\f')||(LA23_105>='\u000E' && LA23_105<='\u001F')||LA23_105=='!'||LA23_105=='$'||LA23_105=='&'||LA23_105=='+'||(LA23_105>='.' && LA23_105<='9')||LA23_105==';'||LA23_105=='='||LA23_105=='?'||(LA23_105>='A' && LA23_105<='Z')||(LA23_105>='^' && LA23_105<='z')||(LA23_105>='~' && LA23_105<='\uFFFF')) ) {s = 28;}\r
\r
- else if ( (LA23_0=='{') ) {s = 9;}\r
+ else s = 110;\r
\r
- else if ( (LA23_0=='}') ) {s = 10;}\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 13 : \r
+ int LA23_48 = input.LA(1);\r
\r
- else if ( (LA23_0=='[') ) {s = 11;}\r
+ s = -1;\r
+ if ( ((LA23_48>='\u0000' && LA23_48<='\b')||(LA23_48>='\u000B' && LA23_48<='\f')||(LA23_48>='\u000E' && LA23_48<='\u001F')||LA23_48=='!'||LA23_48=='$'||LA23_48=='&'||LA23_48=='+'||(LA23_48>='.' && LA23_48<='/')||LA23_48==';'||LA23_48=='='||LA23_48=='?'||(LA23_48>='A' && LA23_48<='D')||(LA23_48>='F' && LA23_48<='Z')||(LA23_48>='^' && LA23_48<='d')||(LA23_48>='f' && LA23_48<='z')||(LA23_48>='~' && LA23_48<='\uFFFF')) ) {s = 28;}\r
\r
- else if ( (LA23_0==']') ) {s = 12;}\r
+ else if ( (LA23_48=='E'||LA23_48=='e') ) {s = 62;}\r
\r
- else if ( (LA23_0=='<') ) {s = 13;}\r
+ else if ( ((LA23_48>='0' && LA23_48<='9')) ) {s = 48;}\r
\r
- else if ( (LA23_0=='.') ) {s = 14;}\r
+ else s = 46;\r
\r
- else if ( (LA23_0==',') ) {s = 15;}\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 14 : \r
+ int LA23_35 = input.LA(1);\r
\r
- else if ( (LA23_0=='(') ) {s = 16;}\r
+ s = -1;\r
+ if ( ((LA23_35>='0' && LA23_35<='9')) ) {s = 35;}\r
\r
- else if ( (LA23_0==')') ) {s = 17;}\r
+ else if ( (LA23_35=='.') ) {s = 33;}\r
\r
- else if ( (LA23_0=='*') ) {s = 18;}\r
+ else if ( (LA23_35=='E'||LA23_35=='e') ) {s = 34;}\r
\r
- else if ( (LA23_0==':') ) {s = 19;}\r
+ else if ( ((LA23_35>='\u0000' && LA23_35<='\b')||(LA23_35>='\u000B' && LA23_35<='\f')||(LA23_35>='\u000E' && LA23_35<='\u001F')||LA23_35=='!'||LA23_35=='$'||LA23_35=='&'||LA23_35=='+'||LA23_35=='/'||LA23_35==';'||LA23_35=='='||LA23_35=='?'||(LA23_35>='A' && LA23_35<='D')||(LA23_35>='F' && LA23_35<='Z')||(LA23_35>='^' && LA23_35<='d')||(LA23_35>='f' && LA23_35<='z')||(LA23_35>='~' && LA23_35<='\uFFFF')) ) {s = 28;}\r
\r
- else if ( (LA23_0=='c') ) {s = 20;}\r
+ else s = 32;\r
\r
- else if ( (LA23_0=='i') ) {s = 21;}\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 15 : \r
+ int LA23_7 = input.LA(1);\r
\r
- else if ( (LA23_0=='e') ) {s = 22;}\r
+ s = -1;\r
+ if ( ((LA23_7>='0' && LA23_7<='9')) ) {s = 35;}\r
\r
- else if ( (LA23_0=='r') ) {s = 23;}\r
+ else if ( (LA23_7=='.') ) {s = 33;}\r
\r
- else if ( (LA23_0=='b') ) {s = 24;}\r
+ else if ( (LA23_7=='E'||LA23_7=='e') ) {s = 34;}\r
\r
- else if ( (LA23_0=='d') ) {s = 25;}\r
+ else if ( ((LA23_7>='\u0000' && LA23_7<='\b')||(LA23_7>='\u000B' && LA23_7<='\f')||(LA23_7>='\u000E' && LA23_7<='\u001F')||LA23_7=='!'||LA23_7=='$'||LA23_7=='&'||LA23_7=='+'||LA23_7=='/'||LA23_7==';'||LA23_7=='='||LA23_7=='?'||(LA23_7>='A' && LA23_7<='D')||(LA23_7>='F' && LA23_7<='Z')||(LA23_7>='^' && LA23_7<='d')||(LA23_7>='f' && LA23_7<='z')||(LA23_7>='~' && LA23_7<='\uFFFF')) ) {s = 28;}\r
\r
- else if ( (LA23_0=='p') ) {s = 26;}\r
+ else s = 32;\r
\r
- else if ( (LA23_0=='m') ) {s = 27;}\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 16 : \r
+ int LA23_33 = input.LA(1);\r
\r
- else if ( ((LA23_0>='\u0000' && LA23_0<='\b')||(LA23_0>='\u000B' && LA23_0<='\f')||(LA23_0>='\u000E' && LA23_0<='\u001F')||LA23_0=='!'||LA23_0=='$'||LA23_0=='&'||LA23_0=='+'||LA23_0=='/'||LA23_0==';'||LA23_0=='='||LA23_0=='?'||(LA23_0>='A' && LA23_0<='Z')||(LA23_0>='^' && LA23_0<='a')||(LA23_0>='f' && LA23_0<='h')||(LA23_0>='j' && LA23_0<='l')||LA23_0=='n'||LA23_0=='q'||(LA23_0>='s' && LA23_0<='z')||(LA23_0>='~' && LA23_0<='\uFFFF')) ) {s = 28;}\r
+ s = -1;\r
+ if ( ((LA23_33>='0' && LA23_33<='9')) ) {s = 48;}\r
\r
- else if ( (LA23_0=='\t'||LA23_0==' ') ) {s = 29;}\r
+ else if ( ((LA23_33>='\u0000' && LA23_33<='\b')||(LA23_33>='\u000B' && LA23_33<='\f')||(LA23_33>='\u000E' && LA23_33<='\u001F')||LA23_33=='!'||LA23_33=='$'||LA23_33=='&'||LA23_33=='+'||LA23_33=='/'||LA23_33==';'||LA23_33=='='||LA23_33=='?'||(LA23_33>='A' && LA23_33<='Z')||(LA23_33>='^' && LA23_33<='z')||(LA23_33>='~' && LA23_33<='\uFFFF')) ) {s = 28;}\r
\r
- \r
- input.seek(index23_0);\r
if ( s>=0 ) return s;\r
break;\r
case 17 : \r
- int LA23_56 = input.LA(1);\r
+ int LA23_112 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA23_56>='\u0000' && LA23_56<='\b')||(LA23_56>='\u000B' && LA23_56<='\f')||(LA23_56>='\u000E' && LA23_56<='\u001F')||LA23_56=='!'||LA23_56=='$'||LA23_56=='&'||LA23_56=='+'||(LA23_56>='.' && LA23_56<='9')||LA23_56==';'||LA23_56=='='||LA23_56=='?'||(LA23_56>='A' && LA23_56<='Z')||(LA23_56>='^' && LA23_56<='z')||(LA23_56>='~' && LA23_56<='\uFFFF')) ) {s = 28;}\r
+ if ( ((LA23_112>='\u0000' && LA23_112<='\b')||(LA23_112>='\u000B' && LA23_112<='\f')||(LA23_112>='\u000E' && LA23_112<='\u001F')||LA23_112=='!'||LA23_112=='$'||LA23_112=='&'||LA23_112=='+'||(LA23_112>='.' && LA23_112<='9')||LA23_112==';'||LA23_112=='='||LA23_112=='?'||(LA23_112>='A' && LA23_112<='Z')||(LA23_112>='^' && LA23_112<='z')||(LA23_112>='~' && LA23_112<='\uFFFF')) ) {s = 28;}\r
\r
- else s = 67;\r
+ else s = 114;\r
\r
if ( s>=0 ) return s;\r
break;\r
-// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 SilkSchema.g 2009-07-08 15:38:41\r
+// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 SilkSchema.g 2009-07-08 19:54:25\r
\r
/*--------------------------------------------------------------------------\r
* Copyright 2009 Taro L. Saito\r
\r
public class SilkSchemaParser extends Parser {\r
public static final String[] tokenNames = new String[] {\r
- "<invalid>", "<EOR>", "<DOWN>", "<UP>", "Schema", "Module", "ClassDef", "Name", "Parent", "Mixin", "Attribute", "IsArray", "TypeName", "DefaultValue", "AllIncluded", "TargetClass", "Function", "Argument", "LineBreakChar", "Preamble", "LineComment", "LineBreak", "Digit", "Letter", "HexDigit", "UnicodeChar", "EscapeSequence", "StringChar", "StringChar_s", "String", "Integer", "Frac", "Exp", "Double", "LBrace", "RBrace", "LBracket", "RBracket", "Lt", "Dot", "Comma", "LParen", "RParen", "Star", "UnsafeUnicodeChar", "NonWhiteSpaceChar", "SymbolChars", "Symbol", "Class", "Includes", "End", "Relation", "Index", "BelongsTo", "Default", "Projection", "OrderBy", "SafeFirstLetter", "SafeLetter", "ModuleName", "WhiteSpaces", "ModuleDef", "WhiteSpace", "QNameChar", "QName", "'on'"\r
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "Schema", "Module", "ClassDef", "Name", "Parent", "Mixin", "Attribute", "IsArray", "TypeName", "DefaultValue", "AllIncluded", "TargetClass", "Function", "Argument", "LineBreakChar", "Preamble", "LineComment", "LineBreak", "Digit", "Letter", "HexDigit", "UnicodeChar", "EscapeSequence", "StringChar", "StringChar_s", "String", "Integer", "Frac", "Exp", "Double", "LBrace", "RBrace", "LBracket", "RBracket", "Lt", "Dot", "Comma", "LParen", "RParen", "Star", "UnsafeUnicodeChar", "NonWhiteSpaceChar", "SymbolChars", "Symbol", "Class", "Includes", "End", "Relation", "Index", "BelongsTo", "Default", "Projection", "OrderBy", "On", "SafeFirstLetter", "SafeLetter", "ModuleName", "WhiteSpaces", "ModuleDef", "WhiteSpace", "QNameChar", "QName"\r
};\r
public static final int TargetClass=15;\r
public static final int Includes=49;\r
public static final int HexDigit=24;\r
public static final int Symbol=47;\r
public static final int OrderBy=56;\r
- public static final int T__65=65;\r
public static final int Default=54;\r
public static final int Argument=17;\r
+ public static final int On=57;\r
public static final int Index=52;\r
public static final int Module=5;\r
public static final int Letter=23;\r
public static final int Integer=30;\r
public static final int Relation=51;\r
public static final int Mixin=9;\r
- public static final int WhiteSpace=62;\r
+ public static final int WhiteSpace=63;\r
public static final int ClassDef=6;\r
public static final int LineComment=20;\r
- public static final int ModuleName=59;\r
+ public static final int ModuleName=60;\r
public static final int Projection=55;\r
public static final int BelongsTo=53;\r
- public static final int SafeFirstLetter=57;\r
+ public static final int SafeFirstLetter=58;\r
public static final int Star=43;\r
public static final int Preamble=19;\r
public static final int Exp=32;\r
- public static final int QNameChar=63;\r
+ public static final int QNameChar=64;\r
public static final int RParen=42;\r
public static final int UnicodeChar=25;\r
public static final int StringChar=27;\r
public static final int LineBreak=21;\r
public static final int Function=16;\r
public static final int Name=7;\r
- public static final int ModuleDef=61;\r
+ public static final int ModuleDef=62;\r
public static final int LParen=41;\r
public static final int String=29;\r
- public static final int SafeLetter=58;\r
+ public static final int SafeLetter=59;\r
public static final int LineBreakChar=18;\r
public static final int IsArray=11;\r
- public static final int QName=64;\r
+ public static final int QName=65;\r
public static final int EOF=-1;\r
public static final int StringChar_s=28;\r
public static final int UnsafeUnicodeChar=44;\r
public static final int Lt=38;\r
public static final int Parent=8;\r
public static final int TypeName=12;\r
- public static final int WhiteSpaces=60;\r
+ public static final int WhiteSpaces=61;\r
\r
// delegates\r
// delegators\r
};\r
\r
// $ANTLR start "schema"\r
- // SilkSchema.g:192:1: schema : ( Preamble )? ( schemaElement )* -> ^( Schema ( Preamble )? ( schemaElement )* ) ;\r
+ // SilkSchema.g:193:1: schema : ( Preamble )? ( schemaElement )* -> ^( Schema ( Preamble )? ( schemaElement )* ) ;\r
public final SilkSchemaParser.schema_return schema() throws RecognitionException {\r
SilkSchemaParser.schema_return retval = new SilkSchemaParser.schema_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_Preamble=new RewriteRuleTokenStream(adaptor,"token Preamble");\r
RewriteRuleSubtreeStream stream_schemaElement=new RewriteRuleSubtreeStream(adaptor,"rule schemaElement");\r
try {\r
- // SilkSchema.g:192:7: ( ( Preamble )? ( schemaElement )* -> ^( Schema ( Preamble )? ( schemaElement )* ) )\r
- // SilkSchema.g:192:10: ( Preamble )? ( schemaElement )*\r
+ // SilkSchema.g:193:7: ( ( Preamble )? ( schemaElement )* -> ^( Schema ( Preamble )? ( schemaElement )* ) )\r
+ // SilkSchema.g:193:10: ( Preamble )? ( schemaElement )*\r
{\r
- // SilkSchema.g:192:10: ( Preamble )?\r
+ // SilkSchema.g:193:10: ( Preamble )?\r
int alt1=2;\r
int LA1_0 = input.LA(1);\r
\r
}\r
switch (alt1) {\r
case 1 :\r
- // SilkSchema.g:192:10: Preamble\r
+ // SilkSchema.g:193:10: Preamble\r
{\r
- Preamble1=(Token)match(input,Preamble,FOLLOW_Preamble_in_schema873); \r
+ Preamble1=(Token)match(input,Preamble,FOLLOW_Preamble_in_schema879); \r
stream_Preamble.add(Preamble1);\r
\r
\r
\r
}\r
\r
- // SilkSchema.g:192:20: ( schemaElement )*\r
+ // SilkSchema.g:193:20: ( schemaElement )*\r
loop2:\r
do {\r
int alt2=2;\r
\r
switch (alt2) {\r
case 1 :\r
- // SilkSchema.g:192:20: schemaElement\r
+ // SilkSchema.g:193:20: schemaElement\r
{\r
- pushFollow(FOLLOW_schemaElement_in_schema876);\r
+ pushFollow(FOLLOW_schemaElement_in_schema882);\r
schemaElement2=schemaElement();\r
\r
state._fsp--;\r
\r
\r
// AST REWRITE\r
- // elements: Preamble, schemaElement\r
+ // elements: schemaElement, Preamble\r
// token labels: \r
// rule labels: retval\r
// token list labels: \r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 192:36: -> ^( Schema ( Preamble )? ( schemaElement )* )\r
+ // 193:36: -> ^( Schema ( Preamble )? ( schemaElement )* )\r
{\r
- // SilkSchema.g:192:39: ^( Schema ( Preamble )? ( schemaElement )* )\r
+ // SilkSchema.g:193:39: ^( Schema ( Preamble )? ( schemaElement )* )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(Schema, "Schema"), root_1);\r
\r
- // SilkSchema.g:192:48: ( Preamble )?\r
+ // SilkSchema.g:193:48: ( Preamble )?\r
if ( stream_Preamble.hasNext() ) {\r
adaptor.addChild(root_1, stream_Preamble.nextNode());\r
\r
}\r
stream_Preamble.reset();\r
- // SilkSchema.g:192:58: ( schemaElement )*\r
+ // SilkSchema.g:193:58: ( schemaElement )*\r
while ( stream_schemaElement.hasNext() ) {\r
adaptor.addChild(root_1, stream_schemaElement.nextTree());\r
\r
};\r
\r
// $ANTLR start "schemaElement"\r
- // SilkSchema.g:195:1: schemaElement : ( classDefinition | projectionDef | moduleDefinition );\r
+ // SilkSchema.g:196:1: schemaElement : ( classDefinition | projectionDef | moduleDefinition );\r
public final SilkSchemaParser.schemaElement_return schemaElement() throws RecognitionException {\r
SilkSchemaParser.schemaElement_return retval = new SilkSchemaParser.schemaElement_return();\r
retval.start = input.LT(1);\r
\r
\r
try {\r
- // SilkSchema.g:196:3: ( classDefinition | projectionDef | moduleDefinition )\r
+ // SilkSchema.g:197:3: ( classDefinition | projectionDef | moduleDefinition )\r
int alt3=3;\r
switch ( input.LA(1) ) {\r
case Class:\r
\r
switch (alt3) {\r
case 1 :\r
- // SilkSchema.g:196:5: classDefinition\r
+ // SilkSchema.g:197:5: classDefinition\r
{\r
root_0 = (Object)adaptor.nil();\r
\r
- pushFollow(FOLLOW_classDefinition_in_schemaElement904);\r
+ pushFollow(FOLLOW_classDefinition_in_schemaElement910);\r
classDefinition3=classDefinition();\r
\r
state._fsp--;\r
}\r
break;\r
case 2 :\r
- // SilkSchema.g:197:5: projectionDef\r
+ // SilkSchema.g:198:5: projectionDef\r
{\r
root_0 = (Object)adaptor.nil();\r
\r
- pushFollow(FOLLOW_projectionDef_in_schemaElement911);\r
+ pushFollow(FOLLOW_projectionDef_in_schemaElement917);\r
projectionDef4=projectionDef();\r
\r
state._fsp--;\r
}\r
break;\r
case 3 :\r
- // SilkSchema.g:198:5: moduleDefinition\r
+ // SilkSchema.g:199:5: moduleDefinition\r
{\r
root_0 = (Object)adaptor.nil();\r
\r
- pushFollow(FOLLOW_moduleDefinition_in_schemaElement917);\r
+ pushFollow(FOLLOW_moduleDefinition_in_schemaElement923);\r
moduleDefinition5=moduleDefinition();\r
\r
state._fsp--;\r
};\r
\r
// $ANTLR start "moduleDefinition"\r
- // SilkSchema.g:202:1: moduleDefinition : ModuleDef ( schemaElement )* End -> ^( Module Name[$ModuleDef.text] ( schemaElement )* ) ;\r
+ // SilkSchema.g:203:1: moduleDefinition : ModuleDef ( schemaElement )* End -> ^( Module Name[$ModuleDef.text] ( schemaElement )* ) ;\r
public final SilkSchemaParser.moduleDefinition_return moduleDefinition() throws RecognitionException {\r
SilkSchemaParser.moduleDefinition_return retval = new SilkSchemaParser.moduleDefinition_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_ModuleDef=new RewriteRuleTokenStream(adaptor,"token ModuleDef");\r
RewriteRuleSubtreeStream stream_schemaElement=new RewriteRuleSubtreeStream(adaptor,"rule schemaElement");\r
try {\r
- // SilkSchema.g:202:17: ( ModuleDef ( schemaElement )* End -> ^( Module Name[$ModuleDef.text] ( schemaElement )* ) )\r
- // SilkSchema.g:203:2: ModuleDef ( schemaElement )* End\r
+ // SilkSchema.g:203:17: ( ModuleDef ( schemaElement )* End -> ^( Module Name[$ModuleDef.text] ( schemaElement )* ) )\r
+ // SilkSchema.g:204:2: ModuleDef ( schemaElement )* End\r
{\r
- ModuleDef6=(Token)match(input,ModuleDef,FOLLOW_ModuleDef_in_moduleDefinition929); \r
+ ModuleDef6=(Token)match(input,ModuleDef,FOLLOW_ModuleDef_in_moduleDefinition935); \r
stream_ModuleDef.add(ModuleDef6);\r
\r
- // SilkSchema.g:203:12: ( schemaElement )*\r
+ // SilkSchema.g:204:12: ( schemaElement )*\r
loop4:\r
do {\r
int alt4=2;\r
\r
switch (alt4) {\r
case 1 :\r
- // SilkSchema.g:203:12: schemaElement\r
+ // SilkSchema.g:204:12: schemaElement\r
{\r
- pushFollow(FOLLOW_schemaElement_in_moduleDefinition931);\r
+ pushFollow(FOLLOW_schemaElement_in_moduleDefinition937);\r
schemaElement7=schemaElement();\r
\r
state._fsp--;\r
}\r
} while (true);\r
\r
- End8=(Token)match(input,End,FOLLOW_End_in_moduleDefinition934); \r
+ End8=(Token)match(input,End,FOLLOW_End_in_moduleDefinition940); \r
stream_End.add(End8);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 204:2: -> ^( Module Name[$ModuleDef.text] ( schemaElement )* )\r
+ // 205:2: -> ^( Module Name[$ModuleDef.text] ( schemaElement )* )\r
{\r
- // SilkSchema.g:204:5: ^( Module Name[$ModuleDef.text] ( schemaElement )* )\r
+ // SilkSchema.g:205:5: ^( Module Name[$ModuleDef.text] ( schemaElement )* )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(Module, "Module"), root_1);\r
\r
adaptor.addChild(root_1, (Object)adaptor.create(Name, (ModuleDef6!=null?ModuleDef6.getText():null)));\r
- // SilkSchema.g:204:36: ( schemaElement )*\r
+ // SilkSchema.g:205:36: ( schemaElement )*\r
while ( stream_schemaElement.hasNext() ) {\r
adaptor.addChild(root_1, stream_schemaElement.nextTree());\r
\r
};\r
\r
// $ANTLR start "classDefinition"\r
- // SilkSchema.g:207:1: classDefinition : ( Class QName ( inheritance )? ( classBody )? End -> ^( ClassDef Name[$QName.text] ( inheritance )? ( classBody )? ) | Relation QName ( inheritance )? ( classBody )? End -> ^( Relation Name[$QName.text] ( inheritance )? ( classBody )? ) );\r
+ // SilkSchema.g:208:1: classDefinition : ( Class QName ( inheritance )? ( classBody )? End -> ^( ClassDef Name[$QName.text] ( inheritance )? ( classBody )? ) | Relation QName ( inheritance )? ( classBody )? End -> ^( Relation Name[$QName.text] ( inheritance )? ( classBody )? ) );\r
public final SilkSchemaParser.classDefinition_return classDefinition() throws RecognitionException {\r
SilkSchemaParser.classDefinition_return retval = new SilkSchemaParser.classDefinition_return();\r
retval.start = input.LT(1);\r
RewriteRuleSubtreeStream stream_classBody=new RewriteRuleSubtreeStream(adaptor,"rule classBody");\r
RewriteRuleSubtreeStream stream_inheritance=new RewriteRuleSubtreeStream(adaptor,"rule inheritance");\r
try {\r
- // SilkSchema.g:208:3: ( Class QName ( inheritance )? ( classBody )? End -> ^( ClassDef Name[$QName.text] ( inheritance )? ( classBody )? ) | Relation QName ( inheritance )? ( classBody )? End -> ^( Relation Name[$QName.text] ( inheritance )? ( classBody )? ) )\r
+ // SilkSchema.g:209:3: ( Class QName ( inheritance )? ( classBody )? End -> ^( ClassDef Name[$QName.text] ( inheritance )? ( classBody )? ) | Relation QName ( inheritance )? ( classBody )? End -> ^( Relation Name[$QName.text] ( inheritance )? ( classBody )? ) )\r
int alt9=2;\r
int LA9_0 = input.LA(1);\r
\r
}\r
switch (alt9) {\r
case 1 :\r
- // SilkSchema.g:208:5: Class QName ( inheritance )? ( classBody )? End\r
+ // SilkSchema.g:209:5: Class QName ( inheritance )? ( classBody )? End\r
{\r
- Class9=(Token)match(input,Class,FOLLOW_Class_in_classDefinition966); \r
+ Class9=(Token)match(input,Class,FOLLOW_Class_in_classDefinition972); \r
stream_Class.add(Class9);\r
\r
- QName10=(Token)match(input,QName,FOLLOW_QName_in_classDefinition968); \r
+ QName10=(Token)match(input,QName,FOLLOW_QName_in_classDefinition974); \r
stream_QName.add(QName10);\r
\r
- // SilkSchema.g:208:17: ( inheritance )?\r
+ // SilkSchema.g:209:17: ( inheritance )?\r
int alt5=2;\r
int LA5_0 = input.LA(1);\r
\r
}\r
switch (alt5) {\r
case 1 :\r
- // SilkSchema.g:208:17: inheritance\r
+ // SilkSchema.g:209:17: inheritance\r
{\r
- pushFollow(FOLLOW_inheritance_in_classDefinition970);\r
+ pushFollow(FOLLOW_inheritance_in_classDefinition976);\r
inheritance11=inheritance();\r
\r
state._fsp--;\r
\r
}\r
\r
- // SilkSchema.g:208:30: ( classBody )?\r
+ // SilkSchema.g:209:30: ( classBody )?\r
int alt6=2;\r
int LA6_0 = input.LA(1);\r
\r
}\r
switch (alt6) {\r
case 1 :\r
- // SilkSchema.g:208:30: classBody\r
+ // SilkSchema.g:209:30: classBody\r
{\r
- pushFollow(FOLLOW_classBody_in_classDefinition973);\r
+ pushFollow(FOLLOW_classBody_in_classDefinition979);\r
classBody12=classBody();\r
\r
state._fsp--;\r
\r
}\r
\r
- End13=(Token)match(input,End,FOLLOW_End_in_classDefinition976); \r
+ End13=(Token)match(input,End,FOLLOW_End_in_classDefinition982); \r
stream_End.add(End13);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 208:45: -> ^( ClassDef Name[$QName.text] ( inheritance )? ( classBody )? )\r
+ // 209:45: -> ^( ClassDef Name[$QName.text] ( inheritance )? ( classBody )? )\r
{\r
- // SilkSchema.g:208:48: ^( ClassDef Name[$QName.text] ( inheritance )? ( classBody )? )\r
+ // SilkSchema.g:209:48: ^( ClassDef Name[$QName.text] ( inheritance )? ( classBody )? )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ClassDef, "ClassDef"), root_1);\r
\r
adaptor.addChild(root_1, (Object)adaptor.create(Name, (QName10!=null?QName10.getText():null)));\r
- // SilkSchema.g:208:77: ( inheritance )?\r
+ // SilkSchema.g:209:77: ( inheritance )?\r
if ( stream_inheritance.hasNext() ) {\r
adaptor.addChild(root_1, stream_inheritance.nextTree());\r
\r
}\r
stream_inheritance.reset();\r
- // SilkSchema.g:208:90: ( classBody )?\r
+ // SilkSchema.g:209:90: ( classBody )?\r
if ( stream_classBody.hasNext() ) {\r
adaptor.addChild(root_1, stream_classBody.nextTree());\r
\r
}\r
break;\r
case 2 :\r
- // SilkSchema.g:209:7: Relation QName ( inheritance )? ( classBody )? End\r
+ // SilkSchema.g:210:7: Relation QName ( inheritance )? ( classBody )? End\r
{\r
- Relation14=(Token)match(input,Relation,FOLLOW_Relation_in_classDefinition999); \r
+ Relation14=(Token)match(input,Relation,FOLLOW_Relation_in_classDefinition1005); \r
stream_Relation.add(Relation14);\r
\r
- QName15=(Token)match(input,QName,FOLLOW_QName_in_classDefinition1001); \r
+ QName15=(Token)match(input,QName,FOLLOW_QName_in_classDefinition1007); \r
stream_QName.add(QName15);\r
\r
- // SilkSchema.g:209:22: ( inheritance )?\r
+ // SilkSchema.g:210:22: ( inheritance )?\r
int alt7=2;\r
int LA7_0 = input.LA(1);\r
\r
}\r
switch (alt7) {\r
case 1 :\r
- // SilkSchema.g:209:22: inheritance\r
+ // SilkSchema.g:210:22: inheritance\r
{\r
- pushFollow(FOLLOW_inheritance_in_classDefinition1003);\r
+ pushFollow(FOLLOW_inheritance_in_classDefinition1009);\r
inheritance16=inheritance();\r
\r
state._fsp--;\r
\r
}\r
\r
- // SilkSchema.g:209:35: ( classBody )?\r
+ // SilkSchema.g:210:35: ( classBody )?\r
int alt8=2;\r
int LA8_0 = input.LA(1);\r
\r
}\r
switch (alt8) {\r
case 1 :\r
- // SilkSchema.g:209:35: classBody\r
+ // SilkSchema.g:210:35: classBody\r
{\r
- pushFollow(FOLLOW_classBody_in_classDefinition1006);\r
+ pushFollow(FOLLOW_classBody_in_classDefinition1012);\r
classBody17=classBody();\r
\r
state._fsp--;\r
\r
}\r
\r
- End18=(Token)match(input,End,FOLLOW_End_in_classDefinition1009); \r
+ End18=(Token)match(input,End,FOLLOW_End_in_classDefinition1015); \r
stream_End.add(End18);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 209:50: -> ^( Relation Name[$QName.text] ( inheritance )? ( classBody )? )\r
+ // 210:50: -> ^( Relation Name[$QName.text] ( inheritance )? ( classBody )? )\r
{\r
- // SilkSchema.g:209:53: ^( Relation Name[$QName.text] ( inheritance )? ( classBody )? )\r
+ // SilkSchema.g:210:53: ^( Relation Name[$QName.text] ( inheritance )? ( classBody )? )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot(stream_Relation.nextNode(), root_1);\r
\r
adaptor.addChild(root_1, (Object)adaptor.create(Name, (QName15!=null?QName15.getText():null)));\r
- // SilkSchema.g:209:82: ( inheritance )?\r
+ // SilkSchema.g:210:82: ( inheritance )?\r
if ( stream_inheritance.hasNext() ) {\r
adaptor.addChild(root_1, stream_inheritance.nextTree());\r
\r
}\r
stream_inheritance.reset();\r
- // SilkSchema.g:209:95: ( classBody )?\r
+ // SilkSchema.g:210:95: ( classBody )?\r
if ( stream_classBody.hasNext() ) {\r
adaptor.addChild(root_1, stream_classBody.nextTree());\r
\r
};\r
\r
// $ANTLR start "classBody"\r
- // SilkSchema.g:212:1: classBody : ( belongsToStatement | includeStatement | attributes | indexStatement )+ ;\r
+ // SilkSchema.g:213:1: classBody : ( belongsToStatement | includeStatement | attributes | indexStatement )+ ;\r
public final SilkSchemaParser.classBody_return classBody() throws RecognitionException {\r
SilkSchemaParser.classBody_return retval = new SilkSchemaParser.classBody_return();\r
retval.start = input.LT(1);\r
\r
\r
try {\r
- // SilkSchema.g:212:10: ( ( belongsToStatement | includeStatement | attributes | indexStatement )+ )\r
- // SilkSchema.g:212:12: ( belongsToStatement | includeStatement | attributes | indexStatement )+\r
+ // SilkSchema.g:213:10: ( ( belongsToStatement | includeStatement | attributes | indexStatement )+ )\r
+ // SilkSchema.g:213:12: ( belongsToStatement | includeStatement | attributes | indexStatement )+\r
{\r
root_0 = (Object)adaptor.nil();\r
\r
- // SilkSchema.g:212:12: ( belongsToStatement | includeStatement | attributes | indexStatement )+\r
+ // SilkSchema.g:213:12: ( belongsToStatement | includeStatement | attributes | indexStatement )+\r
int cnt10=0;\r
loop10:\r
do {\r
\r
switch (alt10) {\r
case 1 :\r
- // SilkSchema.g:212:13: belongsToStatement\r
+ // SilkSchema.g:213:13: belongsToStatement\r
{\r
- pushFollow(FOLLOW_belongsToStatement_in_classBody1038);\r
+ pushFollow(FOLLOW_belongsToStatement_in_classBody1044);\r
belongsToStatement19=belongsToStatement();\r
\r
state._fsp--;\r
}\r
break;\r
case 2 :\r
- // SilkSchema.g:212:34: includeStatement\r
+ // SilkSchema.g:213:34: includeStatement\r
{\r
- pushFollow(FOLLOW_includeStatement_in_classBody1042);\r
+ pushFollow(FOLLOW_includeStatement_in_classBody1048);\r
includeStatement20=includeStatement();\r
\r
state._fsp--;\r
}\r
break;\r
case 3 :\r
- // SilkSchema.g:212:53: attributes\r
+ // SilkSchema.g:213:53: attributes\r
{\r
- pushFollow(FOLLOW_attributes_in_classBody1046);\r
+ pushFollow(FOLLOW_attributes_in_classBody1052);\r
attributes21=attributes();\r
\r
state._fsp--;\r
}\r
break;\r
case 4 :\r
- // SilkSchema.g:212:66: indexStatement\r
+ // SilkSchema.g:213:66: indexStatement\r
{\r
- pushFollow(FOLLOW_indexStatement_in_classBody1050);\r
+ pushFollow(FOLLOW_indexStatement_in_classBody1056);\r
indexStatement22=indexStatement();\r
\r
state._fsp--;\r
};\r
\r
// $ANTLR start "projectionDef"\r
- // SilkSchema.g:215:1: projectionDef : Projection c= QName 'on' t= QName ( projectColumn ( ( Comma )? projectColumn )* ) ( orderByColumns )? End -> ^( Projection Name[$c.text] TargetClass[$t.text] ( projectColumn )+ ( orderByColumns )? ) ;\r
+ // SilkSchema.g:216:1: projectionDef : Projection c= QName 'on' t= QName ( projectColumn ( ( Comma )? projectColumn )* ) ( orderByColumns )? End -> ^( Projection Name[$c.text] TargetClass[$t.text] ( projectColumn )+ ( orderByColumns )? ) ;\r
public final SilkSchemaParser.projectionDef_return projectionDef() throws RecognitionException {\r
SilkSchemaParser.projectionDef_return retval = new SilkSchemaParser.projectionDef_return();\r
retval.start = input.LT(1);\r
Object string_literal24_tree=null;\r
Object Comma26_tree=null;\r
Object End29_tree=null;\r
- RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65");\r
RewriteRuleTokenStream stream_Projection=new RewriteRuleTokenStream(adaptor,"token Projection");\r
RewriteRuleTokenStream stream_Comma=new RewriteRuleTokenStream(adaptor,"token Comma");\r
RewriteRuleTokenStream stream_End=new RewriteRuleTokenStream(adaptor,"token End");\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
+ RewriteRuleTokenStream stream_On=new RewriteRuleTokenStream(adaptor,"token On");\r
RewriteRuleSubtreeStream stream_projectColumn=new RewriteRuleSubtreeStream(adaptor,"rule projectColumn");\r
RewriteRuleSubtreeStream stream_orderByColumns=new RewriteRuleSubtreeStream(adaptor,"rule orderByColumns");\r
try {\r
- // SilkSchema.g:215:14: ( Projection c= QName 'on' t= QName ( projectColumn ( ( Comma )? projectColumn )* ) ( orderByColumns )? End -> ^( Projection Name[$c.text] TargetClass[$t.text] ( projectColumn )+ ( orderByColumns )? ) )\r
- // SilkSchema.g:215:16: Projection c= QName 'on' t= QName ( projectColumn ( ( Comma )? projectColumn )* ) ( orderByColumns )? End\r
+ // SilkSchema.g:216:14: ( Projection c= QName 'on' t= QName ( projectColumn ( ( Comma )? projectColumn )* ) ( orderByColumns )? End -> ^( Projection Name[$c.text] TargetClass[$t.text] ( projectColumn )+ ( orderByColumns )? ) )\r
+ // SilkSchema.g:216:16: Projection c= QName 'on' t= QName ( projectColumn ( ( Comma )? projectColumn )* ) ( orderByColumns )? End\r
{\r
- Projection23=(Token)match(input,Projection,FOLLOW_Projection_in_projectionDef1060); \r
+ Projection23=(Token)match(input,Projection,FOLLOW_Projection_in_projectionDef1066); \r
stream_Projection.add(Projection23);\r
\r
- c=(Token)match(input,QName,FOLLOW_QName_in_projectionDef1064); \r
+ c=(Token)match(input,QName,FOLLOW_QName_in_projectionDef1070); \r
stream_QName.add(c);\r
\r
- string_literal24=(Token)match(input,65,FOLLOW_65_in_projectionDef1066); \r
- stream_65.add(string_literal24);\r
+ string_literal24=(Token)match(input,On,FOLLOW_On_in_projectionDef1072); \r
+ stream_On.add(string_literal24);\r
\r
- t=(Token)match(input,QName,FOLLOW_QName_in_projectionDef1070); \r
+ t=(Token)match(input,QName,FOLLOW_QName_in_projectionDef1076); \r
stream_QName.add(t);\r
\r
- // SilkSchema.g:215:48: ( projectColumn ( ( Comma )? projectColumn )* )\r
- // SilkSchema.g:215:49: projectColumn ( ( Comma )? projectColumn )*\r
+ // SilkSchema.g:216:48: ( projectColumn ( ( Comma )? projectColumn )* )\r
+ // SilkSchema.g:216:49: projectColumn ( ( Comma )? projectColumn )*\r
{\r
- pushFollow(FOLLOW_projectColumn_in_projectionDef1073);\r
+ pushFollow(FOLLOW_projectColumn_in_projectionDef1079);\r
projectColumn25=projectColumn();\r
\r
state._fsp--;\r
\r
stream_projectColumn.add(projectColumn25.getTree());\r
- // SilkSchema.g:215:63: ( ( Comma )? projectColumn )*\r
+ // SilkSchema.g:216:63: ( ( Comma )? projectColumn )*\r
loop12:\r
do {\r
int alt12=2;\r
\r
switch (alt12) {\r
case 1 :\r
- // SilkSchema.g:215:64: ( Comma )? projectColumn\r
+ // SilkSchema.g:216:64: ( Comma )? projectColumn\r
{\r
- // SilkSchema.g:215:64: ( Comma )?\r
+ // SilkSchema.g:216:64: ( Comma )?\r
int alt11=2;\r
int LA11_0 = input.LA(1);\r
\r
}\r
switch (alt11) {\r
case 1 :\r
- // SilkSchema.g:215:64: Comma\r
+ // SilkSchema.g:216:64: Comma\r
{\r
- Comma26=(Token)match(input,Comma,FOLLOW_Comma_in_projectionDef1076); \r
+ Comma26=(Token)match(input,Comma,FOLLOW_Comma_in_projectionDef1082); \r
stream_Comma.add(Comma26);\r
\r
\r
\r
}\r
\r
- pushFollow(FOLLOW_projectColumn_in_projectionDef1079);\r
+ pushFollow(FOLLOW_projectColumn_in_projectionDef1085);\r
projectColumn27=projectColumn();\r
\r
state._fsp--;\r
\r
}\r
\r
- // SilkSchema.g:215:88: ( orderByColumns )?\r
+ // SilkSchema.g:216:88: ( orderByColumns )?\r
int alt13=2;\r
int LA13_0 = input.LA(1);\r
\r
}\r
switch (alt13) {\r
case 1 :\r
- // SilkSchema.g:215:88: orderByColumns\r
+ // SilkSchema.g:216:88: orderByColumns\r
{\r
- pushFollow(FOLLOW_orderByColumns_in_projectionDef1084);\r
+ pushFollow(FOLLOW_orderByColumns_in_projectionDef1090);\r
orderByColumns28=orderByColumns();\r
\r
state._fsp--;\r
\r
}\r
\r
- End29=(Token)match(input,End,FOLLOW_End_in_projectionDef1087); \r
+ End29=(Token)match(input,End,FOLLOW_End_in_projectionDef1093); \r
stream_End.add(End29);\r
\r
\r
\r
// AST REWRITE\r
- // elements: Projection, orderByColumns, projectColumn\r
+ // elements: orderByColumns, Projection, projectColumn\r
// token labels: \r
// rule labels: retval\r
// token list labels: \r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 216:2: -> ^( Projection Name[$c.text] TargetClass[$t.text] ( projectColumn )+ ( orderByColumns )? )\r
+ // 217:2: -> ^( Projection Name[$c.text] TargetClass[$t.text] ( projectColumn )+ ( orderByColumns )? )\r
{\r
- // SilkSchema.g:216:5: ^( Projection Name[$c.text] TargetClass[$t.text] ( projectColumn )+ ( orderByColumns )? )\r
+ // SilkSchema.g:217:5: ^( Projection Name[$c.text] TargetClass[$t.text] ( projectColumn )+ ( orderByColumns )? )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot(stream_Projection.nextNode(), root_1);\r
\r
}\r
stream_projectColumn.reset();\r
- // SilkSchema.g:216:68: ( orderByColumns )?\r
+ // SilkSchema.g:217:68: ( orderByColumns )?\r
if ( stream_orderByColumns.hasNext() ) {\r
adaptor.addChild(root_1, stream_orderByColumns.nextTree());\r
\r
};\r
\r
// $ANTLR start "projectColumn"\r
- // SilkSchema.g:218:1: fragment projectColumn : ( QName -> Attribute[$QName.text] | Star -> AllIncluded[\"true\"] | Symbol -> Attribute[$Symbol.text] );\r
+ // SilkSchema.g:219:1: fragment projectColumn : ( QName -> Attribute[$QName.text] | Star -> AllIncluded[\"true\"] | Symbol -> Attribute[$Symbol.text] );\r
public final SilkSchemaParser.projectColumn_return projectColumn() throws RecognitionException {\r
SilkSchemaParser.projectColumn_return retval = new SilkSchemaParser.projectColumn_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
\r
try {\r
- // SilkSchema.g:220:3: ( QName -> Attribute[$QName.text] | Star -> AllIncluded[\"true\"] | Symbol -> Attribute[$Symbol.text] )\r
+ // SilkSchema.g:221:3: ( QName -> Attribute[$QName.text] | Star -> AllIncluded[\"true\"] | Symbol -> Attribute[$Symbol.text] )\r
int alt14=3;\r
switch ( input.LA(1) ) {\r
case QName:\r
\r
switch (alt14) {\r
case 1 :\r
- // SilkSchema.g:220:5: QName\r
+ // SilkSchema.g:221:5: QName\r
{\r
- QName30=(Token)match(input,QName,FOLLOW_QName_in_projectColumn1119); \r
+ QName30=(Token)match(input,QName,FOLLOW_QName_in_projectColumn1125); \r
stream_QName.add(QName30);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 220:12: -> Attribute[$QName.text]\r
+ // 221:12: -> Attribute[$QName.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(Attribute, (QName30!=null?QName30.getText():null)));\r
\r
}\r
break;\r
case 2 :\r
- // SilkSchema.g:221:5: Star\r
+ // SilkSchema.g:222:5: Star\r
{\r
- Star31=(Token)match(input,Star,FOLLOW_Star_in_projectColumn1131); \r
+ Star31=(Token)match(input,Star,FOLLOW_Star_in_projectColumn1137); \r
stream_Star.add(Star31);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 221:10: -> AllIncluded[\"true\"]\r
+ // 222:10: -> AllIncluded[\"true\"]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(AllIncluded, "true"));\r
\r
}\r
break;\r
case 3 :\r
- // SilkSchema.g:222:5: Symbol\r
+ // SilkSchema.g:223:5: Symbol\r
{\r
- Symbol32=(Token)match(input,Symbol,FOLLOW_Symbol_in_projectColumn1143); \r
+ Symbol32=(Token)match(input,Symbol,FOLLOW_Symbol_in_projectColumn1149); \r
stream_Symbol.add(Symbol32);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 222:12: -> Attribute[$Symbol.text]\r
+ // 223:12: -> Attribute[$Symbol.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(Attribute, (Symbol32!=null?Symbol32.getText():null)));\r
\r
};\r
\r
// $ANTLR start "orderByColumns"\r
- // SilkSchema.g:225:1: fragment orderByColumns : OrderBy orderByItem ( Comma orderByItem )* -> ( orderByItem )+ ;\r
+ // SilkSchema.g:226:1: fragment orderByColumns : OrderBy orderByItem ( Comma orderByItem )* -> ( orderByItem )+ ;\r
public final SilkSchemaParser.orderByColumns_return orderByColumns() throws RecognitionException {\r
SilkSchemaParser.orderByColumns_return retval = new SilkSchemaParser.orderByColumns_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_Comma=new RewriteRuleTokenStream(adaptor,"token Comma");\r
RewriteRuleSubtreeStream stream_orderByItem=new RewriteRuleSubtreeStream(adaptor,"rule orderByItem");\r
try {\r
- // SilkSchema.g:227:3: ( OrderBy orderByItem ( Comma orderByItem )* -> ( orderByItem )+ )\r
- // SilkSchema.g:227:5: OrderBy orderByItem ( Comma orderByItem )*\r
+ // SilkSchema.g:228:3: ( OrderBy orderByItem ( Comma orderByItem )* -> ( orderByItem )+ )\r
+ // SilkSchema.g:228:5: OrderBy orderByItem ( Comma orderByItem )*\r
{\r
- OrderBy33=(Token)match(input,OrderBy,FOLLOW_OrderBy_in_orderByColumns1161); \r
+ OrderBy33=(Token)match(input,OrderBy,FOLLOW_OrderBy_in_orderByColumns1167); \r
stream_OrderBy.add(OrderBy33);\r
\r
- pushFollow(FOLLOW_orderByItem_in_orderByColumns1163);\r
+ pushFollow(FOLLOW_orderByItem_in_orderByColumns1169);\r
orderByItem34=orderByItem();\r
\r
state._fsp--;\r
\r
stream_orderByItem.add(orderByItem34.getTree());\r
- // SilkSchema.g:227:25: ( Comma orderByItem )*\r
+ // SilkSchema.g:228:25: ( Comma orderByItem )*\r
loop15:\r
do {\r
int alt15=2;\r
\r
switch (alt15) {\r
case 1 :\r
- // SilkSchema.g:227:26: Comma orderByItem\r
+ // SilkSchema.g:228:26: Comma orderByItem\r
{\r
- Comma35=(Token)match(input,Comma,FOLLOW_Comma_in_orderByColumns1166); \r
+ Comma35=(Token)match(input,Comma,FOLLOW_Comma_in_orderByColumns1172); \r
stream_Comma.add(Comma35);\r
\r
- pushFollow(FOLLOW_orderByItem_in_orderByColumns1168);\r
+ pushFollow(FOLLOW_orderByItem_in_orderByColumns1174);\r
orderByItem36=orderByItem();\r
\r
state._fsp--;\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 227:46: -> ( orderByItem )+\r
+ // 228:46: -> ( orderByItem )+\r
{\r
if ( !(stream_orderByItem.hasNext()) ) {\r
throw new RewriteEarlyExitException();\r
};\r
\r
// $ANTLR start "orderByItem"\r
- // SilkSchema.g:230:1: fragment orderByItem : ( QName -> OrderBy[$QName.text] | Symbol -> OrderBy[$Symbol.text] );\r
+ // SilkSchema.g:231:1: fragment orderByItem : ( QName -> OrderBy[$QName.text] | Symbol -> OrderBy[$Symbol.text] );\r
public final SilkSchemaParser.orderByItem_return orderByItem() throws RecognitionException {\r
SilkSchemaParser.orderByItem_return retval = new SilkSchemaParser.orderByItem_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
\r
try {\r
- // SilkSchema.g:232:3: ( QName -> OrderBy[$QName.text] | Symbol -> OrderBy[$Symbol.text] )\r
+ // SilkSchema.g:233:3: ( QName -> OrderBy[$QName.text] | Symbol -> OrderBy[$Symbol.text] )\r
int alt16=2;\r
int LA16_0 = input.LA(1);\r
\r
}\r
switch (alt16) {\r
case 1 :\r
- // SilkSchema.g:232:5: QName\r
+ // SilkSchema.g:233:5: QName\r
{\r
- QName37=(Token)match(input,QName,FOLLOW_QName_in_orderByItem1188); \r
+ QName37=(Token)match(input,QName,FOLLOW_QName_in_orderByItem1194); \r
stream_QName.add(QName37);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 232:11: -> OrderBy[$QName.text]\r
+ // 233:11: -> OrderBy[$QName.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(OrderBy, (QName37!=null?QName37.getText():null)));\r
\r
}\r
break;\r
case 2 :\r
- // SilkSchema.g:233:5: Symbol\r
+ // SilkSchema.g:234:5: Symbol\r
{\r
- Symbol38=(Token)match(input,Symbol,FOLLOW_Symbol_in_orderByItem1200); \r
+ Symbol38=(Token)match(input,Symbol,FOLLOW_Symbol_in_orderByItem1206); \r
stream_Symbol.add(Symbol38);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 233:12: -> OrderBy[$Symbol.text]\r
+ // 234:12: -> OrderBy[$Symbol.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(OrderBy, (Symbol38!=null?Symbol38.getText():null)));\r
\r
};\r
\r
// $ANTLR start "functionArg"\r
- // SilkSchema.g:237:1: fragment functionArg : Symbol -> Argument[$Symbol.text] ;\r
+ // SilkSchema.g:238:1: fragment functionArg : Symbol -> Argument[$Symbol.text] ;\r
public final SilkSchemaParser.functionArg_return functionArg() throws RecognitionException {\r
SilkSchemaParser.functionArg_return retval = new SilkSchemaParser.functionArg_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_Symbol=new RewriteRuleTokenStream(adaptor,"token Symbol");\r
\r
try {\r
- // SilkSchema.g:238:12: ( Symbol -> Argument[$Symbol.text] )\r
- // SilkSchema.g:238:14: Symbol\r
+ // SilkSchema.g:239:12: ( Symbol -> Argument[$Symbol.text] )\r
+ // SilkSchema.g:239:14: Symbol\r
{\r
- Symbol39=(Token)match(input,Symbol,FOLLOW_Symbol_in_functionArg1216); \r
+ Symbol39=(Token)match(input,Symbol,FOLLOW_Symbol_in_functionArg1222); \r
stream_Symbol.add(Symbol39);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 238:21: -> Argument[$Symbol.text]\r
+ // 239:21: -> Argument[$Symbol.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(Argument, (Symbol39!=null?Symbol39.getText():null)));\r
\r
};\r
\r
// $ANTLR start "belongsToStatement"\r
- // SilkSchema.g:241:1: fragment belongsToStatement : BelongsTo QName -> BelongsTo[$QName.text] ;\r
+ // SilkSchema.g:242:1: fragment belongsToStatement : BelongsTo QName -> BelongsTo[$QName.text] ;\r
public final SilkSchemaParser.belongsToStatement_return belongsToStatement() throws RecognitionException {\r
SilkSchemaParser.belongsToStatement_return retval = new SilkSchemaParser.belongsToStatement_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
\r
try {\r
- // SilkSchema.g:242:19: ( BelongsTo QName -> BelongsTo[$QName.text] )\r
- // SilkSchema.g:242:21: BelongsTo QName\r
+ // SilkSchema.g:243:19: ( BelongsTo QName -> BelongsTo[$QName.text] )\r
+ // SilkSchema.g:243:21: BelongsTo QName\r
{\r
- BelongsTo40=(Token)match(input,BelongsTo,FOLLOW_BelongsTo_in_belongsToStatement1232); \r
+ BelongsTo40=(Token)match(input,BelongsTo,FOLLOW_BelongsTo_in_belongsToStatement1238); \r
stream_BelongsTo.add(BelongsTo40);\r
\r
- QName41=(Token)match(input,QName,FOLLOW_QName_in_belongsToStatement1234); \r
+ QName41=(Token)match(input,QName,FOLLOW_QName_in_belongsToStatement1240); \r
stream_QName.add(QName41);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 242:37: -> BelongsTo[$QName.text]\r
+ // 243:37: -> BelongsTo[$QName.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(BelongsTo, (QName41!=null?QName41.getText():null)));\r
\r
};\r
\r
// $ANTLR start "inheritance"\r
- // SilkSchema.g:244:1: fragment inheritance : Lt QName -> Parent[$QName.text] ;\r
+ // SilkSchema.g:245:1: fragment inheritance : Lt QName -> Parent[$QName.text] ;\r
public final SilkSchemaParser.inheritance_return inheritance() throws RecognitionException {\r
SilkSchemaParser.inheritance_return retval = new SilkSchemaParser.inheritance_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
\r
try {\r
- // SilkSchema.g:245:12: ( Lt QName -> Parent[$QName.text] )\r
- // SilkSchema.g:245:14: Lt QName\r
+ // SilkSchema.g:246:12: ( Lt QName -> Parent[$QName.text] )\r
+ // SilkSchema.g:246:14: Lt QName\r
{\r
- Lt42=(Token)match(input,Lt,FOLLOW_Lt_in_inheritance1252); \r
+ Lt42=(Token)match(input,Lt,FOLLOW_Lt_in_inheritance1258); \r
stream_Lt.add(Lt42);\r
\r
- QName43=(Token)match(input,QName,FOLLOW_QName_in_inheritance1254); \r
+ QName43=(Token)match(input,QName,FOLLOW_QName_in_inheritance1260); \r
stream_QName.add(QName43);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 245:23: -> Parent[$QName.text]\r
+ // 246:23: -> Parent[$QName.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(Parent, (QName43!=null?QName43.getText():null)));\r
\r
};\r
\r
// $ANTLR start "includeStatement"\r
- // SilkSchema.g:247:1: fragment includeStatement : Includes includeItem ( Comma includeItem )* -> ( includeItem )+ ;\r
+ // SilkSchema.g:248:1: fragment includeStatement : Includes includeItem ( Comma includeItem )* -> ( includeItem )+ ;\r
public final SilkSchemaParser.includeStatement_return includeStatement() throws RecognitionException {\r
SilkSchemaParser.includeStatement_return retval = new SilkSchemaParser.includeStatement_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_Comma=new RewriteRuleTokenStream(adaptor,"token Comma");\r
RewriteRuleSubtreeStream stream_includeItem=new RewriteRuleSubtreeStream(adaptor,"rule includeItem");\r
try {\r
- // SilkSchema.g:248:17: ( Includes includeItem ( Comma includeItem )* -> ( includeItem )+ )\r
- // SilkSchema.g:248:19: Includes includeItem ( Comma includeItem )*\r
+ // SilkSchema.g:249:17: ( Includes includeItem ( Comma includeItem )* -> ( includeItem )+ )\r
+ // SilkSchema.g:249:19: Includes includeItem ( Comma includeItem )*\r
{\r
- Includes44=(Token)match(input,Includes,FOLLOW_Includes_in_includeStatement1271); \r
+ Includes44=(Token)match(input,Includes,FOLLOW_Includes_in_includeStatement1277); \r
stream_Includes.add(Includes44);\r
\r
- pushFollow(FOLLOW_includeItem_in_includeStatement1273);\r
+ pushFollow(FOLLOW_includeItem_in_includeStatement1279);\r
includeItem45=includeItem();\r
\r
state._fsp--;\r
\r
stream_includeItem.add(includeItem45.getTree());\r
- // SilkSchema.g:248:40: ( Comma includeItem )*\r
+ // SilkSchema.g:249:40: ( Comma includeItem )*\r
loop17:\r
do {\r
int alt17=2;\r
\r
switch (alt17) {\r
case 1 :\r
- // SilkSchema.g:248:41: Comma includeItem\r
+ // SilkSchema.g:249:41: Comma includeItem\r
{\r
- Comma46=(Token)match(input,Comma,FOLLOW_Comma_in_includeStatement1276); \r
+ Comma46=(Token)match(input,Comma,FOLLOW_Comma_in_includeStatement1282); \r
stream_Comma.add(Comma46);\r
\r
- pushFollow(FOLLOW_includeItem_in_includeStatement1278);\r
+ pushFollow(FOLLOW_includeItem_in_includeStatement1284);\r
includeItem47=includeItem();\r
\r
state._fsp--;\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 248:61: -> ( includeItem )+\r
+ // 249:61: -> ( includeItem )+\r
{\r
if ( !(stream_includeItem.hasNext()) ) {\r
throw new RewriteEarlyExitException();\r
};\r
\r
// $ANTLR start "includeItem"\r
- // SilkSchema.g:250:1: fragment includeItem : QName -> Mixin[$QName.text] ;\r
+ // SilkSchema.g:251:1: fragment includeItem : QName -> Mixin[$QName.text] ;\r
public final SilkSchemaParser.includeItem_return includeItem() throws RecognitionException {\r
SilkSchemaParser.includeItem_return retval = new SilkSchemaParser.includeItem_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
\r
try {\r
- // SilkSchema.g:251:12: ( QName -> Mixin[$QName.text] )\r
- // SilkSchema.g:251:14: QName\r
+ // SilkSchema.g:252:12: ( QName -> Mixin[$QName.text] )\r
+ // SilkSchema.g:252:14: QName\r
{\r
- QName48=(Token)match(input,QName,FOLLOW_QName_in_includeItem1295); \r
+ QName48=(Token)match(input,QName,FOLLOW_QName_in_includeItem1301); \r
stream_QName.add(QName48);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 251:20: -> Mixin[$QName.text]\r
+ // 252:20: -> Mixin[$QName.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(Mixin, (QName48!=null?QName48.getText():null)));\r
\r
};\r
\r
// $ANTLR start "indexStatement"\r
- // SilkSchema.g:253:1: fragment indexStatement : Index QName indexTarget ( Comma indexTarget )* -> ^( Index TypeName[$QName.text] ( indexTarget )+ ) ;\r
+ // SilkSchema.g:254:1: fragment indexStatement : Index QName On indexTarget ( Comma indexTarget )* -> ^( Index TypeName[$QName.text] ( indexTarget )+ ) ;\r
public final SilkSchemaParser.indexStatement_return indexStatement() throws RecognitionException {\r
SilkSchemaParser.indexStatement_return retval = new SilkSchemaParser.indexStatement_return();\r
retval.start = input.LT(1);\r
\r
Token Index49=null;\r
Token QName50=null;\r
- Token Comma52=null;\r
- SilkSchemaParser.indexTarget_return indexTarget51 = null;\r
+ Token On51=null;\r
+ Token Comma53=null;\r
+ SilkSchemaParser.indexTarget_return indexTarget52 = null;\r
\r
- SilkSchemaParser.indexTarget_return indexTarget53 = null;\r
+ SilkSchemaParser.indexTarget_return indexTarget54 = null;\r
\r
\r
Object Index49_tree=null;\r
Object QName50_tree=null;\r
- Object Comma52_tree=null;\r
+ Object On51_tree=null;\r
+ Object Comma53_tree=null;\r
RewriteRuleTokenStream stream_Index=new RewriteRuleTokenStream(adaptor,"token Index");\r
RewriteRuleTokenStream stream_Comma=new RewriteRuleTokenStream(adaptor,"token Comma");\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
+ RewriteRuleTokenStream stream_On=new RewriteRuleTokenStream(adaptor,"token On");\r
RewriteRuleSubtreeStream stream_indexTarget=new RewriteRuleSubtreeStream(adaptor,"rule indexTarget");\r
try {\r
- // SilkSchema.g:254:15: ( Index QName indexTarget ( Comma indexTarget )* -> ^( Index TypeName[$QName.text] ( indexTarget )+ ) )\r
- // SilkSchema.g:254:17: Index QName indexTarget ( Comma indexTarget )*\r
+ // SilkSchema.g:255:15: ( Index QName On indexTarget ( Comma indexTarget )* -> ^( Index TypeName[$QName.text] ( indexTarget )+ ) )\r
+ // SilkSchema.g:255:17: Index QName On indexTarget ( Comma indexTarget )*\r
{\r
- Index49=(Token)match(input,Index,FOLLOW_Index_in_indexStatement1310); \r
+ Index49=(Token)match(input,Index,FOLLOW_Index_in_indexStatement1316); \r
stream_Index.add(Index49);\r
\r
- QName50=(Token)match(input,QName,FOLLOW_QName_in_indexStatement1312); \r
+ QName50=(Token)match(input,QName,FOLLOW_QName_in_indexStatement1318); \r
stream_QName.add(QName50);\r
\r
- pushFollow(FOLLOW_indexTarget_in_indexStatement1314);\r
- indexTarget51=indexTarget();\r
+ On51=(Token)match(input,On,FOLLOW_On_in_indexStatement1320); \r
+ stream_On.add(On51);\r
+\r
+ pushFollow(FOLLOW_indexTarget_in_indexStatement1322);\r
+ indexTarget52=indexTarget();\r
\r
state._fsp--;\r
\r
- stream_indexTarget.add(indexTarget51.getTree());\r
- // SilkSchema.g:254:41: ( Comma indexTarget )*\r
+ stream_indexTarget.add(indexTarget52.getTree());\r
+ // SilkSchema.g:255:44: ( Comma indexTarget )*\r
loop18:\r
do {\r
int alt18=2;\r
\r
switch (alt18) {\r
case 1 :\r
- // SilkSchema.g:254:42: Comma indexTarget\r
+ // SilkSchema.g:255:45: Comma indexTarget\r
{\r
- Comma52=(Token)match(input,Comma,FOLLOW_Comma_in_indexStatement1317); \r
- stream_Comma.add(Comma52);\r
+ Comma53=(Token)match(input,Comma,FOLLOW_Comma_in_indexStatement1325); \r
+ stream_Comma.add(Comma53);\r
\r
- pushFollow(FOLLOW_indexTarget_in_indexStatement1319);\r
- indexTarget53=indexTarget();\r
+ pushFollow(FOLLOW_indexTarget_in_indexStatement1327);\r
+ indexTarget54=indexTarget();\r
\r
state._fsp--;\r
\r
- stream_indexTarget.add(indexTarget53.getTree());\r
+ stream_indexTarget.add(indexTarget54.getTree());\r
\r
}\r
break;\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 255:3: -> ^( Index TypeName[$QName.text] ( indexTarget )+ )\r
+ // 256:3: -> ^( Index TypeName[$QName.text] ( indexTarget )+ )\r
{\r
- // SilkSchema.g:255:6: ^( Index TypeName[$QName.text] ( indexTarget )+ )\r
+ // SilkSchema.g:256:6: ^( Index TypeName[$QName.text] ( indexTarget )+ )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot(stream_Index.nextNode(), root_1);\r
};\r
\r
// $ANTLR start "indexTarget"\r
- // SilkSchema.g:258:1: fragment indexTarget : Symbol -> Attribute[$Symbol.text] ;\r
+ // SilkSchema.g:259:1: fragment indexTarget : Symbol -> Attribute[$Symbol.text] ;\r
public final SilkSchemaParser.indexTarget_return indexTarget() throws RecognitionException {\r
SilkSchemaParser.indexTarget_return retval = new SilkSchemaParser.indexTarget_return();\r
retval.start = input.LT(1);\r
\r
Object root_0 = null;\r
\r
- Token Symbol54=null;\r
+ Token Symbol55=null;\r
\r
- Object Symbol54_tree=null;\r
+ Object Symbol55_tree=null;\r
RewriteRuleTokenStream stream_Symbol=new RewriteRuleTokenStream(adaptor,"token Symbol");\r
\r
try {\r
- // SilkSchema.g:259:12: ( Symbol -> Attribute[$Symbol.text] )\r
- // SilkSchema.g:259:14: Symbol\r
+ // SilkSchema.g:260:12: ( Symbol -> Attribute[$Symbol.text] )\r
+ // SilkSchema.g:260:14: Symbol\r
{\r
- Symbol54=(Token)match(input,Symbol,FOLLOW_Symbol_in_indexTarget1347); \r
- stream_Symbol.add(Symbol54);\r
+ Symbol55=(Token)match(input,Symbol,FOLLOW_Symbol_in_indexTarget1355); \r
+ stream_Symbol.add(Symbol55);\r
\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 259:21: -> Attribute[$Symbol.text]\r
+ // 260:21: -> Attribute[$Symbol.text]\r
{\r
- adaptor.addChild(root_0, (Object)adaptor.create(Attribute, (Symbol54!=null?Symbol54.getText():null)));\r
+ adaptor.addChild(root_0, (Object)adaptor.create(Attribute, (Symbol55!=null?Symbol55.getText():null)));\r
\r
}\r
\r
};\r
\r
// $ANTLR start "attributes"\r
- // SilkSchema.g:263:1: fragment attributes : attribute ( Comma attribute )* -> ( attribute )+ ;\r
+ // SilkSchema.g:264:1: fragment attributes : attribute ( Comma attribute )* -> ( attribute )+ ;\r
public final SilkSchemaParser.attributes_return attributes() throws RecognitionException {\r
SilkSchemaParser.attributes_return retval = new SilkSchemaParser.attributes_return();\r
retval.start = input.LT(1);\r
\r
Object root_0 = null;\r
\r
- Token Comma56=null;\r
- SilkSchemaParser.attribute_return attribute55 = null;\r
+ Token Comma57=null;\r
+ SilkSchemaParser.attribute_return attribute56 = null;\r
\r
- SilkSchemaParser.attribute_return attribute57 = null;\r
+ SilkSchemaParser.attribute_return attribute58 = null;\r
\r
\r
- Object Comma56_tree=null;\r
+ Object Comma57_tree=null;\r
RewriteRuleTokenStream stream_Comma=new RewriteRuleTokenStream(adaptor,"token Comma");\r
RewriteRuleSubtreeStream stream_attribute=new RewriteRuleSubtreeStream(adaptor,"rule attribute");\r
try {\r
- // SilkSchema.g:264:11: ( attribute ( Comma attribute )* -> ( attribute )+ )\r
- // SilkSchema.g:264:13: attribute ( Comma attribute )*\r
+ // SilkSchema.g:265:11: ( attribute ( Comma attribute )* -> ( attribute )+ )\r
+ // SilkSchema.g:265:13: attribute ( Comma attribute )*\r
{\r
- pushFollow(FOLLOW_attribute_in_attributes1367);\r
- attribute55=attribute();\r
+ pushFollow(FOLLOW_attribute_in_attributes1375);\r
+ attribute56=attribute();\r
\r
state._fsp--;\r
\r
- stream_attribute.add(attribute55.getTree());\r
- // SilkSchema.g:264:23: ( Comma attribute )*\r
+ stream_attribute.add(attribute56.getTree());\r
+ // SilkSchema.g:265:23: ( Comma attribute )*\r
loop19:\r
do {\r
int alt19=2;\r
\r
switch (alt19) {\r
case 1 :\r
- // SilkSchema.g:264:24: Comma attribute\r
+ // SilkSchema.g:265:24: Comma attribute\r
{\r
- Comma56=(Token)match(input,Comma,FOLLOW_Comma_in_attributes1370); \r
- stream_Comma.add(Comma56);\r
+ Comma57=(Token)match(input,Comma,FOLLOW_Comma_in_attributes1378); \r
+ stream_Comma.add(Comma57);\r
\r
- pushFollow(FOLLOW_attribute_in_attributes1372);\r
- attribute57=attribute();\r
+ pushFollow(FOLLOW_attribute_in_attributes1380);\r
+ attribute58=attribute();\r
\r
state._fsp--;\r
\r
- stream_attribute.add(attribute57.getTree());\r
+ stream_attribute.add(attribute58.getTree());\r
\r
}\r
break;\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 265:3: -> ( attribute )+\r
+ // 266:3: -> ( attribute )+\r
{\r
if ( !(stream_attribute.hasNext()) ) {\r
throw new RewriteEarlyExitException();\r
};\r
\r
// $ANTLR start "attribute"\r
- // SilkSchema.g:268:1: fragment attribute : Symbol ( attributeType )? ( Default attributeValue )? -> ^( Attribute Name[$Symbol.text] ( attributeType )? ( attributeValue )? ) ;\r
+ // SilkSchema.g:269:1: fragment attribute : Symbol ( attributeType )? ( Default attributeValue )? -> ^( Attribute Name[$Symbol.text] ( attributeType )? ( attributeValue )? ) ;\r
public final SilkSchemaParser.attribute_return attribute() throws RecognitionException {\r
SilkSchemaParser.attribute_return retval = new SilkSchemaParser.attribute_return();\r
retval.start = input.LT(1);\r
\r
Object root_0 = null;\r
\r
- Token Symbol58=null;\r
- Token Default60=null;\r
- SilkSchemaParser.attributeType_return attributeType59 = null;\r
+ Token Symbol59=null;\r
+ Token Default61=null;\r
+ SilkSchemaParser.attributeType_return attributeType60 = null;\r
\r
- SilkSchemaParser.attributeValue_return attributeValue61 = null;\r
+ SilkSchemaParser.attributeValue_return attributeValue62 = null;\r
\r
\r
- Object Symbol58_tree=null;\r
- Object Default60_tree=null;\r
+ Object Symbol59_tree=null;\r
+ Object Default61_tree=null;\r
RewriteRuleTokenStream stream_Symbol=new RewriteRuleTokenStream(adaptor,"token Symbol");\r
RewriteRuleTokenStream stream_Default=new RewriteRuleTokenStream(adaptor,"token Default");\r
RewriteRuleSubtreeStream stream_attributeValue=new RewriteRuleSubtreeStream(adaptor,"rule attributeValue");\r
RewriteRuleSubtreeStream stream_attributeType=new RewriteRuleSubtreeStream(adaptor,"rule attributeType");\r
try {\r
- // SilkSchema.g:269:10: ( Symbol ( attributeType )? ( Default attributeValue )? -> ^( Attribute Name[$Symbol.text] ( attributeType )? ( attributeValue )? ) )\r
- // SilkSchema.g:270:3: Symbol ( attributeType )? ( Default attributeValue )?\r
+ // SilkSchema.g:270:10: ( Symbol ( attributeType )? ( Default attributeValue )? -> ^( Attribute Name[$Symbol.text] ( attributeType )? ( attributeValue )? ) )\r
+ // SilkSchema.g:271:3: Symbol ( attributeType )? ( Default attributeValue )?\r
{\r
- Symbol58=(Token)match(input,Symbol,FOLLOW_Symbol_in_attribute1399); \r
- stream_Symbol.add(Symbol58);\r
+ Symbol59=(Token)match(input,Symbol,FOLLOW_Symbol_in_attribute1407); \r
+ stream_Symbol.add(Symbol59);\r
\r
- // SilkSchema.g:270:10: ( attributeType )?\r
+ // SilkSchema.g:271:10: ( attributeType )?\r
int alt20=2;\r
int LA20_0 = input.LA(1);\r
\r
}\r
switch (alt20) {\r
case 1 :\r
- // SilkSchema.g:270:10: attributeType\r
+ // SilkSchema.g:271:10: attributeType\r
{\r
- pushFollow(FOLLOW_attributeType_in_attribute1401);\r
- attributeType59=attributeType();\r
+ pushFollow(FOLLOW_attributeType_in_attribute1409);\r
+ attributeType60=attributeType();\r
\r
state._fsp--;\r
\r
- stream_attributeType.add(attributeType59.getTree());\r
+ stream_attributeType.add(attributeType60.getTree());\r
\r
}\r
break;\r
\r
}\r
\r
- // SilkSchema.g:270:25: ( Default attributeValue )?\r
+ // SilkSchema.g:271:25: ( Default attributeValue )?\r
int alt21=2;\r
int LA21_0 = input.LA(1);\r
\r
}\r
switch (alt21) {\r
case 1 :\r
- // SilkSchema.g:270:26: Default attributeValue\r
+ // SilkSchema.g:271:26: Default attributeValue\r
{\r
- Default60=(Token)match(input,Default,FOLLOW_Default_in_attribute1405); \r
- stream_Default.add(Default60);\r
+ Default61=(Token)match(input,Default,FOLLOW_Default_in_attribute1413); \r
+ stream_Default.add(Default61);\r
\r
- pushFollow(FOLLOW_attributeValue_in_attribute1407);\r
- attributeValue61=attributeValue();\r
+ pushFollow(FOLLOW_attributeValue_in_attribute1415);\r
+ attributeValue62=attributeValue();\r
\r
state._fsp--;\r
\r
- stream_attributeValue.add(attributeValue61.getTree());\r
+ stream_attributeValue.add(attributeValue62.getTree());\r
\r
}\r
break;\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 271:3: -> ^( Attribute Name[$Symbol.text] ( attributeType )? ( attributeValue )? )\r
+ // 272:3: -> ^( Attribute Name[$Symbol.text] ( attributeType )? ( attributeValue )? )\r
{\r
- // SilkSchema.g:271:6: ^( Attribute Name[$Symbol.text] ( attributeType )? ( attributeValue )? )\r
+ // SilkSchema.g:272:6: ^( Attribute Name[$Symbol.text] ( attributeType )? ( attributeValue )? )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(Attribute, "Attribute"), root_1);\r
\r
- adaptor.addChild(root_1, (Object)adaptor.create(Name, (Symbol58!=null?Symbol58.getText():null)));\r
- // SilkSchema.g:271:37: ( attributeType )?\r
+ adaptor.addChild(root_1, (Object)adaptor.create(Name, (Symbol59!=null?Symbol59.getText():null)));\r
+ // SilkSchema.g:272:37: ( attributeType )?\r
if ( stream_attributeType.hasNext() ) {\r
adaptor.addChild(root_1, stream_attributeType.nextTree());\r
\r
}\r
stream_attributeType.reset();\r
- // SilkSchema.g:271:52: ( attributeValue )?\r
+ // SilkSchema.g:272:52: ( attributeValue )?\r
if ( stream_attributeValue.hasNext() ) {\r
adaptor.addChild(root_1, stream_attributeValue.nextTree());\r
\r
};\r
\r
// $ANTLR start "attributeValue"\r
- // SilkSchema.g:274:1: attributeValue : ( String | Double | Integer ) -> DefaultValue[$attributeValue.text] ;\r
+ // SilkSchema.g:275:1: attributeValue : ( String | Double | Integer ) -> DefaultValue[$attributeValue.text] ;\r
public final SilkSchemaParser.attributeValue_return attributeValue() throws RecognitionException {\r
SilkSchemaParser.attributeValue_return retval = new SilkSchemaParser.attributeValue_return();\r
retval.start = input.LT(1);\r
\r
Object root_0 = null;\r
\r
- Token String62=null;\r
- Token Double63=null;\r
- Token Integer64=null;\r
+ Token String63=null;\r
+ Token Double64=null;\r
+ Token Integer65=null;\r
\r
- Object String62_tree=null;\r
- Object Double63_tree=null;\r
- Object Integer64_tree=null;\r
+ Object String63_tree=null;\r
+ Object Double64_tree=null;\r
+ Object Integer65_tree=null;\r
RewriteRuleTokenStream stream_String=new RewriteRuleTokenStream(adaptor,"token String");\r
RewriteRuleTokenStream stream_Integer=new RewriteRuleTokenStream(adaptor,"token Integer");\r
RewriteRuleTokenStream stream_Double=new RewriteRuleTokenStream(adaptor,"token Double");\r
\r
try {\r
- // SilkSchema.g:275:3: ( ( String | Double | Integer ) -> DefaultValue[$attributeValue.text] )\r
- // SilkSchema.g:275:5: ( String | Double | Integer )\r
+ // SilkSchema.g:276:3: ( ( String | Double | Integer ) -> DefaultValue[$attributeValue.text] )\r
+ // SilkSchema.g:276:5: ( String | Double | Integer )\r
{\r
- // SilkSchema.g:275:5: ( String | Double | Integer )\r
+ // SilkSchema.g:276:5: ( String | Double | Integer )\r
int alt22=3;\r
switch ( input.LA(1) ) {\r
case String:\r
\r
switch (alt22) {\r
case 1 :\r
- // SilkSchema.g:275:6: String\r
+ // SilkSchema.g:276:6: String\r
{\r
- String62=(Token)match(input,String,FOLLOW_String_in_attributeValue1445); \r
- stream_String.add(String62);\r
+ String63=(Token)match(input,String,FOLLOW_String_in_attributeValue1453); \r
+ stream_String.add(String63);\r
\r
\r
}\r
break;\r
case 2 :\r
- // SilkSchema.g:275:15: Double\r
+ // SilkSchema.g:276:15: Double\r
{\r
- Double63=(Token)match(input,Double,FOLLOW_Double_in_attributeValue1449); \r
- stream_Double.add(Double63);\r
+ Double64=(Token)match(input,Double,FOLLOW_Double_in_attributeValue1457); \r
+ stream_Double.add(Double64);\r
\r
\r
}\r
break;\r
case 3 :\r
- // SilkSchema.g:275:24: Integer\r
+ // SilkSchema.g:276:24: Integer\r
{\r
- Integer64=(Token)match(input,Integer,FOLLOW_Integer_in_attributeValue1453); \r
- stream_Integer.add(Integer64);\r
+ Integer65=(Token)match(input,Integer,FOLLOW_Integer_in_attributeValue1461); \r
+ stream_Integer.add(Integer65);\r
\r
\r
}\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 275:33: -> DefaultValue[$attributeValue.text]\r
+ // 276:33: -> DefaultValue[$attributeValue.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(DefaultValue, input.toString(retval.start,input.LT(-1))));\r
\r
};\r
\r
// $ANTLR start "attributeType"\r
- // SilkSchema.g:277:10: fragment attributeType : ( QName -> TypeName[$QName.text] | QName Star -> TypeName[$QName.text] IsArray[\"true\"] );\r
+ // SilkSchema.g:278:10: fragment attributeType : ( QName -> TypeName[$QName.text] | QName Star -> TypeName[$QName.text] IsArray[\"true\"] );\r
public final SilkSchemaParser.attributeType_return attributeType() throws RecognitionException {\r
SilkSchemaParser.attributeType_return retval = new SilkSchemaParser.attributeType_return();\r
retval.start = input.LT(1);\r
\r
Object root_0 = null;\r
\r
- Token QName65=null;\r
Token QName66=null;\r
- Token Star67=null;\r
+ Token QName67=null;\r
+ Token Star68=null;\r
\r
- Object QName65_tree=null;\r
Object QName66_tree=null;\r
- Object Star67_tree=null;\r
+ Object QName67_tree=null;\r
+ Object Star68_tree=null;\r
RewriteRuleTokenStream stream_Star=new RewriteRuleTokenStream(adaptor,"token Star");\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
\r
try {\r
- // SilkSchema.g:278:3: ( QName -> TypeName[$QName.text] | QName Star -> TypeName[$QName.text] IsArray[\"true\"] )\r
+ // SilkSchema.g:279:3: ( QName -> TypeName[$QName.text] | QName Star -> TypeName[$QName.text] IsArray[\"true\"] )\r
int alt23=2;\r
int LA23_0 = input.LA(1);\r
\r
}\r
switch (alt23) {\r
case 1 :\r
- // SilkSchema.g:278:5: QName\r
+ // SilkSchema.g:279:5: QName\r
{\r
- QName65=(Token)match(input,QName,FOLLOW_QName_in_attributeType1474); \r
- stream_QName.add(QName65);\r
+ QName66=(Token)match(input,QName,FOLLOW_QName_in_attributeType1482); \r
+ stream_QName.add(QName66);\r
\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 278:11: -> TypeName[$QName.text]\r
+ // 279:11: -> TypeName[$QName.text]\r
{\r
- adaptor.addChild(root_0, (Object)adaptor.create(TypeName, (QName65!=null?QName65.getText():null)));\r
+ adaptor.addChild(root_0, (Object)adaptor.create(TypeName, (QName66!=null?QName66.getText():null)));\r
\r
}\r
\r
}\r
break;\r
case 2 :\r
- // SilkSchema.g:279:5: QName Star\r
+ // SilkSchema.g:280:5: QName Star\r
{\r
- QName66=(Token)match(input,QName,FOLLOW_QName_in_attributeType1486); \r
- stream_QName.add(QName66);\r
+ QName67=(Token)match(input,QName,FOLLOW_QName_in_attributeType1494); \r
+ stream_QName.add(QName67);\r
\r
- Star67=(Token)match(input,Star,FOLLOW_Star_in_attributeType1488); \r
- stream_Star.add(Star67);\r
+ Star68=(Token)match(input,Star,FOLLOW_Star_in_attributeType1496); \r
+ stream_Star.add(Star68);\r
\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 279:16: -> TypeName[$QName.text] IsArray[\"true\"]\r
+ // 280:16: -> TypeName[$QName.text] IsArray[\"true\"]\r
{\r
- adaptor.addChild(root_0, (Object)adaptor.create(TypeName, (QName66!=null?QName66.getText():null)));\r
+ adaptor.addChild(root_0, (Object)adaptor.create(TypeName, (QName67!=null?QName67.getText():null)));\r
adaptor.addChild(root_0, (Object)adaptor.create(IsArray, "true"));\r
\r
}\r
\r
\r
\r
- public static final BitSet FOLLOW_Preamble_in_schema873 = new BitSet(new long[]{0x2089000000000002L});\r
- public static final BitSet FOLLOW_schemaElement_in_schema876 = new BitSet(new long[]{0x2089000000000002L});\r
- public static final BitSet FOLLOW_classDefinition_in_schemaElement904 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_projectionDef_in_schemaElement911 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_moduleDefinition_in_schemaElement917 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_ModuleDef_in_moduleDefinition929 = new BitSet(new long[]{0x208D000000000000L});\r
- public static final BitSet FOLLOW_schemaElement_in_moduleDefinition931 = new BitSet(new long[]{0x208D000000000000L});\r
- public static final BitSet FOLLOW_End_in_moduleDefinition934 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Class_in_classDefinition966 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_QName_in_classDefinition968 = new BitSet(new long[]{0x0036804000000000L});\r
- public static final BitSet FOLLOW_inheritance_in_classDefinition970 = new BitSet(new long[]{0x0036800000000000L});\r
- public static final BitSet FOLLOW_classBody_in_classDefinition973 = new BitSet(new long[]{0x0004000000000000L});\r
- public static final BitSet FOLLOW_End_in_classDefinition976 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Relation_in_classDefinition999 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_QName_in_classDefinition1001 = new BitSet(new long[]{0x0036804000000000L});\r
- public static final BitSet FOLLOW_inheritance_in_classDefinition1003 = new BitSet(new long[]{0x0036800000000000L});\r
- public static final BitSet FOLLOW_classBody_in_classDefinition1006 = new BitSet(new long[]{0x0004000000000000L});\r
- public static final BitSet FOLLOW_End_in_classDefinition1009 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_belongsToStatement_in_classBody1038 = new BitSet(new long[]{0x0032800000000002L});\r
- public static final BitSet FOLLOW_includeStatement_in_classBody1042 = new BitSet(new long[]{0x0032800000000002L});\r
- public static final BitSet FOLLOW_attributes_in_classBody1046 = new BitSet(new long[]{0x0032800000000002L});\r
- public static final BitSet FOLLOW_indexStatement_in_classBody1050 = new BitSet(new long[]{0x0032800000000002L});\r
- public static final BitSet FOLLOW_Projection_in_projectionDef1060 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_QName_in_projectionDef1064 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
- public static final BitSet FOLLOW_65_in_projectionDef1066 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_QName_in_projectionDef1070 = new BitSet(new long[]{0x0000880000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_projectColumn_in_projectionDef1073 = new BitSet(new long[]{0x0104890000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_Comma_in_projectionDef1076 = new BitSet(new long[]{0x0000880000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_projectColumn_in_projectionDef1079 = new BitSet(new long[]{0x0104890000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_orderByColumns_in_projectionDef1084 = new BitSet(new long[]{0x0004000000000000L});\r
- public static final BitSet FOLLOW_End_in_projectionDef1087 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_QName_in_projectColumn1119 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Star_in_projectColumn1131 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Symbol_in_projectColumn1143 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_OrderBy_in_orderByColumns1161 = new BitSet(new long[]{0x0000800000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_orderByItem_in_orderByColumns1163 = new BitSet(new long[]{0x0000010000000002L});\r
- public static final BitSet FOLLOW_Comma_in_orderByColumns1166 = new BitSet(new long[]{0x0000800000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_orderByItem_in_orderByColumns1168 = new BitSet(new long[]{0x0000010000000002L});\r
- public static final BitSet FOLLOW_QName_in_orderByItem1188 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Symbol_in_orderByItem1200 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Symbol_in_functionArg1216 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_BelongsTo_in_belongsToStatement1232 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_QName_in_belongsToStatement1234 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Lt_in_inheritance1252 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_QName_in_inheritance1254 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Includes_in_includeStatement1271 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_includeItem_in_includeStatement1273 = new BitSet(new long[]{0x0000010000000002L});\r
- public static final BitSet FOLLOW_Comma_in_includeStatement1276 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_includeItem_in_includeStatement1278 = new BitSet(new long[]{0x0000010000000002L});\r
- public static final BitSet FOLLOW_QName_in_includeItem1295 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Index_in_indexStatement1310 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_QName_in_indexStatement1312 = new BitSet(new long[]{0x0000800000000000L});\r
- public static final BitSet FOLLOW_indexTarget_in_indexStatement1314 = new BitSet(new long[]{0x0000010000000002L});\r
- public static final BitSet FOLLOW_Comma_in_indexStatement1317 = new BitSet(new long[]{0x0000800000000000L});\r
- public static final BitSet FOLLOW_indexTarget_in_indexStatement1319 = new BitSet(new long[]{0x0000010000000002L});\r
- public static final BitSet FOLLOW_Symbol_in_indexTarget1347 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_attribute_in_attributes1367 = new BitSet(new long[]{0x0000010000000002L});\r
- public static final BitSet FOLLOW_Comma_in_attributes1370 = new BitSet(new long[]{0x0000800000000000L});\r
- public static final BitSet FOLLOW_attribute_in_attributes1372 = new BitSet(new long[]{0x0000010000000002L});\r
- public static final BitSet FOLLOW_Symbol_in_attribute1399 = new BitSet(new long[]{0x0040000000000002L,0x0000000000000001L});\r
- public static final BitSet FOLLOW_attributeType_in_attribute1401 = new BitSet(new long[]{0x0040000000000002L});\r
- public static final BitSet FOLLOW_Default_in_attribute1405 = new BitSet(new long[]{0x0000000260000000L});\r
- public static final BitSet FOLLOW_attributeValue_in_attribute1407 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_String_in_attributeValue1445 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Double_in_attributeValue1449 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Integer_in_attributeValue1453 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_QName_in_attributeType1474 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_QName_in_attributeType1486 = new BitSet(new long[]{0x0000080000000000L});\r
- public static final BitSet FOLLOW_Star_in_attributeType1488 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Preamble_in_schema879 = new BitSet(new long[]{0x4089000000000002L});\r
+ public static final BitSet FOLLOW_schemaElement_in_schema882 = new BitSet(new long[]{0x4089000000000002L});\r
+ public static final BitSet FOLLOW_classDefinition_in_schemaElement910 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_projectionDef_in_schemaElement917 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_moduleDefinition_in_schemaElement923 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_ModuleDef_in_moduleDefinition935 = new BitSet(new long[]{0x408D000000000000L});\r
+ public static final BitSet FOLLOW_schemaElement_in_moduleDefinition937 = new BitSet(new long[]{0x408D000000000000L});\r
+ public static final BitSet FOLLOW_End_in_moduleDefinition940 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Class_in_classDefinition972 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_classDefinition974 = new BitSet(new long[]{0x0036804000000000L});\r
+ public static final BitSet FOLLOW_inheritance_in_classDefinition976 = new BitSet(new long[]{0x0036800000000000L});\r
+ public static final BitSet FOLLOW_classBody_in_classDefinition979 = new BitSet(new long[]{0x0004000000000000L});\r
+ public static final BitSet FOLLOW_End_in_classDefinition982 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Relation_in_classDefinition1005 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_classDefinition1007 = new BitSet(new long[]{0x0036804000000000L});\r
+ public static final BitSet FOLLOW_inheritance_in_classDefinition1009 = new BitSet(new long[]{0x0036800000000000L});\r
+ public static final BitSet FOLLOW_classBody_in_classDefinition1012 = new BitSet(new long[]{0x0004000000000000L});\r
+ public static final BitSet FOLLOW_End_in_classDefinition1015 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_belongsToStatement_in_classBody1044 = new BitSet(new long[]{0x0032800000000002L});\r
+ public static final BitSet FOLLOW_includeStatement_in_classBody1048 = new BitSet(new long[]{0x0032800000000002L});\r
+ public static final BitSet FOLLOW_attributes_in_classBody1052 = new BitSet(new long[]{0x0032800000000002L});\r
+ public static final BitSet FOLLOW_indexStatement_in_classBody1056 = new BitSet(new long[]{0x0032800000000002L});\r
+ public static final BitSet FOLLOW_Projection_in_projectionDef1066 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_projectionDef1070 = new BitSet(new long[]{0x0200000000000000L});\r
+ public static final BitSet FOLLOW_On_in_projectionDef1072 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_projectionDef1076 = new BitSet(new long[]{0x0000880000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_projectColumn_in_projectionDef1079 = new BitSet(new long[]{0x0104890000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Comma_in_projectionDef1082 = new BitSet(new long[]{0x0000880000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_projectColumn_in_projectionDef1085 = new BitSet(new long[]{0x0104890000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_orderByColumns_in_projectionDef1090 = new BitSet(new long[]{0x0004000000000000L});\r
+ public static final BitSet FOLLOW_End_in_projectionDef1093 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_projectColumn1125 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Star_in_projectColumn1137 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Symbol_in_projectColumn1149 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_OrderBy_in_orderByColumns1167 = new BitSet(new long[]{0x0000800000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_orderByItem_in_orderByColumns1169 = new BitSet(new long[]{0x0000010000000002L});\r
+ public static final BitSet FOLLOW_Comma_in_orderByColumns1172 = new BitSet(new long[]{0x0000800000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_orderByItem_in_orderByColumns1174 = new BitSet(new long[]{0x0000010000000002L});\r
+ public static final BitSet FOLLOW_QName_in_orderByItem1194 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Symbol_in_orderByItem1206 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Symbol_in_functionArg1222 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_BelongsTo_in_belongsToStatement1238 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_belongsToStatement1240 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Lt_in_inheritance1258 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_inheritance1260 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Includes_in_includeStatement1277 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_includeItem_in_includeStatement1279 = new BitSet(new long[]{0x0000010000000002L});\r
+ public static final BitSet FOLLOW_Comma_in_includeStatement1282 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_includeItem_in_includeStatement1284 = new BitSet(new long[]{0x0000010000000002L});\r
+ public static final BitSet FOLLOW_QName_in_includeItem1301 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Index_in_indexStatement1316 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_indexStatement1318 = new BitSet(new long[]{0x0200000000000000L});\r
+ public static final BitSet FOLLOW_On_in_indexStatement1320 = new BitSet(new long[]{0x0000800000000000L});\r
+ public static final BitSet FOLLOW_indexTarget_in_indexStatement1322 = new BitSet(new long[]{0x0000010000000002L});\r
+ public static final BitSet FOLLOW_Comma_in_indexStatement1325 = new BitSet(new long[]{0x0000800000000000L});\r
+ public static final BitSet FOLLOW_indexTarget_in_indexStatement1327 = new BitSet(new long[]{0x0000010000000002L});\r
+ public static final BitSet FOLLOW_Symbol_in_indexTarget1355 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_attribute_in_attributes1375 = new BitSet(new long[]{0x0000010000000002L});\r
+ public static final BitSet FOLLOW_Comma_in_attributes1378 = new BitSet(new long[]{0x0000800000000000L});\r
+ public static final BitSet FOLLOW_attribute_in_attributes1380 = new BitSet(new long[]{0x0000010000000002L});\r
+ public static final BitSet FOLLOW_Symbol_in_attribute1407 = new BitSet(new long[]{0x0040000000000002L,0x0000000000000002L});\r
+ public static final BitSet FOLLOW_attributeType_in_attribute1409 = new BitSet(new long[]{0x0040000000000002L});\r
+ public static final BitSet FOLLOW_Default_in_attribute1413 = new BitSet(new long[]{0x0000000260000000L});\r
+ public static final BitSet FOLLOW_attributeValue_in_attribute1415 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_String_in_attributeValue1453 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Double_in_attributeValue1457 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Integer_in_attributeValue1461 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_attributeType1482 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_attributeType1494 = new BitSet(new long[]{0x0000080000000000L});\r
+ public static final BitSet FOLLOW_Star_in_attributeType1496 = new BitSet(new long[]{0x0000000000000002L});\r
\r
}
\ No newline at end of file
NoMoreSubtree,
// XML
- InvalidXMLData,
- ParserError,
- UnsupportedXMLDataType,
+ InvalidXMLData, ParserError, UnsupportedXMLDataType,
// JSON
- InvalidJSONData,
- InvalidJSONArray,
+ InvalidJSONData, InvalidJSONArray,
UnsupportedDataType,
// Bean class
- InvalidBeanClass,
- IllegalArgument,
- IllegalAccess,
- NoPublicConstructor,
- InstantiationFailure,
- InvalidNumberFormat,
- InvocationTargetException,
+ InvalidBeanClass, IllegalArgument, IllegalAccess, NoPublicConstructor, InstantiationFailure, InvalidNumberFormat, InvocationTargetException,
BeanObjectIsNull,
// binder
- GetterCannotBeUsedToBindData,
- BindFailure,
- UnknownBeanUpdator,
- InvalidKeyAndValuePair,
- MapContainerIsNotFound,
- MapElementConstructionFailed,
- InvalidDateFormat,
- InvalidFormat,
- InvalidType;
+ GetterCannotBeUsedToBindData, BindFailure, UnknownBeanUpdator, InvalidKeyAndValuePair, MapContainerIsNotFound, MapElementConstructionFailed, InvalidDateFormat, InvalidFormat, InvalidType;
private final String description;
- BeanErrorCode(String description)
- {
+ BeanErrorCode(String description) {
this.description = description;
}
- BeanErrorCode()
- {
+ BeanErrorCode() {
this.description = EMPTY_DESCRIPTION;
}
- public String getCodeName()
- {
+ public String getCodeName() {
return name();
}
- public String getDescription()
- {
+ public String getDescription() {
return description;
}
+ public Enum< ? > getCode() {
+ return this;
+ }
+
}
/**
* This argument is required or not
*/
- boolean required() default true;
+ boolean required() default false;
/**
* argument index (0-origin) among the arguments without option prefix, "-"
* @author leo
*
*/
-public class OptionItem
-{
- private final Option optionDescriptor;
+public class OptionItem {
+ private final Option optionDescriptor;
private final OptionSetter optionSetter;
- public OptionItem(Method method)
- {
+ public OptionItem(Method method) {
Option option = method.getAnnotation(Option.class);
if (option == null)
throw new IllegalArgumentException(method + " is not an option item");
this.optionSetter = new OptionSetterViaMethod(method);
}
- public OptionItem(Field field)
- {
+ public OptionItem(Field field) {
Option option = field.getAnnotation(Option.class);
if (option == null)
throw new IllegalArgumentException(field + " is not an option item");
}
@Override
- public boolean equals(Object obj)
- {
- if (obj instanceof OptionItem)
- {
+ public boolean equals(Object obj) {
+ if (obj instanceof OptionItem) {
OptionItem other = (OptionItem) obj;
return optionDescriptor.equals(other.optionDescriptor);
}
}
@Override
- public int hashCode()
- {
+ public int hashCode() {
return optionDescriptor.hashCode();
}
- public boolean needsArgument()
- {
+ public boolean needsArgument() {
return optionSetter.takesArgument();
}
- public boolean hasSymbol()
- {
+ public boolean hasSymbol() {
return optionDescriptor.symbol() != null && optionDescriptor.symbol().length() > 0;
}
- public boolean hasLongName()
- {
+ public boolean hasLongName() {
return optionDescriptor.longName() != null && optionDescriptor.longName().length() > 0;
}
- public Option getOption()
- {
+ public Option getOption() {
return optionDescriptor;
}
- public boolean takesMultipleArguments()
- {
+ public boolean takesMultipleArguments() {
return TypeInfo.isCollection(optionSetter.getOptionDataType());
}
- public void setOption(Object bean, String value) throws OptionParserException
- {
+ public void setOption(Object bean, String value) throws OptionParserException {
optionSetter.setOption(bean, value);
// Class< ? > optionType = optionSetter.getOptionDataType();
}
- public void initialize(Object optionHolder) throws OptionParserException
- {
+ public void initialize(Object optionHolder) throws OptionParserException {
optionSetter.initialize(optionHolder);
}
@Override
- public String toString()
- {
- return String.format("symbol=%s, longName=%s, description=%s", optionDescriptor.symbol(), optionDescriptor
+ public String toString() {
+ return String.format("-%s, --%s :%s", optionDescriptor.symbol(), optionDescriptor
.longName(), optionDescriptor.description());
}
}
import java.util.HashSet;
import java.util.List;
+import org.xerial.core.XerialError;
import org.xerial.core.XerialErrorCode;
+import org.xerial.util.bean.BeanErrorCode;
+import org.xerial.util.bean.BeanException;
+import org.xerial.util.bean.TypeInfo;
/**
* A command-line option and argument parser
* @author leo
*
*/
-public class OptionParser
-{
+public class OptionParser {
private final OptionSchema schema;
private final Object optionHolder;
private HashSet<Argument> activatedArgument = new HashSet<Argument>();
private List<String> unusedArgument = new ArrayList<String>();
- public <T> OptionParser(T optionHolder)
- {
+ public <T> OptionParser(T optionHolder) {
this.optionHolder = optionHolder;
schema = OptionSchema.newOptionSchema(optionHolder);
}
- OptionItem findOptionItem(OptionSchema schema, String optionName) throws OptionParserException
- {
+ public <T> OptionParser(Class<T> optionHolderType) {
+ try {
+ this.optionHolder = TypeInfo.createInstance(optionHolderType);
+ }
+ catch (BeanException e) {
+ throw new XerialError(XerialErrorCode.INVALID_ARGUMENT, e);
+ }
+
+ schema = OptionSchema.newOptionSchema(optionHolder);
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T> T getOptionHolder() {
+ return (T) optionHolder;
+ }
+
+ OptionItem findOptionItem(OptionSchema schema, String optionName) throws OptionParserException {
OptionItem optionItem = schema.getOption(optionName);
- if (optionItem == null)
- {
- if (!ignoreUnknownOption)
- {
- throw new OptionParserException(XerialErrorCode.SYNTAX_ERROR, "unknown option: " + optionName);
+ if (optionItem == null) {
+ if (!ignoreUnknownOption) {
+ throw new OptionParserException(XerialErrorCode.SYNTAX_ERROR, "unknown option: "
+ + optionName);
}
}
return optionItem;
}
- public void printUsage()
- {
+ public void printUsage() {
printUsage(System.out);
}
- public void printUsage(Writer out)
- {
+ public void printUsage(Writer out) {
assert schema != null;
schema.printUsage(out);
}
- public void printUsage(OutputStream out)
- {
+ public void printUsage(OutputStream out) {
assert schema != null;
schema.printUsage(out);
}
- public String getUsage()
- {
+ public String getUsage() {
StringWriter buf = new StringWriter();
printUsage(buf);
return buf.toString();
*
* @return
*/
- public String[] getUnusedArguments()
- {
+ public String[] getUnusedArguments() {
String[] result = new String[unusedArgument.size()];
for (int i = 0; i < unusedArgument.size(); ++i)
result[i] = unusedArgument.get(i);
* options are found.
* @throws OptionParserException
*/
- public void parse(String[] args, boolean ignoreUnknownOption) throws OptionParserException
- {
+ public void parse(String[] args, boolean ignoreUnknownOption) throws OptionParserException {
setIgnoreUnknownOption(ignoreUnknownOption);
parse(args);
}
* @param args
* @throws OptionParserException
*/
- public void parse(String[] args) throws OptionParserException
- {
+ public void parse(String[] args) throws OptionParserException {
// clear
unusedArgument.clear();
activatedOption.clear();
activatedArgument.clear();
// initialize collections in the OptionHolder
- for (OptionItem each : schema.getOptionItemList())
- {
+ for (OptionItem each : schema.getOptionItemList()) {
each.initialize(optionHolder);
}
- for (ArgumentItem each : schema.getArgumentItemList())
- {
+ for (ArgumentItem each : schema.getArgumentItemList()) {
each.initialize(optionHolder);
}
int index = 0; // index in the args array
int argIndex = 0; // argument index
- for (; index < args.length; index++)
- {
+ for (; index < args.length; index++) {
String currentArg = args[index];
- if (currentArg.startsWith("--"))
- {
+ if (currentArg.startsWith("--")) {
// long name option
int splitPos = currentArg.indexOf('=');
- if (splitPos == -1)
- {
+ if (splitPos == -1) {
// no value is found
String longOptionName = currentArg.substring(2);
OptionItem optionItem = findOptionItem(schema, longOptionName);
- if (optionItem == null)
- {
+ if (optionItem == null) {
unusedArgument.add(currentArg);
continue;
}
optionItem.setOption(optionHolder, "true");
- if (!optionItem.takesMultipleArguments() && activatedOption.contains(optionItem.getOption()))
- throw new OptionParserException(XerialErrorCode.DUPLICATE_OPTION, optionItem.getOption()
- .toString());
+ if (!optionItem.takesMultipleArguments()
+ && activatedOption.contains(optionItem.getOption()))
+ throw new OptionParserException(XerialErrorCode.DUPLICATE_OPTION,
+ optionItem.getOption().toString());
activatedOption.add(optionItem.getOption());
}
- else
- {
+ else {
// option is a (key, value) pair
String longOptionName = currentArg.substring(2, splitPos);
String value = currentArg.substring(splitPos + 1);
OptionItem optionItem = findOptionItem(schema, longOptionName);
- if (optionItem == null)
- {
+ if (optionItem == null) {
unusedArgument.add(currentArg);
continue;
}
- if (!optionItem.needsArgument())
- {
- throw new OptionParserException(XerialErrorCode.SYNTAX_ERROR, "syntax error --"
- + longOptionName);
+ if (!optionItem.needsArgument()) {
+ throw new OptionParserException(XerialErrorCode.SYNTAX_ERROR,
+ "syntax error --" + longOptionName);
}
optionItem.setOption(optionHolder, value);
- if (!optionItem.takesMultipleArguments() && activatedOption.contains(optionItem.getOption()))
- throw new OptionParserException(XerialErrorCode.DUPLICATE_OPTION, optionItem.getOption()
- .toString());
+ if (!optionItem.takesMultipleArguments()
+ && activatedOption.contains(optionItem.getOption()))
+ throw new OptionParserException(XerialErrorCode.DUPLICATE_OPTION,
+ optionItem.getOption().toString());
activatedOption.add(optionItem.getOption());
}
}
- else if (currentArg.startsWith("-"))
- {
+ else if (currentArg.startsWith("-")) {
// option with a leading hyphen (e.g. "-txvf" is equivalent to "-t", "-x", "-v" and "-f")
String shortOptionList = currentArg.substring(1);
- for (int i = 0; i < shortOptionList.length(); i++)
- {
+ for (int i = 0; i < shortOptionList.length(); i++) {
String shortOptionName = shortOptionList.substring(i, i + 1);
OptionItem optionItem = findOptionItem(schema, shortOptionName);
- if (optionItem == null)
- {
+ if (optionItem == null) {
unusedArgument.add(currentArg);
continue;
}
- if (optionItem.needsArgument())
- {
+ if (optionItem.needsArgument()) {
if (shortOptionList.length() != 1)
- throw new OptionParserException(XerialErrorCode.SYNTAX_ERROR, String.format(
- "short name option -%s with an arguments must be a single notation",
- shortOptionName));
-
- optionItem.setOption(optionHolder, args[++index]);
+ throw new OptionParserException(
+ XerialErrorCode.SYNTAX_ERROR,
+ String
+ .format(
+ "short name option -%s with an arguments must be a single notation",
+ shortOptionName));
+
+ setOption(optionItem, args[++index]);
}
else
- optionItem.setOption(optionHolder, "true");
+ setOption(optionItem, "true");
- if (!optionItem.takesMultipleArguments() && activatedOption.contains(optionItem.getOption()))
- throw new OptionParserException(XerialErrorCode.DUPLICATE_OPTION, optionItem.getOption()
- .toString());
+ if (!optionItem.takesMultipleArguments()
+ && activatedOption.contains(optionItem.getOption()))
+ throw new OptionParserException(XerialErrorCode.DUPLICATE_OPTION,
+ optionItem.getOption().toString());
activatedOption.add(optionItem.getOption());
}
}
- else
- {
+ else {
// general argument
ArgumentItem argItem = schema.getArgument(argIndex);
- if (argItem == null)
- {
- if (ignoreUnknownOption)
- {
+ if (argItem == null) {
+ if (ignoreUnknownOption) {
unusedArgument.add(currentArg);
continue;
}
else
- throw new OptionParserException(XerialErrorCode.SYNTAX_ERROR, "unused argument: " + currentArg);
+ throw new OptionParserException(XerialErrorCode.SYNTAX_ERROR,
+ "unused argument: " + currentArg);
}
argItem.set(optionHolder, currentArg);
- if (!argItem.takesMultipleArguments() && activatedArgument.contains(argItem.getArgumentDescriptor()))
- throw new OptionParserException(XerialErrorCode.DUPLICATE_OPTION, argItem.getArgumentDescriptor()
- .toString());
+ if (!argItem.takesMultipleArguments()
+ && activatedArgument.contains(argItem.getArgumentDescriptor()))
+ throw new OptionParserException(XerialErrorCode.DUPLICATE_OPTION, argItem
+ .getArgumentDescriptor().toString());
activatedArgument.add(argItem.getArgumentDescriptor());
argIndex++;
}
// verify missing options & arguments
- for (ArgumentItem argItem : schema.getArgumentItemList())
- {
+ for (ArgumentItem argItem : schema.getArgumentItemList()) {
if (argItem.getArgumentDescriptor().required()
&& !activatedArgument.contains(argItem.getArgumentDescriptor()))
- throw new OptionParserException(XerialErrorCode.MISSING_ARGUMENT, argItem.toString());
+ throw new OptionParserException(XerialErrorCode.MISSING_ARGUMENT, argItem
+ .toString());
+ }
+ }
+
+ private void setOption(OptionItem item, String value) throws OptionParserException {
+ try {
+ item.setOption(optionHolder, value);
+ }
+ catch (OptionParserException e) {
+ if (BeanErrorCode.class.isInstance(e.getErrorCode())) {
+ BeanErrorCode be = BeanErrorCode.class.cast(e.getErrorCode());
+ switch (be) {
+ case InvalidFormat:
+ throw new OptionParserException(XerialErrorCode.INVALID_ARGUMENT, String
+ .format("cannot set %s to %s", value, item.toString()));
+ }
+
+ }
+
+ throw e;
}
}
*
* @param ignore
*/
- public void setIgnoreUnknownOption(boolean ignore)
- {
+ public void setIgnoreUnknownOption(boolean ignore) {
ignoreUnknownOption = ignore;
}
* @author leo
*
*/
-public class OptionParserException extends XerialException
-{
+public class OptionParserException extends XerialException {
/**
* Comment for <code>serialVersionUID</code>
*/
private static final long serialVersionUID = 1L;
- public OptionParserException(ErrorCode errorCode, String message, Throwable cause)
- {
+ public OptionParserException(ErrorCode errorCode, String message, Throwable cause) {
super(errorCode, message, cause);
}
- public OptionParserException(ErrorCode errorCode, String message)
- {
+ public OptionParserException(ErrorCode errorCode, String message) {
super(errorCode, message);
}
- public OptionParserException(ErrorCode errorCode, Throwable cause)
- {
+ public OptionParserException(ErrorCode errorCode, Throwable cause) {
super(errorCode, cause);
}
- public OptionParserException(ErrorCode errorCode)
- {
+ public OptionParserException(ErrorCode errorCode) {
super(errorCode);
}
+ @Override
+ public String getMessage() {
+
+ return super.getMessage();
+ }
}
* @author leo
*
*/
-public class OptionSchema
-{
- private final ArrayList<OptionItem> optionItemList = new ArrayList<OptionItem>();
+public class OptionSchema {
+ private final ArrayList<OptionItem> optionItemList = new ArrayList<OptionItem>();
private final ArrayList<ArgumentItem> argumentItemList = new ArrayList<ArgumentItem>();
- private Usage usage = null;
+ private Usage usage = null;
- List<OptionItem> getOptionItemList()
- {
+ List<OptionItem> getOptionItemList() {
return optionItemList;
}
- List<ArgumentItem> getArgumentItemList()
- {
+ List<ArgumentItem> getArgumentItemList() {
return argumentItemList;
}
- Usage getUsage()
- {
+ Usage getUsage() {
return usage;
}
- protected static String optionDescription(OptionItem optionItem)
- {
+ protected static String optionDescription(OptionItem optionItem) {
StringBuilder line = new StringBuilder();
Option opt = optionItem.getOption();
- if (optionItem.hasSymbol())
- {
+ if (optionItem.hasSymbol()) {
line.append(String.format("-%s", opt.symbol()));
- if (optionItem.hasLongName())
- {
+ if (optionItem.hasLongName()) {
line.append(String.format(", --%s", opt.longName()));
if (optionItem.needsArgument())
line.append(String.format("=%s", opt.varName()));
}
- else
- {
+ else {
if (optionItem.needsArgument())
line.append(String.format(" ", opt.varName()));
}
}
- else if (optionItem.hasLongName())
- {
+ else if (optionItem.hasLongName()) {
line.append(String.format(" --%s", opt.longName()));
if (optionItem.needsArgument())
line.append(String.format("=%s", opt.varName()));
}
- else
- {
+ else {
throw new XerialError(XerialErrorCode.NO_OPTION, optionItem.toString());
}
}
- protected static String argumentExpression(ArgumentItem argItem)
- {
+ protected static String argumentExpression(ArgumentItem argItem) {
StringBuilder line = new StringBuilder();
Argument arg = argItem.getArgumentDescriptor();
return line.toString();
}
- public void printUsage(OutputStream out)
- {
+ public void printUsage(OutputStream out) {
printUsage(new OutputStreamWriter(out));
}
COMMAND, ARGUMENT_LIST, DESCRIPTION, OPTION_LIST
}
- public void printUsage(Writer out)
- {
+ public void printUsage(Writer out) {
Properties helpMessageTemplateValue = new Properties();
// argument list
Collections.sort(argumentItemList, new Comparator<ArgumentItem>() {
- public int compare(ArgumentItem o1, ArgumentItem o2)
- {
+ public int compare(ArgumentItem o1, ArgumentItem o2) {
return o1.getRange().compareTo(o2.getRange());
}
});
- List<String> argExpressionList = Algorithm.map(argumentItemList, new Mapper<ArgumentItem, String>() {
- public String map(ArgumentItem input)
- {
- return argumentExpression(input);
- }
- });
+ List<String> argExpressionList = Algorithm.map(argumentItemList,
+ new Mapper<ArgumentItem, String>() {
+ public String map(ArgumentItem input) {
+ return argumentExpression(input);
+ }
+ });
// usage information
- if (usage != null)
- {
+ if (usage != null) {
helpMessageTemplateValue.put(TemplateVariable.COMMAND.name(), usage.command());
if (usage.description() != null && usage.description().length() > 0)
- helpMessageTemplateValue.put(TemplateVariable.DESCRIPTION.name(), usage.description());
+ helpMessageTemplateValue.put(TemplateVariable.DESCRIPTION.name(), usage
+ .description());
}
- helpMessageTemplateValue.put(TemplateVariable.ARGUMENT_LIST.name(), StringUtil.join(argExpressionList, " "));
+ helpMessageTemplateValue.put(TemplateVariable.ARGUMENT_LIST.name(), StringUtil.join(
+ argExpressionList, " "));
// option list
Collections.sort(optionItemList, new Comparator<OptionItem>() {
- public int compare(OptionItem o1, OptionItem o2)
- {
+ public int compare(OptionItem o1, OptionItem o2) {
Option opt1 = o1.getOption();
Option opt2 = o2.getOption();
// prefer options that have a short name
- if (o1.hasSymbol())
- {
+ if (o1.hasSymbol()) {
if (!o2.hasSymbol())
return -1;
}
}
});
- List<String> descriptionList = Algorithm.map(optionItemList, new Mapper<OptionItem, String>() {
- public String map(OptionItem input)
- {
- return optionDescription(input);
- }
- });
+ List<String> descriptionList = Algorithm.map(optionItemList,
+ new Mapper<OptionItem, String>() {
+ public String map(OptionItem input) {
+ return optionDescription(input);
+ }
+ });
int maxDescriptionLength = 15;
for (String each : descriptionList)
String optionHelpFormat = String.format(" %%-%ds %%s", maxDescriptionLength);
StringWriter optionListHelpWriter = new StringWriter();
- for (int i = 0; i < optionItemList.size(); ++i)
- {
+ for (int i = 0; i < optionItemList.size(); ++i) {
OptionItem optionItem = optionItemList.get(i);
String optionHelp = descriptionList.get(i);
- String line = String.format(optionHelpFormat, optionHelp, optionItem.getOption().description());
+ String line = String.format(optionHelpFormat, optionHelp, optionItem.getOption()
+ .description());
optionListHelpWriter.append(line);
optionListHelpWriter.append(StringUtil.newline());
}
- helpMessageTemplateValue.put(TemplateVariable.OPTION_LIST.name(), optionListHelpWriter.toString());
+ helpMessageTemplateValue.put(TemplateVariable.OPTION_LIST.name(), optionListHelpWriter
+ .toString());
// render help messages using template
- ResourcePath rp = usage != null ? new ResourcePath(usage.templatePath()) : new ResourcePath(
- Usage.DEFAULT_TEMPLATE);
+ ResourcePath rp = new ResourcePath(usage != null ? usage.templatePath()
+ : Usage.DEFAULT_TEMPLATE);
- try
- {
+ try {
Template helpMessageTemplate = new Template(rp.openBinaryStream());
String helpMessage = helpMessageTemplate.apply(helpMessageTemplateValue);
out.append(helpMessage);
out.flush();
}
- catch (IOException e)
- {
+ catch (IOException e) {
throw new XerialError(XerialErrorCode.OUTPUT_ERROR, e);
}
- catch (XerialException e)
- {
+ catch (XerialException e) {
throw new XerialError(e);
}
* @param optionName
* @return
*/
- public OptionItem getOption(String optionName)
- {
- for (OptionItem eachOption : optionItemList)
- {
+ public OptionItem getOption(String optionName) {
+ for (OptionItem eachOption : optionItemList) {
Option opt = eachOption.getOption();
if (optionName.equals(opt.symbol()))
return eachOption;
return null;
}
- public ArgumentItem getArgument(int argumentIndex)
- {
- for (ArgumentItem each : argumentItemList)
- {
+ public ArgumentItem getArgument(int argumentIndex) {
+ for (ArgumentItem each : argumentItemList) {
Argument arg = each.getArgumentDescriptor();
if (arg.index() == argumentIndex)
return each;
return null;
}
- public void addOptionItem(Method setter)
- {
+ public void addOptionItem(Method setter) {
OptionItem newOption = new OptionItem(setter);
optionItemList.add(newOption);
}
- public void addOptionItem(Field field)
- {
+ public void addOptionItem(Field field) {
OptionItem newOption = new OptionItem(field);
optionItemList.add(newOption);
}
- public void addArgumentItem(Method setter)
- {
+ public void addArgumentItem(Method setter) {
ArgumentItem newArg = new ArgumentItem(setter);
validate(newArg);
argumentItemList.add(newArg);
}
- public void addArgumentItem(Field field)
- {
+ public void addArgumentItem(Field field) {
ArgumentItem newArg = new ArgumentItem(field);
validate(newArg);
argumentItemList.add(newArg);
}
- private void validate(ArgumentItem newArg)
- {
+ private void validate(ArgumentItem newArg) {
Range newRange = newArg.getRange();
- for (ArgumentItem each : argumentItemList)
- {
+ for (ArgumentItem each : argumentItemList) {
Range r = each.getRange();
if (r.overlaps(newRange))
throw new XerialError(XerialErrorCode.DUPLICATE_OPTION, String.format(
}
}
- public static OptionSchema newOptionSchema(Class< ? > optionHolderType)
- {
+ public static OptionSchema newOptionSchema(Class< ? > optionHolderType) {
OptionSchema optionSchema = new OptionSchema();
// traverses through super classes
for (Class< ? > optionHolderClass = optionHolderType; optionHolderClass != null; optionHolderClass = optionHolderClass
- .getSuperclass())
- {
+ .getSuperclass()) {
// looks for bean methods annotated with Option or Argument
- for (Method eachMethod : optionHolderClass.getDeclaredMethods())
- {
+ for (Method eachMethod : optionHolderClass.getDeclaredMethods()) {
if (eachMethod.getAnnotation(Option.class) != null)
optionSchema.addOptionItem(eachMethod);
}
// looks for bean fields annotated with Option or Argument
- for (Field f : optionHolderClass.getDeclaredFields())
- {
+ for (Field f : optionHolderClass.getDeclaredFields()) {
if (f.getAnnotation(Option.class) != null)
optionSchema.addOptionItem(f);
optionSchema.addArgumentItem(f);
}
- if (optionHolderClass.getAnnotation(Usage.class) != null)
- {
+ if (optionHolderClass.getAnnotation(Usage.class) != null) {
optionSchema.setUsage(optionHolderClass);
}
}
return optionSchema;
}
- private void setUsage(Class< ? > optionHolderClass)
- {
+ private void setUsage(Class< ? > optionHolderClass) {
Usage newUsage = optionHolderClass.getAnnotation(Usage.class);
if (newUsage == null)
throw new XerialError(XerialErrorCode.NO_USAGE_ANNOTATION, optionHolderClass.toString());
usage = newUsage;
}
- public static <OptionHolder> OptionSchema newOptionSchema(OptionHolder optionHolder)
- {
+ public static <OptionHolder> OptionSchema newOptionSchema(OptionHolder optionHolder) {
return newOptionSchema(optionHolder.getClass());
}
private final String description;
- private ShellError()
- {
+ private ShellError() {
this.description = "";
}
- private ShellError(String description)
- {
+ private ShellError(String description) {
this.description = description;
}
- public String getCodeName()
- {
+ public String getCodeName() {
return name();
}
- public String getDescription()
- {
+ public String getDescription() {
return description;
}
+ public Enum< ? > getCode() {
+ return this;
+ }
+
}
usage: $COMMAND$ $ARGUMENT_LIST$\r
$DESCRIPTION$\r
\r
-[options]\r
+[available options]\r
$OPTION_LIST$\r
*/
public enum XMLErrorCode implements ErrorCode {
- INVALID_XML_STRUCTURE,
- NO_MORE_TAG_TO_CLOSE,
- PARSE_ERROR,
- SAX_ERROR,
- INVALID_PARSER_CONFIGURATION,
- FAILED_TO_CREATE_XML_PARSER;
+ INVALID_XML_STRUCTURE, NO_MORE_TAG_TO_CLOSE, PARSE_ERROR, SAX_ERROR, INVALID_PARSER_CONFIGURATION, FAILED_TO_CREATE_XML_PARSER;
private final String description;
- private XMLErrorCode()
- {
+ private XMLErrorCode() {
this.description = EMPTY_DESCRIPTION;
}
- private XMLErrorCode(String description)
- {
+ private XMLErrorCode(String description) {
this.description = description;
}
- public String getCodeName()
- {
+ public String getCodeName() {
return name();
}
- public String getDescription()
- {
+ public String getDescription() {
return description;
}
+ public Enum< ? > getCode() {
+ return this;
+ }
+
}
//--------------------------------------
package org.xerial.lens;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import java.io.IOException;
import java.util.ArrayList;
import org.junit.Ignore;
import org.junit.Test;
import org.xerial.core.XerialException;
+import org.xerial.silk.SilkParser;
import org.xerial.silk.SilkUtilTest;
import org.xerial.util.FileResource;
import org.xerial.util.HashedArrayList;
assertEquals("{\"list\":[]}", Lens.toJSON(d));
}
+ public static class MyGene {
+ public String name;
+ public long start;
+ public String link;
+ }
+
+ public static class MyGeneQuery {
+ private List<MyGene> geneList = new ArrayList<MyGene>();
+
+ public void addGene_Coordinate(MyGene gene, Chr c) {
+ if (c.name.equals("chr1"))
+ geneList.add(gene);
+ }
+
+ public List<MyGene> getGeneList() {
+ return geneList;
+ }
+ }
+
+ public static class Chr {
+ public String name;
+ }
+
+ @Test
+ public void testLens() throws Exception {
+
+ MyGeneQuery result = Lens.loadSilk(MyGeneQuery.class, FileResource.open(LensTest.class,
+ "sequence.silk"));
+
+ _logger.debug(Lens.toJSON(result));
+ }
+
+ @Test
+ public void testFind() throws Exception {
+ Lens.find(MyGene.class, "gene", new SilkParser(FileResource.find(LensTest.class,
+ "sequence.silk")), new ObjectHandler<MyGene>() {
+
+ public void handle(MyGene input) throws Exception {
+ _logger.info(Lens.toJSON(input));
+ }
+ });
+ }
+
}
//--------------------------------------\r
package org.xerial.silk.schema;\r
\r
-import static org.junit.Assert.*;\r
+import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.assertNotNull;\r
+import static org.junit.Assert.assertNull;\r
\r
import org.junit.After;\r
import org.junit.Before;\r
public void buildQuery() throws Exception {\r
\r
SilkSchema schema = SilkSchema.parse(FileResource.open(SilkSchemaTest.class, "read.silk"));\r
+\r
+ _logger.info(Lens.toJSON(schema));\r
+\r
QuerySet qs = schema.buildAmoebaJoinQuery();\r
\r
_logger.info(qs);\r
\r
public void newAmoeba(Schema schema, Node coreNode, Node attributeNode)\r
throws Exception {\r
- _logger.info(String.format("amoeba (%s, %s)", coreNode, attributeNode));\r
+ _logger.trace(String.format("amoeba (%s, %s)", coreNode, attributeNode));\r
}\r
\r
public void text(Schema schema, Node coreNode, Node textNode, String text)\r
# :zvalue zvalue(:start, :end) \r
:strand\r
\r
- index keyword :name\r
+ index keyword on :name\r
end\r
\r
# reference sequence\r
import org.xerial.util.log.LogLevel;
import org.xerial.util.log.Logger;
-public class OptionParserTest
-{
+public class OptionParserTest {
private static Logger _logger = Logger.getLogger(OptionParserTest.class);
@Before
- public void setUp() throws Exception
- {}
+ public void setUp() throws Exception {}
@After
- public void tearDown() throws Exception
- {}
+ public void tearDown() throws Exception {}
- class MyOption
- {
+ class MyOption {
@Option(symbol = "h", longName = "help", description = "display help message")
- private boolean displayHelp;
+ private boolean displayHelp;
- @Argument(index = 0)
- private String subCommand;
+ @Argument(index = 0, required = true)
+ private String subCommand;
@Argument(name = "input_file", index = 1, required = false)
private List<String> fileList;
}
@Test
- public void optionBinding() throws OptionParserException
- {
+ public void optionBinding() throws OptionParserException {
MyOption myOption = new MyOption();
OptionParser parser = new OptionParser(myOption);
}
@Test
- public void printUsage()
- {
+ public void printUsage() {
MyOption myOption = new MyOption();
OptionParser parser = new OptionParser(myOption);
}
@Test
- public void testDuplicatedOptionFlag()
- {
- try
- {
+ public void testDuplicatedOptionFlag() {
+ try {
MyOption myOption = new MyOption();
OptionParser parser = new OptionParser(myOption);
fail("must detect the presence of duplicated option flags");
}
- catch (OptionParserException e)
- {
+ catch (OptionParserException e) {
}
}
@Test
- public void testDuplicatedLongOptionFlag()
- {
- try
- {
+ public void testDuplicatedLongOptionFlag() {
+ try {
MyOption myOption = new MyOption();
OptionParser parser = new OptionParser(myOption);
fail("must detect the presence of duplicated option flags");
}
- catch (OptionParserException e)
- {
+ catch (OptionParserException e) {
}
}
@Test
- public void detectMissingArgument()
- {
- try
- {
+ public void detectMissingArgument() {
+ try {
MyOption myOption = new MyOption();
OptionParser parser = new OptionParser(myOption);
fail("must detect some argument is missing");
}
- catch (OptionParserException e)
- {
+ catch (OptionParserException e) {
}
}
@Test
- public void initializeCollectionsInOptionHolder() throws OptionParserException
- {
+ public void initializeCollectionsInOptionHolder() throws OptionParserException {
MyOption myOption = new MyOption();
OptionParser parser = new OptionParser(myOption);
}
- class LoglevelCommand
- {
+ class LoglevelCommand {
@Option(symbol = "l", longName = "loglevel", varName = "LOG_LEVEL")
private LogLevel loglevel = LogLevel.INFO;
}
@Test
- public void enumOption() throws OptionParserException
- {
+ public void enumOption() throws OptionParserException {
LoglevelCommand opt = new LoglevelCommand();
OptionParser parser = new OptionParser(opt);
parser.parse(new String[] { "--loglevel=DEBUG" });
assertEquals(LogLevel.DEBUG, opt.loglevel);
}
- class MultipleName
- {
+ class MultipleName {
@Option(longName = "name")
private List<String> name;
}
@Test
- public void mulpleOptionOccurences() throws OptionParserException
- {
+ public void mulpleOptionOccurences() throws OptionParserException {
MultipleName mn = new MultipleName();
OptionParser parser = new OptionParser(mn);
parser.parse(new String[] { "--name=leo", "--name=yui" });
assertEquals("yui", mn.name.get(1));
}
- class IntArg
- {
+ class IntArg {
@Option(symbol = "i")
- int num;
+ int num;
@Argument(name = "value")
List<Integer> value;
}
@Test
- public void intArgument() throws OptionParserException
- {
+ public void intArgument() throws OptionParserException {
IntArg intArg = new IntArg();
OptionParser parser = new OptionParser(intArg);
}
- class AmbiguousTypeArg
- {
+ class AmbiguousTypeArg {
@Argument(name = "value")
List< ? > value;
*/
@SuppressWarnings("unchecked")
@Option(symbol = "d")
- List d;
+ List d;
}
@Test
- public void ambiguousType() throws OptionParserException
- {
+ public void ambiguousType() throws OptionParserException {
AmbiguousTypeArg arg = new AmbiguousTypeArg();
OptionParser parser = new OptionParser(arg);
}
@Test
- public void detectUnknownOption()
- {
+ public void detectUnknownOption() {
MyOption myOption = new MyOption();
OptionParser parser = new OptionParser(myOption);
- try
- {
+ try {
parser.parse(new String[] { "-v", "file" });
fail("must detect unknown options ");
}
- catch (OptionParserException e)
- {
+ catch (OptionParserException e) {
}
}
@Test
- public void ignoreUnknownOption()
- {
+ public void ignoreUnknownOption() {
MyOption myOption = new MyOption();
OptionParser parser = new OptionParser(myOption);
parser.setIgnoreUnknownOption(true);
- try
- {
+ try {
parser.parse(new String[] { "-v", "file" });
}
- catch (OptionParserException e)
- {
+ catch (OptionParserException e) {
fail("must ignore unknown options ");
}
}
- class MainCommand
- {
+ class MainCommand {
@Argument(name = "sub_command")
String subCommand = null;
}
- class SubCommand
- {
+ class SubCommand {
@Option(symbol = "h", longName = "help")
boolean displayHelp = false;
@Argument(name = "input")
- String input = null;
+ String input = null;
}
@Test
- public void retrieveUnusedArguments() throws OptionParserException
- {
+ public void retrieveUnusedArguments() throws OptionParserException {
MainCommand mainCommand = new MainCommand();
OptionParser mainCommandParser = new OptionParser(mainCommand);
mainCommandParser.setIgnoreUnknownOption(true);
assertEquals("input.txt", subCommand.input);
assertTrue(subCommand.displayHelp);
}
+
+ @Test
+ public void getOptionHolderTest() throws Exception {
+
+ OptionParser mainCommandParser = new OptionParser(new MainCommand());
+ mainCommandParser.parse(new String[] { "action" });
+ MainCommand mc = mainCommandParser.getOptionHolder();
+
+ assertEquals("action", mc.subCommand);
+
+ }
+
+ static class MyOpt {
+ @Option(symbol = "v", longName = "value", description = "integer value")
+ int value = -1;
+ }
+
+ @Test
+ public void errorMessage() throws Exception {
+ OptionParser p = new OptionParser(MyOpt.class);
+ try {
+ p.parse(new String[] { "-v", "abc" }); // use wrong type
+ }
+ catch (OptionParserException e) {
+ _logger.debug(e);
+ assertTrue(String.format(
+ "error message must explain which option argument causes the error: %s", e
+ .getMessage()), e.getMessage().contains("-v"));
+ return;
+ }
+ fail("cannot reach here");
+
+ }
}