diff options
author | Rich Hickey <richhickey@gmail.com> | 2007-07-20 13:27:03 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2007-07-20 13:27:03 +0000 |
commit | fc33cf217b1dbfaaee3ca3294a6785df5befdaa1 (patch) | |
tree | a9229a6b63f00de8524a10be0ffcd949b7fda6f0 | |
parent | 2f851022c1de98dd11dd05e30e4fca5e118c30f9 (diff) |
interim reader grammar changes
-rw-r--r-- | src/jvm/Reader.g | 11 | ||||
-rw-r--r-- | src/jvm/clojure/lang/ReaderLexer.java | 250 | ||||
-rw-r--r-- | src/jvm/clojure/lang/ReaderParser.java | 1452 |
3 files changed, 1154 insertions, 559 deletions
diff --git a/src/jvm/Reader.g b/src/jvm/Reader.g index 4ed11f79..e1fe0e42 100644 --- a/src/jvm/Reader.g +++ b/src/jvm/Reader.g @@ -119,6 +119,12 @@ throw exc; } expression returns[Object val] + :d = dotExpression {$val = $d.val;} + | e = otherThanDotExpression {$val = $e.val;} + ; + +fragment +otherThanDotExpression returns[Object val] : lt = literal {$val = $lt.val;} |s = symbol {$val = $s.val;} |k = keyword {$val = $k.val;} @@ -126,7 +132,6 @@ expression returns[Object val] |ve = vectorExpression {$val = $ve.val;} |me = mapExpression {$val = $me.val;} |mx = metaExpression {$val = $mx.val;} - |g = dotExpression {$val = $g.val;} |q = quotedExpression {$val = $q.val;} |ct = caretExpression {$val = $ct.val;} ; @@ -157,7 +162,7 @@ symbol returns[Symbol val] ; keyword returns[Keyword val] - :k = KeywordIdentifier {$val = new Keyword($k.text.substring(1));} + :k = KeywordIdentifier {$val = new Keyword(new Symbol($k.text.substring(1)));} ; @@ -223,7 +228,7 @@ dotExpression returns [Object val] @init{ List es = null; } - :s = symbol e = member+ {$val = RT.listStar(DOTDOT,s,RT.seq(es));} + :s = otherThanDotExpression e = member+ {$val = RT.listStar(DOTDOT,s,RT.seq(es));} ; quotedExpression returns[Object val] diff --git a/src/jvm/clojure/lang/ReaderLexer.java b/src/jvm/clojure/lang/ReaderLexer.java index d50e9540..172b370d 100644 --- a/src/jvm/clojure/lang/ReaderLexer.java +++ b/src/jvm/clojure/lang/ReaderLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.0 /Users/rich/dev/clojure/src/jvm/Reader.g 2007-07-16 11:13:35 +// $ANTLR 3.0 /Users/rich/dev/clojure/src/jvm/Reader.g 2007-07-20 09:22:37 /** * Copyright (c) Rich Hickey. All rights reserved. @@ -320,8 +320,8 @@ public final void mComma() throws RecognitionException{ try { int _type = Comma; - // /Users/rich/dev/clojure/src/jvm/Reader.g:237:10: ( ',' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:237:10: ',' + // /Users/rich/dev/clojure/src/jvm/Reader.g:242:10: ( ',' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:242:10: ',' { match(','); @@ -341,8 +341,8 @@ public final void mTrueToken() throws RecognitionException{ try { int _type = TrueToken; - // /Users/rich/dev/clojure/src/jvm/Reader.g:239:16: ( 'true' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:239:16: 'true' + // /Users/rich/dev/clojure/src/jvm/Reader.g:244:16: ( 'true' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:244:16: 'true' { match("true"); @@ -363,8 +363,8 @@ public final void mNullToken() throws RecognitionException{ try { int _type = NullToken; - // /Users/rich/dev/clojure/src/jvm/Reader.g:241:16: ( 'null' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:241:16: 'null' + // /Users/rich/dev/clojure/src/jvm/Reader.g:246:16: ( 'null' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:246:16: 'null' { match("null"); @@ -385,8 +385,8 @@ public final void mDotDot() throws RecognitionException{ try { int _type = DotDot; - // /Users/rich/dev/clojure/src/jvm/Reader.g:243:10: ( '..' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:243:10: '..' + // /Users/rich/dev/clojure/src/jvm/Reader.g:248:10: ( '..' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:248:10: '..' { match(".."); @@ -407,8 +407,8 @@ public final void mHexLiteral() throws RecognitionException{ try { int _type = HexLiteral; - // /Users/rich/dev/clojure/src/jvm/Reader.g:245:14: ( '0' ( 'x' | 'X' ) ( HexDigit )+ ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:245:14: '0' ( 'x' | 'X' ) ( HexDigit )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:250:14: ( '0' ( 'x' | 'X' ) ( HexDigit )+ ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:250:14: '0' ( 'x' | 'X' ) ( HexDigit )+ { match('0'); if(input.LA(1) == 'X' || input.LA(1) == 'x') @@ -424,7 +424,7 @@ public final void mHexLiteral() throws RecognitionException{ throw mse; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:245:28: ( HexDigit )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:250:28: ( HexDigit )+ int cnt1 = 0; loop1: do @@ -441,7 +441,7 @@ public final void mHexLiteral() throws RecognitionException{ switch(alt1) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:245:28: HexDigit + // /Users/rich/dev/clojure/src/jvm/Reader.g:250:28: HexDigit { mHexDigit(); @@ -474,10 +474,10 @@ public final void mDecimalLiteral() throws RecognitionException{ try { int _type = DecimalLiteral; - // /Users/rich/dev/clojure/src/jvm/Reader.g:247:18: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:247:18: ( '0' | '1' .. '9' ( '0' .. '9' )* ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:252:18: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:252:18: ( '0' | '1' .. '9' ( '0' .. '9' )* ) { - // /Users/rich/dev/clojure/src/jvm/Reader.g:247:18: ( '0' | '1' .. '9' ( '0' .. '9' )* ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:252:18: ( '0' | '1' .. '9' ( '0' .. '9' )* ) int alt3 = 2; int LA3_0 = input.LA(1); @@ -492,24 +492,24 @@ public final void mDecimalLiteral() throws RecognitionException{ else { NoViableAltException nvae = - new NoViableAltException("247:18: ( '0' | '1' .. '9' ( '0' .. '9' )* )", 3, 0, input); + new NoViableAltException("252:18: ( '0' | '1' .. '9' ( '0' .. '9' )* )", 3, 0, input); throw nvae; } switch(alt3) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:247:19: '0' + // /Users/rich/dev/clojure/src/jvm/Reader.g:252:19: '0' { match('0'); } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:247:25: '1' .. '9' ( '0' .. '9' )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:252:25: '1' .. '9' ( '0' .. '9' )* { matchRange('1', '9'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:247:34: ( '0' .. '9' )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:252:34: ( '0' .. '9' )* loop2: do { @@ -525,7 +525,7 @@ public final void mDecimalLiteral() throws RecognitionException{ switch(alt2) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:247:34: '0' .. '9' + // /Users/rich/dev/clojure/src/jvm/Reader.g:252:34: '0' .. '9' { matchRange('0', '9'); @@ -560,11 +560,11 @@ public final void mOctalLiteral() throws RecognitionException{ try { int _type = OctalLiteral; - // /Users/rich/dev/clojure/src/jvm/Reader.g:249:16: ( '0' ( '0' .. '7' )+ ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:249:16: '0' ( '0' .. '7' )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:254:16: ( '0' ( '0' .. '7' )+ ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:254:16: '0' ( '0' .. '7' )+ { match('0'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:249:20: ( '0' .. '7' )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:254:20: ( '0' .. '7' )+ int cnt4 = 0; loop4: do @@ -581,7 +581,7 @@ public final void mOctalLiteral() throws RecognitionException{ switch(alt4) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:249:21: '0' .. '7' + // /Users/rich/dev/clojure/src/jvm/Reader.g:254:21: '0' .. '7' { matchRange('0', '7'); @@ -613,8 +613,8 @@ public final void mOctalLiteral() throws RecognitionException{ public final void mHexDigit() throws RecognitionException{ try { - // /Users/rich/dev/clojure/src/jvm/Reader.g:252:12: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:252:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:257:12: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:257:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) { if((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'F') || (input.LA(1) >= 'a' && input.LA(1) <= 'f')) @@ -646,15 +646,15 @@ public final void mFloatingPointLiteral() throws RecognitionException{ try { int _type = FloatingPointLiteral; - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:9: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:9: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix ) int alt16 = 4; alt16 = dfa16.predict(input); switch(alt16) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? { - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:9: ( '0' .. '9' )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:9: ( '0' .. '9' )+ int cnt5 = 0; loop5: do @@ -671,7 +671,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt5) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:10: '0' .. '9' + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:10: '0' .. '9' { matchRange('0', '9'); @@ -688,7 +688,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ } while(true); match('.'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:25: ( '0' .. '9' )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:25: ( '0' .. '9' )* loop6: do { @@ -704,7 +704,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt6) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:26: '0' .. '9' + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:26: '0' .. '9' { matchRange('0', '9'); @@ -716,7 +716,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ } } while(true); - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:37: ( Exponent )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:37: ( Exponent )? int alt7 = 2; int LA7_0 = input.LA(1); @@ -727,7 +727,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt7) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:37: Exponent + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:37: Exponent { mExponent(); @@ -736,7 +736,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ } - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:47: ( FloatTypeSuffix )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:47: ( FloatTypeSuffix )? int alt8 = 2; int LA8_0 = input.LA(1); @@ -747,7 +747,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt8) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:255:47: FloatTypeSuffix + // /Users/rich/dev/clojure/src/jvm/Reader.g:260:47: FloatTypeSuffix { mFloatTypeSuffix(); @@ -760,10 +760,10 @@ public final void mFloatingPointLiteral() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:256:9: '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:261:9: '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? { match('.'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:256:13: ( '0' .. '9' )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:261:13: ( '0' .. '9' )+ int cnt9 = 0; loop9: do @@ -780,7 +780,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt9) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:256:14: '0' .. '9' + // /Users/rich/dev/clojure/src/jvm/Reader.g:261:14: '0' .. '9' { matchRange('0', '9'); @@ -796,7 +796,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ cnt9++; } while(true); - // /Users/rich/dev/clojure/src/jvm/Reader.g:256:25: ( Exponent )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:261:25: ( Exponent )? int alt10 = 2; int LA10_0 = input.LA(1); @@ -807,7 +807,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt10) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:256:25: Exponent + // /Users/rich/dev/clojure/src/jvm/Reader.g:261:25: Exponent { mExponent(); @@ -816,7 +816,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ } - // /Users/rich/dev/clojure/src/jvm/Reader.g:256:35: ( FloatTypeSuffix )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:261:35: ( FloatTypeSuffix )? int alt11 = 2; int LA11_0 = input.LA(1); @@ -827,7 +827,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt11) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:256:35: FloatTypeSuffix + // /Users/rich/dev/clojure/src/jvm/Reader.g:261:35: FloatTypeSuffix { mFloatTypeSuffix(); @@ -840,9 +840,9 @@ public final void mFloatingPointLiteral() throws RecognitionException{ } break; case 3: - // /Users/rich/dev/clojure/src/jvm/Reader.g:257:9: ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:262:9: ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? { - // /Users/rich/dev/clojure/src/jvm/Reader.g:257:9: ( '0' .. '9' )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:262:9: ( '0' .. '9' )+ int cnt12 = 0; loop12: do @@ -859,7 +859,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt12) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:257:10: '0' .. '9' + // /Users/rich/dev/clojure/src/jvm/Reader.g:262:10: '0' .. '9' { matchRange('0', '9'); @@ -876,7 +876,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ } while(true); mExponent(); - // /Users/rich/dev/clojure/src/jvm/Reader.g:257:30: ( FloatTypeSuffix )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:262:30: ( FloatTypeSuffix )? int alt13 = 2; int LA13_0 = input.LA(1); @@ -887,7 +887,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt13) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:257:30: FloatTypeSuffix + // /Users/rich/dev/clojure/src/jvm/Reader.g:262:30: FloatTypeSuffix { mFloatTypeSuffix(); @@ -900,9 +900,9 @@ public final void mFloatingPointLiteral() throws RecognitionException{ } break; case 4: - // /Users/rich/dev/clojure/src/jvm/Reader.g:258:9: ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix + // /Users/rich/dev/clojure/src/jvm/Reader.g:263:9: ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix { - // /Users/rich/dev/clojure/src/jvm/Reader.g:258:9: ( '0' .. '9' )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:263:9: ( '0' .. '9' )+ int cnt14 = 0; loop14: do @@ -919,7 +919,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt14) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:258:10: '0' .. '9' + // /Users/rich/dev/clojure/src/jvm/Reader.g:263:10: '0' .. '9' { matchRange('0', '9'); @@ -935,7 +935,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ cnt14++; } while(true); - // /Users/rich/dev/clojure/src/jvm/Reader.g:258:21: ( Exponent )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:263:21: ( Exponent )? int alt15 = 2; int LA15_0 = input.LA(1); @@ -946,7 +946,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{ switch(alt15) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:258:21: Exponent + // /Users/rich/dev/clojure/src/jvm/Reader.g:263:21: Exponent { mExponent(); @@ -974,8 +974,8 @@ public final void mFloatingPointLiteral() throws RecognitionException{ public final void mExponent() throws RecognitionException{ try { - // /Users/rich/dev/clojure/src/jvm/Reader.g:262:12: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:262:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:267:12: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:267:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ { if(input.LA(1) == 'E' || input.LA(1) == 'e') { @@ -990,7 +990,7 @@ public final void mExponent() throws RecognitionException{ throw mse; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:262:22: ( '+' | '-' )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:267:22: ( '+' | '-' )? int alt17 = 2; int LA17_0 = input.LA(1); @@ -1022,7 +1022,7 @@ public final void mExponent() throws RecognitionException{ } - // /Users/rich/dev/clojure/src/jvm/Reader.g:262:33: ( '0' .. '9' )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:267:33: ( '0' .. '9' )+ int cnt18 = 0; loop18: do @@ -1039,7 +1039,7 @@ public final void mExponent() throws RecognitionException{ switch(alt18) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:262:34: '0' .. '9' + // /Users/rich/dev/clojure/src/jvm/Reader.g:267:34: '0' .. '9' { matchRange('0', '9'); @@ -1070,8 +1070,8 @@ public final void mExponent() throws RecognitionException{ public final void mFloatTypeSuffix() throws RecognitionException{ try { - // /Users/rich/dev/clojure/src/jvm/Reader.g:265:19: ( ( 'f' | 'F' | 'd' | 'D' ) ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:265:19: ( 'f' | 'F' | 'd' | 'D' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:270:19: ( ( 'f' | 'F' | 'd' | 'D' ) ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:270:19: ( 'f' | 'F' | 'd' | 'D' ) { if(input.LA(1) == 'D' || input.LA(1) == 'F' || input.LA(1) == 'd' || input.LA(1) == 'f') { @@ -1102,11 +1102,11 @@ public final void mCharacterLiteral() throws RecognitionException{ try { int _type = CharacterLiteral; - // /Users/rich/dev/clojure/src/jvm/Reader.g:268:9: ( '\\\\' ( EscapeSequence | ~ ( '\\\\' ) ) ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:268:9: '\\\\' ( EscapeSequence | ~ ( '\\\\' ) ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:273:9: ( '\\\\' ( EscapeSequence | ~ ( '\\\\' ) ) ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:273:9: '\\\\' ( EscapeSequence | ~ ( '\\\\' ) ) { match('\\'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:268:14: ( EscapeSequence | ~ ( '\\\\' ) ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:273:14: ( EscapeSequence | ~ ( '\\\\' ) ) int alt19 = 2; int LA19_0 = input.LA(1); @@ -1121,21 +1121,21 @@ public final void mCharacterLiteral() throws RecognitionException{ else { NoViableAltException nvae = - new NoViableAltException("268:14: ( EscapeSequence | ~ ( '\\\\' ) )", 19, 0, input); + new NoViableAltException("273:14: ( EscapeSequence | ~ ( '\\\\' ) )", 19, 0, input); throw nvae; } switch(alt19) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:268:16: EscapeSequence + // /Users/rich/dev/clojure/src/jvm/Reader.g:273:16: EscapeSequence { mEscapeSequence(); } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:268:33: ~ ( '\\\\' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:273:33: ~ ( '\\\\' ) { if((input.LA(1) >= '\u0000' && input.LA(1) <= '[') || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFE')) { @@ -1173,11 +1173,11 @@ public final void mStringLiteral() throws RecognitionException{ try { int _type = StringLiteral; - // /Users/rich/dev/clojure/src/jvm/Reader.g:272:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:272:8: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' + // /Users/rich/dev/clojure/src/jvm/Reader.g:277:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:277:8: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' { match('\"'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:272:12: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:277:12: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* loop20: do { @@ -1198,14 +1198,14 @@ public final void mStringLiteral() throws RecognitionException{ switch(alt20) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:272:14: EscapeSequence + // /Users/rich/dev/clojure/src/jvm/Reader.g:277:14: EscapeSequence { mEscapeSequence(); } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:272:31: ~ ( '\\\\' | '\"' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:277:31: ~ ( '\\\\' | '\"' ) { if((input.LA(1) >= '\u0000' && input.LA(1) <= '!') || (input.LA(1) >= '#' && input.LA(1) <= '[') || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFE')) @@ -1247,7 +1247,7 @@ public final void mStringLiteral() throws RecognitionException{ public final void mEscapeSequence() throws RecognitionException{ try { - // /Users/rich/dev/clojure/src/jvm/Reader.g:277:9: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:282:9: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape ) int alt21 = 3; int LA21_0 = input.LA(1); @@ -1287,7 +1287,7 @@ public final void mEscapeSequence() throws RecognitionException{ default: NoViableAltException nvae = new NoViableAltException( - "275:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", + "280:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", 21, 1, input); throw nvae; @@ -1298,7 +1298,7 @@ public final void mEscapeSequence() throws RecognitionException{ { NoViableAltException nvae = new NoViableAltException( - "275:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", + "280:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", 21, 0, input); throw nvae; @@ -1306,7 +1306,7 @@ public final void mEscapeSequence() throws RecognitionException{ switch(alt21) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:277:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:282:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) { match('\\'); if(input.LA(1) == '\"' || input.LA(1) == '\'' || input.LA(1) == '\\' || input.LA(1) == 'b' || @@ -1327,14 +1327,14 @@ public final void mEscapeSequence() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:278:9: UnicodeEscape + // /Users/rich/dev/clojure/src/jvm/Reader.g:283:9: UnicodeEscape { mUnicodeEscape(); } break; case 3: - // /Users/rich/dev/clojure/src/jvm/Reader.g:279:9: OctalEscape + // /Users/rich/dev/clojure/src/jvm/Reader.g:284:9: OctalEscape { mOctalEscape(); @@ -1354,7 +1354,7 @@ public final void mEscapeSequence() throws RecognitionException{ public final void mOctalEscape() throws RecognitionException{ try { - // /Users/rich/dev/clojure/src/jvm/Reader.g:284:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:289:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ) int alt22 = 3; int LA22_0 = input.LA(1); @@ -1401,7 +1401,7 @@ public final void mOctalEscape() throws RecognitionException{ { NoViableAltException nvae = new NoViableAltException( - "282:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", + "287:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 22, 1, input); throw nvae; @@ -1411,7 +1411,7 @@ public final void mOctalEscape() throws RecognitionException{ { NoViableAltException nvae = new NoViableAltException( - "282:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", + "287:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 22, 0, input); throw nvae; @@ -1419,25 +1419,25 @@ public final void mOctalEscape() throws RecognitionException{ switch(alt22) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:284:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:289:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) { match('\\'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:284:14: ( '0' .. '3' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:284:15: '0' .. '3' + // /Users/rich/dev/clojure/src/jvm/Reader.g:289:14: ( '0' .. '3' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:289:15: '0' .. '3' { matchRange('0', '3'); } - // /Users/rich/dev/clojure/src/jvm/Reader.g:284:25: ( '0' .. '7' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:284:26: '0' .. '7' + // /Users/rich/dev/clojure/src/jvm/Reader.g:289:25: ( '0' .. '7' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:289:26: '0' .. '7' { matchRange('0', '7'); } - // /Users/rich/dev/clojure/src/jvm/Reader.g:284:36: ( '0' .. '7' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:284:37: '0' .. '7' + // /Users/rich/dev/clojure/src/jvm/Reader.g:289:36: ( '0' .. '7' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:289:37: '0' .. '7' { matchRange('0', '7'); @@ -1447,18 +1447,18 @@ public final void mOctalEscape() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:285:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:290:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) { match('\\'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:285:14: ( '0' .. '7' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:285:15: '0' .. '7' + // /Users/rich/dev/clojure/src/jvm/Reader.g:290:14: ( '0' .. '7' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:290:15: '0' .. '7' { matchRange('0', '7'); } - // /Users/rich/dev/clojure/src/jvm/Reader.g:285:25: ( '0' .. '7' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:285:26: '0' .. '7' + // /Users/rich/dev/clojure/src/jvm/Reader.g:290:25: ( '0' .. '7' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:290:26: '0' .. '7' { matchRange('0', '7'); @@ -1468,11 +1468,11 @@ public final void mOctalEscape() throws RecognitionException{ } break; case 3: - // /Users/rich/dev/clojure/src/jvm/Reader.g:286:9: '\\\\' ( '0' .. '7' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:291:9: '\\\\' ( '0' .. '7' ) { match('\\'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:286:14: ( '0' .. '7' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:286:15: '0' .. '7' + // /Users/rich/dev/clojure/src/jvm/Reader.g:291:14: ( '0' .. '7' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:291:15: '0' .. '7' { matchRange('0', '7'); @@ -1495,8 +1495,8 @@ public final void mOctalEscape() throws RecognitionException{ public final void mUnicodeEscape() throws RecognitionException{ try { - // /Users/rich/dev/clojure/src/jvm/Reader.g:291:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:291:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit + // /Users/rich/dev/clojure/src/jvm/Reader.g:296:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:296:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit { match('\\'); match('u'); @@ -1520,11 +1520,11 @@ public final void mIdentifier() throws RecognitionException{ try { int _type = Identifier; - // /Users/rich/dev/clojure/src/jvm/Reader.g:301:6: ( Letter ( '-' | Letter | JavaIDDigit )* ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:301:6: Letter ( '-' | Letter | JavaIDDigit )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:306:6: ( Letter ( '-' | Letter | JavaIDDigit )* ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:306:6: Letter ( '-' | Letter | JavaIDDigit )* { mLetter(); - // /Users/rich/dev/clojure/src/jvm/Reader.g:301:13: ( '-' | Letter | JavaIDDigit )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:306:13: ( '-' | Letter | JavaIDDigit )* loop23: do { @@ -1595,8 +1595,8 @@ public final void mNSIdentifier() throws RecognitionException{ try { int _type = NSIdentifier; - // /Users/rich/dev/clojure/src/jvm/Reader.g:305:3: ( Identifier '/' Identifier ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:305:3: Identifier '/' Identifier + // /Users/rich/dev/clojure/src/jvm/Reader.g:310:3: ( Identifier '/' Identifier ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:310:3: Identifier '/' Identifier { mIdentifier(); match('/'); @@ -1618,13 +1618,13 @@ public final void mKeywordIdentifier() throws RecognitionException{ try { int _type = KeywordIdentifier; - // /Users/rich/dev/clojure/src/jvm/Reader.g:309:3: ( ':' Identifier '/' Identifier | ':' Identifier ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:314:3: ( ':' Identifier '/' Identifier | ':' Identifier ) int alt24 = 2; alt24 = dfa24.predict(input); switch(alt24) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:309:3: ':' Identifier '/' Identifier + // /Users/rich/dev/clojure/src/jvm/Reader.g:314:3: ':' Identifier '/' Identifier { match(':'); mIdentifier(); @@ -1634,7 +1634,7 @@ public final void mKeywordIdentifier() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:310:3: ':' Identifier + // /Users/rich/dev/clojure/src/jvm/Reader.g:315:3: ':' Identifier { match(':'); mIdentifier(); @@ -1657,11 +1657,11 @@ public final void mMethodIdentifier() throws RecognitionException{ try { int _type = MethodIdentifier; - // /Users/rich/dev/clojure/src/jvm/Reader.g:314:9: ( Letter ( Letter | JavaIDDigit )* '(' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:314:9: Letter ( Letter | JavaIDDigit )* '(' + // /Users/rich/dev/clojure/src/jvm/Reader.g:319:9: ( Letter ( Letter | JavaIDDigit )* '(' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:319:9: Letter ( Letter | JavaIDDigit )* '(' { mLetter(); - // /Users/rich/dev/clojure/src/jvm/Reader.g:314:16: ( Letter | JavaIDDigit )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:319:16: ( Letter | JavaIDDigit )* loop25: do { @@ -1732,7 +1732,7 @@ public final void mMethodIdentifier() throws RecognitionException{ public final void mLetter() throws RecognitionException{ try { - // /Users/rich/dev/clojure/src/jvm/Reader.g:321:8: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' | '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f' | '\\u3300' .. '\\u337f' | '\\u3400' .. '\\u3d2d' | '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:326:8: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' | '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f' | '\\u3300' .. '\\u337f' | '\\u3400' .. '\\u3d2d' | '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' ) // /Users/rich/dev/clojure/src/jvm/Reader.g: { if(input.LA(1) == '$' || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || @@ -1770,7 +1770,7 @@ public final void mLetter() throws RecognitionException{ public final void mJavaIDDigit() throws RecognitionException{ try { - // /Users/rich/dev/clojure/src/jvm/Reader.g:339:6: ( '\\u0030' .. '\\u0039' | '\\u0660' .. '\\u0669' | '\\u06f0' .. '\\u06f9' | '\\u0966' .. '\\u096f' | '\\u09e6' .. '\\u09ef' | '\\u0a66' .. '\\u0a6f' | '\\u0ae6' .. '\\u0aef' | '\\u0b66' .. '\\u0b6f' | '\\u0be7' .. '\\u0bef' | '\\u0c66' .. '\\u0c6f' | '\\u0ce6' .. '\\u0cef' | '\\u0d66' .. '\\u0d6f' | '\\u0e50' .. '\\u0e59' | '\\u0ed0' .. '\\u0ed9' | '\\u1040' .. '\\u1049' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:344:6: ( '\\u0030' .. '\\u0039' | '\\u0660' .. '\\u0669' | '\\u06f0' .. '\\u06f9' | '\\u0966' .. '\\u096f' | '\\u09e6' .. '\\u09ef' | '\\u0a66' .. '\\u0a6f' | '\\u0ae6' .. '\\u0aef' | '\\u0b66' .. '\\u0b6f' | '\\u0be7' .. '\\u0bef' | '\\u0c66' .. '\\u0c6f' | '\\u0ce6' .. '\\u0cef' | '\\u0d66' .. '\\u0d6f' | '\\u0e50' .. '\\u0e59' | '\\u0ed0' .. '\\u0ed9' | '\\u1040' .. '\\u1049' ) // /Users/rich/dev/clojure/src/jvm/Reader.g: { if((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= '\u0660' && input.LA(1) <= '\u0669') || @@ -1814,8 +1814,8 @@ public final void mWS() throws RecognitionException{ try { int _type = WS; - // /Users/rich/dev/clojure/src/jvm/Reader.g:356:8: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:356:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:361:8: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:361:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) { if((input.LA(1) >= '\t' && input.LA(1) <= '\n') || (input.LA(1) >= '\f' && input.LA(1) <= '\r') || input.LA(1) == ' ') @@ -1849,12 +1849,12 @@ public final void mCOMMENT() throws RecognitionException{ try { int _type = COMMENT; - // /Users/rich/dev/clojure/src/jvm/Reader.g:360:9: ( '#|' ( options {greedy=false; } : . )* '|#' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:360:9: '#|' ( options {greedy=false; } : . )* '|#' + // /Users/rich/dev/clojure/src/jvm/Reader.g:365:9: ( '#|' ( options {greedy=false; } : . )* '|#' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:365:9: '#|' ( options {greedy=false; } : . )* '|#' { match("#|"); - // /Users/rich/dev/clojure/src/jvm/Reader.g:360:14: ( options {greedy=false; } : . )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:365:14: ( options {greedy=false; } : . )* loop26: do { @@ -1885,7 +1885,7 @@ public final void mCOMMENT() throws RecognitionException{ switch(alt26) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:360:42: . + // /Users/rich/dev/clojure/src/jvm/Reader.g:365:42: . { matchAny(); @@ -1917,11 +1917,11 @@ public final void mLINE_COMMENT() throws RecognitionException{ try { int _type = LINE_COMMENT; - // /Users/rich/dev/clojure/src/jvm/Reader.g:364:7: ( ';' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:364:7: ';' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' + // /Users/rich/dev/clojure/src/jvm/Reader.g:369:7: ( ';' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:369:7: ';' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' { match(';'); - // /Users/rich/dev/clojure/src/jvm/Reader.g:364:11: (~ ( '\\n' | '\\r' ) )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:369:11: (~ ( '\\n' | '\\r' ) )* loop27: do { @@ -1938,7 +1938,7 @@ public final void mLINE_COMMENT() throws RecognitionException{ switch(alt27) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:364:11: ~ ( '\\n' | '\\r' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:369:11: ~ ( '\\n' | '\\r' ) { if((input.LA(1) >= '\u0000' && input.LA(1) <= '\t') || (input.LA(1) >= '\u000B' && input.LA(1) <= '\f') || @@ -1964,7 +1964,7 @@ public final void mLINE_COMMENT() throws RecognitionException{ } } while(true); - // /Users/rich/dev/clojure/src/jvm/Reader.g:364:25: ( '\\r' )? + // /Users/rich/dev/clojure/src/jvm/Reader.g:369:25: ( '\\r' )? int alt28 = 2; int LA28_0 = input.LA(1); @@ -1975,7 +1975,7 @@ public final void mLINE_COMMENT() throws RecognitionException{ switch(alt28) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:364:25: '\\r' + // /Users/rich/dev/clojure/src/jvm/Reader.g:369:25: '\\r' { match('\r'); @@ -2266,7 +2266,7 @@ class DFA16 extends DFA{ } public String getDescription(){ - return "254:1: FloatingPointLiteral : ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix );"; + return "259:1: FloatingPointLiteral : ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix );"; } } @@ -2333,7 +2333,7 @@ class DFA24 extends DFA{ } public String getDescription(){ - return "308:1: KeywordIdentifier : ( ':' Identifier '/' Identifier | ':' Identifier );"; + return "313:1: KeywordIdentifier : ( ':' Identifier '/' Identifier | ':' Identifier );"; } } diff --git a/src/jvm/clojure/lang/ReaderParser.java b/src/jvm/clojure/lang/ReaderParser.java index e4ab4e96..5cfbbbb0 100644 --- a/src/jvm/clojure/lang/ReaderParser.java +++ b/src/jvm/clojure/lang/ReaderParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.0 /Users/rich/dev/clojure/src/jvm/Reader.g 2007-07-16 11:13:34 +// $ANTLR 3.0 /Users/rich/dev/clojure/src/jvm/Reader.g 2007-07-20 09:22:37 package clojure.lang; @@ -61,7 +61,7 @@ public static final int FloatTypeSuffix = 20; public ReaderParser(TokenStream input){ super(input); - ruleMemo = new HashMap[48 + 1]; + ruleMemo = new HashMap[49 + 1]; } @@ -139,29 +139,13 @@ public void recoverFromMismatchedSet(IntStream input, // $ANTLR start expression -// /Users/rich/dev/clojure/src/jvm/Reader.g:121:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression | q= quotedExpression | ct= caretExpression ); +// /Users/rich/dev/clojure/src/jvm/Reader.g:121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression ); public final Object expression() throws RecognitionException{ Object val = null; int expression_StartIndex = input.index(); - Object lt = null; - - Symbol s = null; - - Keyword k = null; + Object d = null; - ISeq le = null; - - IPersistentArray ve = null; - - IPersistentMap me = null; - - Obj mx = null; - - Object g = null; - - Object q = null; - - Object ct = null; + Object e = null; try @@ -170,34 +154,245 @@ public final Object expression() throws RecognitionException{ { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:122:4: (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression | q= quotedExpression | ct= caretExpression ) - int alt1 = 10; + // /Users/rich/dev/clojure/src/jvm/Reader.g:122:3: (d= dotExpression | e= otherThanDotExpression ) + int alt1 = 2; switch(input.LA(1)) { + case HexLiteral: + { + int LA1_1 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 1, input); + + throw nvae; + } + } + break; + case OctalLiteral: + { + int LA1_2 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 2, input); + + throw nvae; + } + } + break; + case DecimalLiteral: + { + int LA1_3 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 3, input); + + throw nvae; + } + } + break; case FloatingPointLiteral: + { + int LA1_4 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 4, input); + + throw nvae; + } + } + break; case CharacterLiteral: + { + int LA1_5 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 5, input); + + throw nvae; + } + } + break; case StringLiteral: + { + int LA1_6 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 6, input); + + throw nvae; + } + } + break; case TrueToken: + { + int LA1_7 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 7, input); + + throw nvae; + } + } + break; case NullToken: - case DecimalLiteral: - case HexLiteral: - case OctalLiteral: { - alt1 = 1; + int LA1_8 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 8, input); + + throw nvae; + } } break; case Identifier: { - int LA1_2 = input.LA(2); + int LA1_9 = input.LA(2); - if((LA1_2 == EOF || (LA1_2 >= Identifier && LA1_2 <= OctalLiteral) || LA1_2 == Comma || - (LA1_2 >= 29 && LA1_2 <= 34) || LA1_2 == 36 || (LA1_2 >= 38 && LA1_2 <= 39))) + if((synpred1())) { - alt1 = 2; + alt1 = 1; } - else if((LA1_2 == 37)) + else if((true)) { - alt1 = 8; + alt1 = 2; } else { @@ -208,8 +403,8 @@ public final Object expression() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "121:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression | q= quotedExpression | ct= caretExpression );", - 1, 2, input); + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 9, input); throw nvae; } @@ -217,16 +412,15 @@ public final Object expression() throws RecognitionException{ break; case NSIdentifier: { - int LA1_3 = input.LA(2); + int LA1_10 = input.LA(2); - if((LA1_3 == EOF || (LA1_3 >= Identifier && LA1_3 <= OctalLiteral) || LA1_3 == Comma || - (LA1_3 >= 29 && LA1_3 <= 34) || LA1_3 == 36 || (LA1_3 >= 38 && LA1_3 <= 39))) + if((synpred1())) { - alt1 = 2; + alt1 = 1; } - else if((LA1_3 == 37)) + else if((true)) { - alt1 = 8; + alt1 = 2; } else { @@ -237,8 +431,8 @@ public final Object expression() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "121:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression | q= quotedExpression | ct= caretExpression );", - 1, 3, input); + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 10, input); throw nvae; } @@ -246,16 +440,15 @@ public final Object expression() throws RecognitionException{ break; case DotDot: { - int LA1_4 = input.LA(2); + int LA1_11 = input.LA(2); - if((LA1_4 == EOF || (LA1_4 >= Identifier && LA1_4 <= OctalLiteral) || LA1_4 == Comma || - (LA1_4 >= 29 && LA1_4 <= 34) || LA1_4 == 36 || (LA1_4 >= 38 && LA1_4 <= 39))) + if((synpred1())) { - alt1 = 2; + alt1 = 1; } - else if((LA1_4 == 37)) + else if((true)) { - alt1 = 8; + alt1 = 2; } else { @@ -266,8 +459,8 @@ public final Object expression() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "121:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression | q= quotedExpression | ct= caretExpression );", - 1, 4, input); + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 11, input); throw nvae; } @@ -275,37 +468,198 @@ public final Object expression() throws RecognitionException{ break; case KeywordIdentifier: { - alt1 = 3; + int LA1_12 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 12, input); + + throw nvae; + } } break; case 29: { - alt1 = 4; + int LA1_13 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 13, input); + + throw nvae; + } } break; case 31: { - alt1 = 5; + int LA1_14 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 14, input); + + throw nvae; + } } break; case 33: { - alt1 = 6; + int LA1_15 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 15, input); + + throw nvae; + } } break; case 36: { - alt1 = 7; + int LA1_16 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 16, input); + + throw nvae; + } } break; case 38: { - alt1 = 9; + int LA1_17 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 17, input); + + throw nvae; + } } break; case 39: { - alt1 = 10; + int LA1_18 = input.LA(2); + + if((synpred1())) + { + alt1 = 1; + } + else if((true)) + { + alt1 = 2; + } + else + { + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", + 1, 18, input); + + throw nvae; + } } break; default: @@ -316,7 +670,7 @@ public final Object expression() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "121:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression | q= quotedExpression | ct= caretExpression );", + "121:1: expression returns [Object val] : (d= dotExpression | e= otherThanDotExpression );", 1, 0, input); throw nvae; @@ -325,9 +679,161 @@ public final Object expression() throws RecognitionException{ switch(alt1) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:122:4: lt= literal + // /Users/rich/dev/clojure/src/jvm/Reader.g:122:3: d= dotExpression + { + pushFollow(FOLLOW_dotExpression_in_expression72); + d = dotExpression(); + _fsp--; + if(failed) return val; + if(backtracking == 0) + { + val = d; + } + + } + break; + case 2: + // /Users/rich/dev/clojure/src/jvm/Reader.g:123:4: e= otherThanDotExpression + { + pushFollow(FOLLOW_otherThanDotExpression_in_expression83); + e = otherThanDotExpression(); + _fsp--; + if(failed) return val; + if(backtracking == 0) + { + val = e; + } + + } + break; + + } + } + + catch(RecognitionException exc) + { + throw exc; + } + finally + { + if(backtracking > 0) + { + memoize(input, 1, expression_StartIndex); + } + } + return val; +} +// $ANTLR end expression + +// $ANTLR start otherThanDotExpression +// /Users/rich/dev/clojure/src/jvm/Reader.g:126:1: fragment otherThanDotExpression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | q= quotedExpression | ct= caretExpression ); + +public final Object otherThanDotExpression() throws RecognitionException{ + Object val = null; + int otherThanDotExpression_StartIndex = input.index(); + Object lt = null; + + Symbol s = null; + + Keyword k = null; + + ISeq le = null; + + IPersistentArray ve = null; + + IPersistentMap me = null; + + Obj mx = null; + + Object q = null; + + Object ct = null; + + + try + { + if(backtracking > 0 && alreadyParsedRule(input, 2)) + { + return val; + } + // /Users/rich/dev/clojure/src/jvm/Reader.g:128:4: (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | q= quotedExpression | ct= caretExpression ) + int alt2 = 9; + switch(input.LA(1)) + { + case FloatingPointLiteral: + case CharacterLiteral: + case StringLiteral: + case TrueToken: + case NullToken: + case DecimalLiteral: + case HexLiteral: + case OctalLiteral: + { + alt2 = 1; + } + break; + case Identifier: + case NSIdentifier: + case DotDot: + { + alt2 = 2; + } + break; + case KeywordIdentifier: + { + alt2 = 3; + } + break; + case 29: + { + alt2 = 4; + } + break; + case 31: + { + alt2 = 5; + } + break; + case 33: + { + alt2 = 6; + } + break; + case 36: + { + alt2 = 7; + } + break; + case 38: + { + alt2 = 8; + } + break; + case 39: + { + alt2 = 9; + } + break; + default: + if(backtracking > 0) + { + failed = true; + return val; + } + NoViableAltException nvae = + new NoViableAltException( + "126:1: fragment otherThanDotExpression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | q= quotedExpression | ct= caretExpression );", + 2, 0, input); + + throw nvae; + } + + switch(alt2) + { + case 1: + // /Users/rich/dev/clojure/src/jvm/Reader.g:128:4: lt= literal { - pushFollow(FOLLOW_literal_in_expression73); + pushFollow(FOLLOW_literal_in_otherThanDotExpression106); lt = literal(); _fsp--; if(failed) return val; @@ -339,9 +845,9 @@ public final Object expression() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:123:3: s= symbol + // /Users/rich/dev/clojure/src/jvm/Reader.g:129:3: s= symbol { - pushFollow(FOLLOW_symbol_in_expression83); + pushFollow(FOLLOW_symbol_in_otherThanDotExpression116); s = symbol(); _fsp--; if(failed) return val; @@ -353,9 +859,9 @@ public final Object expression() throws RecognitionException{ } break; case 3: - // /Users/rich/dev/clojure/src/jvm/Reader.g:124:3: k= keyword + // /Users/rich/dev/clojure/src/jvm/Reader.g:130:3: k= keyword { - pushFollow(FOLLOW_keyword_in_expression93); + pushFollow(FOLLOW_keyword_in_otherThanDotExpression126); k = keyword(); _fsp--; if(failed) return val; @@ -367,9 +873,9 @@ public final Object expression() throws RecognitionException{ } break; case 4: - // /Users/rich/dev/clojure/src/jvm/Reader.g:125:3: le= listExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:131:3: le= listExpression { - pushFollow(FOLLOW_listExpression_in_expression103); + pushFollow(FOLLOW_listExpression_in_otherThanDotExpression136); le = listExpression(); _fsp--; if(failed) return val; @@ -381,9 +887,9 @@ public final Object expression() throws RecognitionException{ } break; case 5: - // /Users/rich/dev/clojure/src/jvm/Reader.g:126:3: ve= vectorExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:132:3: ve= vectorExpression { - pushFollow(FOLLOW_vectorExpression_in_expression113); + pushFollow(FOLLOW_vectorExpression_in_otherThanDotExpression146); ve = vectorExpression(); _fsp--; if(failed) return val; @@ -395,9 +901,9 @@ public final Object expression() throws RecognitionException{ } break; case 6: - // /Users/rich/dev/clojure/src/jvm/Reader.g:127:3: me= mapExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:133:3: me= mapExpression { - pushFollow(FOLLOW_mapExpression_in_expression123); + pushFollow(FOLLOW_mapExpression_in_otherThanDotExpression156); me = mapExpression(); _fsp--; if(failed) return val; @@ -409,9 +915,9 @@ public final Object expression() throws RecognitionException{ } break; case 7: - // /Users/rich/dev/clojure/src/jvm/Reader.g:128:3: mx= metaExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:134:3: mx= metaExpression { - pushFollow(FOLLOW_metaExpression_in_expression133); + pushFollow(FOLLOW_metaExpression_in_otherThanDotExpression166); mx = metaExpression(); _fsp--; if(failed) return val; @@ -423,23 +929,9 @@ public final Object expression() throws RecognitionException{ } break; case 8: - // /Users/rich/dev/clojure/src/jvm/Reader.g:129:3: g= dotExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:135:3: q= quotedExpression { - pushFollow(FOLLOW_dotExpression_in_expression143); - g = dotExpression(); - _fsp--; - if(failed) return val; - if(backtracking == 0) - { - val = g; - } - - } - break; - case 9: - // /Users/rich/dev/clojure/src/jvm/Reader.g:130:3: q= quotedExpression - { - pushFollow(FOLLOW_quotedExpression_in_expression153); + pushFollow(FOLLOW_quotedExpression_in_otherThanDotExpression176); q = quotedExpression(); _fsp--; if(failed) return val; @@ -450,10 +942,10 @@ public final Object expression() throws RecognitionException{ } break; - case 10: - // /Users/rich/dev/clojure/src/jvm/Reader.g:131:3: ct= caretExpression + case 9: + // /Users/rich/dev/clojure/src/jvm/Reader.g:136:3: ct= caretExpression { - pushFollow(FOLLOW_caretExpression_in_expression163); + pushFollow(FOLLOW_caretExpression_in_otherThanDotExpression186); ct = caretExpression(); _fsp--; if(failed) return val; @@ -476,15 +968,15 @@ public final Object expression() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 1, expression_StartIndex); + memoize(input, 2, otherThanDotExpression_StartIndex); } } return val; } -// $ANTLR end expression +// $ANTLR end otherThanDotExpression // $ANTLR start listExpression -// /Users/rich/dev/clojure/src/jvm/Reader.g:134:1: listExpression returns [ISeq val] : '(' es= expressions ')' ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:139:1: listExpression returns [ISeq val] : '(' es= expressions ')' ; public final ISeq listExpression() throws RecognitionException{ ISeq val = null; @@ -494,20 +986,20 @@ public final ISeq listExpression() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 2)) + if(backtracking > 0 && alreadyParsedRule(input, 3)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:135:4: ( '(' es= expressions ')' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:135:4: '(' es= expressions ')' + // /Users/rich/dev/clojure/src/jvm/Reader.g:140:4: ( '(' es= expressions ')' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:140:4: '(' es= expressions ')' { - match(input, 29, FOLLOW_29_in_listExpression180); + match(input, 29, FOLLOW_29_in_listExpression203); if(failed) return val; - pushFollow(FOLLOW_expressions_in_listExpression187); + pushFollow(FOLLOW_expressions_in_listExpression210); es = expressions(); _fsp--; if(failed) return val; - match(input, 30, FOLLOW_30_in_listExpression189); + match(input, 30, FOLLOW_30_in_listExpression212); if(failed) return val; if(backtracking == 0) { @@ -526,7 +1018,7 @@ public final ISeq listExpression() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 2, listExpression_StartIndex); + memoize(input, 3, listExpression_StartIndex); } } return val; @@ -534,7 +1026,7 @@ public final ISeq listExpression() throws RecognitionException{ // $ANTLR end listExpression // $ANTLR start expressions -// /Users/rich/dev/clojure/src/jvm/Reader.g:138:10: fragment expressions returns [List es] : (e= expression )* ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:143:10: fragment expressions returns [List es] : (e= expression )* ; public final List expressions() throws RecognitionException{ List es = null; @@ -544,42 +1036,46 @@ public final List expressions() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 3)) + if(backtracking > 0 && alreadyParsedRule(input, 4)) { return es; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:139:4: ( (e= expression )* ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:139:4: (e= expression )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:144:4: ( (e= expression )* ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:144:4: (e= expression )* { - // /Users/rich/dev/clojure/src/jvm/Reader.g:139:6: (e= expression )* - loop2: + // /Users/rich/dev/clojure/src/jvm/Reader.g:144:6: (e= expression )* + loop3: do { - int alt2 = 2; - int LA2_0 = input.LA(1); + int alt3 = 2; + int LA3_0 = input.LA(1); - if(((LA2_0 >= Identifier && LA2_0 <= OctalLiteral) || LA2_0 == 29 || LA2_0 == 31 || LA2_0 == 33 || - LA2_0 == 36 || (LA2_0 >= 38 && LA2_0 <= 39))) + if(((LA3_0 >= Identifier && LA3_0 <= OctalLiteral) || LA3_0 == 29 || LA3_0 == 31 || LA3_0 == 33 || + LA3_0 == 36 || (LA3_0 >= 38 && LA3_0 <= 39))) { - alt2 = 1; + alt3 = 1; } - switch(alt2) + switch(alt3) { case 1: // /Users/rich/dev/clojure/src/jvm/Reader.g:0:0: e= expression { - pushFollow(FOLLOW_expression_in_expressions211); + pushFollow(FOLLOW_expression_in_expressions234); e = expression(); _fsp--; if(failed) return es; + //WARNING- HAND MODIFIED! + if(es == null) es = new ArrayList(); + es.add(e); + // END HAND MODIFIED } break; default: - break loop2; + break loop3; } } while(true); @@ -596,7 +1092,7 @@ public final List expressions() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 3, expressions_StartIndex); + memoize(input, 4, expressions_StartIndex); } } return es; @@ -604,7 +1100,7 @@ public final List expressions() throws RecognitionException{ // $ANTLR end expressions // $ANTLR start vectorExpression -// /Users/rich/dev/clojure/src/jvm/Reader.g:142:1: vectorExpression returns [IPersistentArray val] : '[' es= expressions ']' ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:147:1: vectorExpression returns [IPersistentArray val] : '[' es= expressions ']' ; public final IPersistentArray vectorExpression() throws RecognitionException{ IPersistentArray val = null; @@ -614,20 +1110,20 @@ public final IPersistentArray vectorExpression() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 4)) + if(backtracking > 0 && alreadyParsedRule(input, 5)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:143:4: ( '[' es= expressions ']' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:143:4: '[' es= expressions ']' + // /Users/rich/dev/clojure/src/jvm/Reader.g:148:4: ( '[' es= expressions ']' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:148:4: '[' es= expressions ']' { - match(input, 31, FOLLOW_31_in_vectorExpression228); + match(input, 31, FOLLOW_31_in_vectorExpression251); if(failed) return val; - pushFollow(FOLLOW_expressions_in_vectorExpression234); + pushFollow(FOLLOW_expressions_in_vectorExpression257); es = expressions(); _fsp--; if(failed) return val; - match(input, 32, FOLLOW_32_in_vectorExpression236); + match(input, 32, FOLLOW_32_in_vectorExpression259); if(failed) return val; if(backtracking == 0) { @@ -646,7 +1142,7 @@ public final IPersistentArray vectorExpression() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 4, vectorExpression_StartIndex); + memoize(input, 5, vectorExpression_StartIndex); } } return val; @@ -654,7 +1150,7 @@ public final IPersistentArray vectorExpression() throws RecognitionException{ // $ANTLR end vectorExpression // $ANTLR start mapExpression -// /Users/rich/dev/clojure/src/jvm/Reader.g:146:1: mapExpression returns [IPersistentMap val] : '{' (k= expression v= expression )* '}' ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:151:1: mapExpression returns [IPersistentMap val] : '{' (k= expression v= expression )* '}' ; public final IPersistentMap mapExpression() throws RecognitionException{ IPersistentMap val = null; @@ -668,52 +1164,55 @@ public final IPersistentMap mapExpression() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 5)) + if(backtracking > 0 && alreadyParsedRule(input, 6)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:150:4: ( '{' (k= expression v= expression )* '}' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:150:4: '{' (k= expression v= expression )* '}' + // /Users/rich/dev/clojure/src/jvm/Reader.g:155:4: ( '{' (k= expression v= expression )* '}' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:155:4: '{' (k= expression v= expression )* '}' { - match(input, 33, FOLLOW_33_in_mapExpression256); + match(input, 33, FOLLOW_33_in_mapExpression279); if(failed) return val; - // /Users/rich/dev/clojure/src/jvm/Reader.g:150:8: (k= expression v= expression )* - loop3: + // /Users/rich/dev/clojure/src/jvm/Reader.g:155:8: (k= expression v= expression )* + loop4: do { - int alt3 = 2; - int LA3_0 = input.LA(1); + int alt4 = 2; + int LA4_0 = input.LA(1); - if(((LA3_0 >= Identifier && LA3_0 <= OctalLiteral) || LA3_0 == 29 || LA3_0 == 31 || LA3_0 == 33 || - LA3_0 == 36 || (LA3_0 >= 38 && LA3_0 <= 39))) + if(((LA4_0 >= Identifier && LA4_0 <= OctalLiteral) || LA4_0 == 29 || LA4_0 == 31 || LA4_0 == 33 || + LA4_0 == 36 || (LA4_0 >= 38 && LA4_0 <= 39))) { - alt3 = 1; + alt4 = 1; } - switch(alt3) + switch(alt4) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:150:9: k= expression v= expression + // /Users/rich/dev/clojure/src/jvm/Reader.g:155:9: k= expression v= expression { - pushFollow(FOLLOW_expression_in_mapExpression261); + pushFollow(FOLLOW_expression_in_mapExpression284); k = expression(); _fsp--; if(failed) return val; - pushFollow(FOLLOW_expression_in_mapExpression265); + pushFollow(FOLLOW_expression_in_mapExpression288); v = expression(); _fsp--; if(failed) return val; + //WARNING- HAND MODIFIED! + val = val.assoc(k, v); + // END HAND MODIFIED } break; default: - break loop3; + break loop4; } } while(true); - match(input, 34, FOLLOW_34_in_mapExpression269); + match(input, 34, FOLLOW_34_in_mapExpression292); if(failed) return val; } @@ -728,7 +1227,7 @@ public final IPersistentMap mapExpression() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 5, mapExpression_StartIndex); + memoize(input, 6, mapExpression_StartIndex); } } return val; @@ -736,7 +1235,7 @@ public final IPersistentMap mapExpression() throws RecognitionException{ // $ANTLR end mapExpression // $ANTLR start symbol -// /Users/rich/dev/clojure/src/jvm/Reader.g:153:1: symbol returns [Symbol val] : (n= Identifier | n= NSIdentifier | dd= DotDot ); +// /Users/rich/dev/clojure/src/jvm/Reader.g:158:1: symbol returns [Symbol val] : (n= Identifier | n= NSIdentifier | dd= DotDot ); public final Symbol symbol() throws RecognitionException{ Symbol val = null; @@ -746,27 +1245,27 @@ public final Symbol symbol() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 6)) + if(backtracking > 0 && alreadyParsedRule(input, 7)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:154:3: (n= Identifier | n= NSIdentifier | dd= DotDot ) - int alt4 = 3; + // /Users/rich/dev/clojure/src/jvm/Reader.g:159:3: (n= Identifier | n= NSIdentifier | dd= DotDot ) + int alt5 = 3; switch(input.LA(1)) { case Identifier: { - alt4 = 1; + alt5 = 1; } break; case NSIdentifier: { - alt4 = 2; + alt5 = 2; } break; case DotDot: { - alt4 = 3; + alt5 = 3; } break; default: @@ -777,19 +1276,19 @@ public final Symbol symbol() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "153:1: symbol returns [Symbol val] : (n= Identifier | n= NSIdentifier | dd= DotDot );", - 4, 0, input); + "158:1: symbol returns [Symbol val] : (n= Identifier | n= NSIdentifier | dd= DotDot );", + 5, 0, input); throw nvae; } - switch(alt4) + switch(alt5) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:154:3: n= Identifier + // /Users/rich/dev/clojure/src/jvm/Reader.g:159:3: n= Identifier { n = (Token) input.LT(1); - match(input, Identifier, FOLLOW_Identifier_in_symbol286); + match(input, Identifier, FOLLOW_Identifier_in_symbol309); if(failed) return val; if(backtracking == 0) { @@ -799,10 +1298,10 @@ public final Symbol symbol() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:155:3: n= NSIdentifier + // /Users/rich/dev/clojure/src/jvm/Reader.g:160:3: n= NSIdentifier { n = (Token) input.LT(1); - match(input, NSIdentifier, FOLLOW_NSIdentifier_in_symbol296); + match(input, NSIdentifier, FOLLOW_NSIdentifier_in_symbol319); if(failed) return val; if(backtracking == 0) { @@ -812,10 +1311,10 @@ public final Symbol symbol() throws RecognitionException{ } break; case 3: - // /Users/rich/dev/clojure/src/jvm/Reader.g:156:3: dd= DotDot + // /Users/rich/dev/clojure/src/jvm/Reader.g:161:3: dd= DotDot { dd = (Token) input.LT(1); - match(input, DotDot, FOLLOW_DotDot_in_symbol306); + match(input, DotDot, FOLLOW_DotDot_in_symbol329); if(failed) return val; if(backtracking == 0) { @@ -836,7 +1335,7 @@ public final Symbol symbol() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 6, symbol_StartIndex); + memoize(input, 7, symbol_StartIndex); } } return val; @@ -844,7 +1343,7 @@ public final Symbol symbol() throws RecognitionException{ // $ANTLR end symbol // $ANTLR start keyword -// /Users/rich/dev/clojure/src/jvm/Reader.g:159:1: keyword returns [Keyword val] : k= KeywordIdentifier ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:164:1: keyword returns [Keyword val] : k= KeywordIdentifier ; public final Keyword keyword() throws RecognitionException{ Keyword val = null; @@ -853,19 +1352,19 @@ public final Keyword keyword() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 7)) + if(backtracking > 0 && alreadyParsedRule(input, 8)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:160:3: (k= KeywordIdentifier ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:160:3: k= KeywordIdentifier + // /Users/rich/dev/clojure/src/jvm/Reader.g:165:3: (k= KeywordIdentifier ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:165:3: k= KeywordIdentifier { k = (Token) input.LT(1); - match(input, KeywordIdentifier, FOLLOW_KeywordIdentifier_in_keyword326); + match(input, KeywordIdentifier, FOLLOW_KeywordIdentifier_in_keyword349); if(failed) return val; if(backtracking == 0) { - val = new Keyword(k.getText().substring(1)); + val = new Keyword(new Symbol(k.getText().substring(1))); } } @@ -880,7 +1379,7 @@ public final Keyword keyword() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 7, keyword_StartIndex); + memoize(input, 8, keyword_StartIndex); } } return val; @@ -888,7 +1387,7 @@ public final Keyword keyword() throws RecognitionException{ // $ANTLR end keyword // $ANTLR start literal -// /Users/rich/dev/clojure/src/jvm/Reader.g:164:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral ); +// /Users/rich/dev/clojure/src/jvm/Reader.g:169:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral ); public final Object literal() throws RecognitionException{ Object val = null; @@ -903,32 +1402,32 @@ public final Object literal() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 8)) + if(backtracking > 0 && alreadyParsedRule(input, 9)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:165:6: (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral ) - int alt5 = 7; + // /Users/rich/dev/clojure/src/jvm/Reader.g:170:6: (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral ) + int alt6 = 7; switch(input.LA(1)) { case HexLiteral: case OctalLiteral: { - alt5 = 1; + alt6 = 1; } break; case DecimalLiteral: { - int LA5_2 = input.LA(2); + int LA6_2 = input.LA(2); - if((LA5_2 == 35)) + if((LA6_2 == 35)) { - alt5 = 7; + alt6 = 7; } - else if((LA5_2 == EOF || (LA5_2 >= Identifier && LA5_2 <= OctalLiteral) || LA5_2 == Comma || - (LA5_2 >= 29 && LA5_2 <= 34) || LA5_2 == 36 || (LA5_2 >= 38 && LA5_2 <= 39))) + else if((LA6_2 == EOF || (LA6_2 >= Identifier && LA6_2 <= OctalLiteral) || LA6_2 == Comma || + (LA6_2 >= 29 && LA6_2 <= 34) || (LA6_2 >= 36 && LA6_2 <= 39))) { - alt5 = 1; + alt6 = 1; } else { @@ -939,8 +1438,8 @@ public final Object literal() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "164:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral );", - 5, 2, input); + "169:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral );", + 6, 2, input); throw nvae; } @@ -948,27 +1447,27 @@ public final Object literal() throws RecognitionException{ break; case FloatingPointLiteral: { - alt5 = 2; + alt6 = 2; } break; case CharacterLiteral: { - alt5 = 3; + alt6 = 3; } break; case StringLiteral: { - alt5 = 4; + alt6 = 4; } break; case TrueToken: { - alt5 = 5; + alt6 = 5; } break; case NullToken: { - alt5 = 6; + alt6 = 6; } break; default: @@ -979,18 +1478,18 @@ public final Object literal() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "164:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral );", - 5, 0, input); + "169:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral );", + 6, 0, input); throw nvae; } - switch(alt5) + switch(alt6) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:165:6: i= integerLiteral + // /Users/rich/dev/clojure/src/jvm/Reader.g:170:6: i= integerLiteral { - pushFollow(FOLLOW_integerLiteral_in_literal353); + pushFollow(FOLLOW_integerLiteral_in_literal376); i = integerLiteral(); _fsp--; if(failed) return val; @@ -1002,10 +1501,10 @@ public final Object literal() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:166:6: fp= FloatingPointLiteral + // /Users/rich/dev/clojure/src/jvm/Reader.g:171:6: fp= FloatingPointLiteral { fp = (Token) input.LT(1); - match(input, FloatingPointLiteral, FOLLOW_FloatingPointLiteral_in_literal366); + match(input, FloatingPointLiteral, FOLLOW_FloatingPointLiteral_in_literal389); if(failed) return val; if(backtracking == 0) { @@ -1015,10 +1514,10 @@ public final Object literal() throws RecognitionException{ } break; case 3: - // /Users/rich/dev/clojure/src/jvm/Reader.g:167:6: c= CharacterLiteral + // /Users/rich/dev/clojure/src/jvm/Reader.g:172:6: c= CharacterLiteral { c = (Token) input.LT(1); - match(input, CharacterLiteral, FOLLOW_CharacterLiteral_in_literal379); + match(input, CharacterLiteral, FOLLOW_CharacterLiteral_in_literal402); if(failed) return val; if(backtracking == 0) { @@ -1028,10 +1527,10 @@ public final Object literal() throws RecognitionException{ } break; case 4: - // /Users/rich/dev/clojure/src/jvm/Reader.g:168:6: s= StringLiteral + // /Users/rich/dev/clojure/src/jvm/Reader.g:173:6: s= StringLiteral { s = (Token) input.LT(1); - match(input, StringLiteral, FOLLOW_StringLiteral_in_literal392); + match(input, StringLiteral, FOLLOW_StringLiteral_in_literal415); if(failed) return val; if(backtracking == 0) { @@ -1041,9 +1540,9 @@ public final Object literal() throws RecognitionException{ } break; case 5: - // /Users/rich/dev/clojure/src/jvm/Reader.g:169:6: TrueToken + // /Users/rich/dev/clojure/src/jvm/Reader.g:174:6: TrueToken { - match(input, TrueToken, FOLLOW_TrueToken_in_literal401); + match(input, TrueToken, FOLLOW_TrueToken_in_literal424); if(failed) return val; if(backtracking == 0) { @@ -1053,9 +1552,9 @@ public final Object literal() throws RecognitionException{ } break; case 6: - // /Users/rich/dev/clojure/src/jvm/Reader.g:170:6: NullToken + // /Users/rich/dev/clojure/src/jvm/Reader.g:175:6: NullToken { - match(input, NullToken, FOLLOW_NullToken_in_literal410); + match(input, NullToken, FOLLOW_NullToken_in_literal433); if(failed) return val; if(backtracking == 0) { @@ -1065,9 +1564,9 @@ public final Object literal() throws RecognitionException{ } break; case 7: - // /Users/rich/dev/clojure/src/jvm/Reader.g:171:6: r= ratioLiteral + // /Users/rich/dev/clojure/src/jvm/Reader.g:176:6: r= ratioLiteral { - pushFollow(FOLLOW_ratioLiteral_in_literal423); + pushFollow(FOLLOW_ratioLiteral_in_literal446); r = ratioLiteral(); _fsp--; if(failed) return val; @@ -1090,7 +1589,7 @@ public final Object literal() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 8, literal_StartIndex); + memoize(input, 9, literal_StartIndex); } } return val; @@ -1098,7 +1597,7 @@ public final Object literal() throws RecognitionException{ // $ANTLR end literal // $ANTLR start ratioLiteral -// /Users/rich/dev/clojure/src/jvm/Reader.g:174:1: ratioLiteral returns [Num val] : n= DecimalLiteral '/' d= DecimalLiteral ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:179:1: ratioLiteral returns [Num val] : n= DecimalLiteral '/' d= DecimalLiteral ; public final Num ratioLiteral() throws RecognitionException{ Num val = null; @@ -1108,20 +1607,20 @@ public final Num ratioLiteral() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 9)) + if(backtracking > 0 && alreadyParsedRule(input, 10)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:175:4: (n= DecimalLiteral '/' d= DecimalLiteral ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:175:4: n= DecimalLiteral '/' d= DecimalLiteral + // /Users/rich/dev/clojure/src/jvm/Reader.g:180:4: (n= DecimalLiteral '/' d= DecimalLiteral ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:180:4: n= DecimalLiteral '/' d= DecimalLiteral { n = (Token) input.LT(1); - match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_ratioLiteral446); + match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_ratioLiteral469); if(failed) return val; - match(input, 35, FOLLOW_35_in_ratioLiteral448); + match(input, 35, FOLLOW_35_in_ratioLiteral471); if(failed) return val; d = (Token) input.LT(1); - match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_ratioLiteral454); + match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_ratioLiteral477); if(failed) return val; if(backtracking == 0) { @@ -1140,7 +1639,7 @@ public final Num ratioLiteral() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 9, ratioLiteral_StartIndex); + memoize(input, 10, ratioLiteral_StartIndex); } } return val; @@ -1148,7 +1647,7 @@ public final Num ratioLiteral() throws RecognitionException{ // $ANTLR end ratioLiteral // $ANTLR start integerLiteral -// /Users/rich/dev/clojure/src/jvm/Reader.g:178:1: integerLiteral returns [Num val] : (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral ); +// /Users/rich/dev/clojure/src/jvm/Reader.g:183:1: integerLiteral returns [Num val] : (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral ); public final Num integerLiteral() throws RecognitionException{ Num val = null; @@ -1159,27 +1658,27 @@ public final Num integerLiteral() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 10)) + if(backtracking > 0 && alreadyParsedRule(input, 11)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:179:9: (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral ) - int alt6 = 3; + // /Users/rich/dev/clojure/src/jvm/Reader.g:184:9: (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral ) + int alt7 = 3; switch(input.LA(1)) { case HexLiteral: { - alt6 = 1; + alt7 = 1; } break; case OctalLiteral: { - alt6 = 2; + alt7 = 2; } break; case DecimalLiteral: { - alt6 = 3; + alt7 = 3; } break; default: @@ -1190,19 +1689,19 @@ public final Num integerLiteral() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "178:1: integerLiteral returns [Num val] : (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral );", - 6, 0, input); + "183:1: integerLiteral returns [Num val] : (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral );", + 7, 0, input); throw nvae; } - switch(alt6) + switch(alt7) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:179:9: hn= HexLiteral + // /Users/rich/dev/clojure/src/jvm/Reader.g:184:9: hn= HexLiteral { hn = (Token) input.LT(1); - match(input, HexLiteral, FOLLOW_HexLiteral_in_integerLiteral480); + match(input, HexLiteral, FOLLOW_HexLiteral_in_integerLiteral503); if(failed) return val; if(backtracking == 0) { @@ -1212,10 +1711,10 @@ public final Num integerLiteral() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:180:9: on= OctalLiteral + // /Users/rich/dev/clojure/src/jvm/Reader.g:185:9: on= OctalLiteral { on = (Token) input.LT(1); - match(input, OctalLiteral, FOLLOW_OctalLiteral_in_integerLiteral499); + match(input, OctalLiteral, FOLLOW_OctalLiteral_in_integerLiteral522); if(failed) return val; if(backtracking == 0) { @@ -1225,10 +1724,10 @@ public final Num integerLiteral() throws RecognitionException{ } break; case 3: - // /Users/rich/dev/clojure/src/jvm/Reader.g:181:9: nn= DecimalLiteral + // /Users/rich/dev/clojure/src/jvm/Reader.g:186:9: nn= DecimalLiteral { nn = (Token) input.LT(1); - match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_integerLiteral517); + match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_integerLiteral540); if(failed) return val; if(backtracking == 0) { @@ -1249,7 +1748,7 @@ public final Num integerLiteral() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 10, integerLiteral_StartIndex); + memoize(input, 11, integerLiteral_StartIndex); } } return val; @@ -1257,7 +1756,7 @@ public final Num integerLiteral() throws RecognitionException{ // $ANTLR end integerLiteral // $ANTLR start metaTag -// /Users/rich/dev/clojure/src/jvm/Reader.g:186:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression ); +// /Users/rich/dev/clojure/src/jvm/Reader.g:191:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression ); public final IPersistentMap metaTag() throws RecognitionException{ IPersistentMap val = null; @@ -1269,25 +1768,25 @@ public final IPersistentMap metaTag() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 11)) + if(backtracking > 0 && alreadyParsedRule(input, 12)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:188:3: ( '#^' s= symbol | '#^' m= mapExpression ) - int alt7 = 2; - int LA7_0 = input.LA(1); + // /Users/rich/dev/clojure/src/jvm/Reader.g:193:3: ( '#^' s= symbol | '#^' m= mapExpression ) + int alt8 = 2; + int LA8_0 = input.LA(1); - if((LA7_0 == 36)) + if((LA8_0 == 36)) { - int LA7_1 = input.LA(2); + int LA8_1 = input.LA(2); - if((LA7_1 == 33)) + if(((LA8_1 >= Identifier && LA8_1 <= DotDot))) { - alt7 = 2; + alt8 = 1; } - else if(((LA7_1 >= Identifier && LA7_1 <= DotDot))) + else if((LA8_1 == 33)) { - alt7 = 1; + alt8 = 2; } else { @@ -1298,8 +1797,8 @@ public final IPersistentMap metaTag() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "186:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );", - 7, 1, input); + "191:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );", + 8, 1, input); throw nvae; } @@ -1313,19 +1812,19 @@ public final IPersistentMap metaTag() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "186:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );", - 7, 0, input); + "191:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );", + 8, 0, input); throw nvae; } - switch(alt7) + switch(alt8) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:188:3: '#^' s= symbol + // /Users/rich/dev/clojure/src/jvm/Reader.g:193:3: '#^' s= symbol { - match(input, 36, FOLLOW_36_in_metaTag540); + match(input, 36, FOLLOW_36_in_metaTag563); if(failed) return val; - pushFollow(FOLLOW_symbol_in_metaTag546); + pushFollow(FOLLOW_symbol_in_metaTag569); s = symbol(); _fsp--; if(failed) return val; @@ -1337,11 +1836,11 @@ public final IPersistentMap metaTag() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:189:3: '#^' m= mapExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:194:3: '#^' m= mapExpression { - match(input, 36, FOLLOW_36_in_metaTag552); + match(input, 36, FOLLOW_36_in_metaTag575); if(failed) return val; - pushFollow(FOLLOW_mapExpression_in_metaTag558); + pushFollow(FOLLOW_mapExpression_in_metaTag581); m = mapExpression(); _fsp--; if(failed) return val; @@ -1364,7 +1863,7 @@ public final IPersistentMap metaTag() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 11, metaTag_StartIndex); + memoize(input, 12, metaTag_StartIndex); } } return val; @@ -1372,7 +1871,7 @@ public final IPersistentMap metaTag() throws RecognitionException{ // $ANTLR end metaTag // $ANTLR start objExpression -// /Users/rich/dev/clojure/src/jvm/Reader.g:192:1: fragment objExpression returns [Obj val] : (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression ); +// /Users/rich/dev/clojure/src/jvm/Reader.g:197:1: fragment objExpression returns [Obj val] : (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression ); public final Obj objExpression() throws RecognitionException{ Obj val = null; @@ -1388,34 +1887,34 @@ public final Obj objExpression() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 12)) + if(backtracking > 0 && alreadyParsedRule(input, 13)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:194:3: (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression ) - int alt8 = 4; + // /Users/rich/dev/clojure/src/jvm/Reader.g:199:3: (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression ) + int alt9 = 4; switch(input.LA(1)) { case Identifier: case NSIdentifier: case DotDot: { - alt8 = 1; + alt9 = 1; } break; case 29: { - alt8 = 2; + alt9 = 2; } break; case 33: { - alt8 = 3; + alt9 = 3; } break; case 31: { - alt8 = 4; + alt9 = 4; } break; default: @@ -1426,18 +1925,18 @@ public final Obj objExpression() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "192:1: fragment objExpression returns [Obj val] : (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression );", - 8, 0, input); + "197:1: fragment objExpression returns [Obj val] : (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression );", + 9, 0, input); throw nvae; } - switch(alt8) + switch(alt9) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:194:3: s= symbol + // /Users/rich/dev/clojure/src/jvm/Reader.g:199:3: s= symbol { - pushFollow(FOLLOW_symbol_in_objExpression581); + pushFollow(FOLLOW_symbol_in_objExpression604); s = symbol(); _fsp--; if(failed) return val; @@ -1449,9 +1948,9 @@ public final Obj objExpression() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:195:3: le= listExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:200:3: le= listExpression { - pushFollow(FOLLOW_listExpression_in_objExpression591); + pushFollow(FOLLOW_listExpression_in_objExpression614); le = listExpression(); _fsp--; if(failed) return val; @@ -1463,9 +1962,9 @@ public final Obj objExpression() throws RecognitionException{ } break; case 3: - // /Users/rich/dev/clojure/src/jvm/Reader.g:196:3: me= mapExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:201:3: me= mapExpression { - pushFollow(FOLLOW_mapExpression_in_objExpression601); + pushFollow(FOLLOW_mapExpression_in_objExpression624); me = mapExpression(); _fsp--; if(failed) return val; @@ -1477,9 +1976,9 @@ public final Obj objExpression() throws RecognitionException{ } break; case 4: - // /Users/rich/dev/clojure/src/jvm/Reader.g:197:3: ve= vectorExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:202:3: ve= vectorExpression { - pushFollow(FOLLOW_vectorExpression_in_objExpression611); + pushFollow(FOLLOW_vectorExpression_in_objExpression634); ve = vectorExpression(); _fsp--; if(failed) return val; @@ -1502,7 +2001,7 @@ public final Obj objExpression() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 12, objExpression_StartIndex); + memoize(input, 13, objExpression_StartIndex); } } return val; @@ -1510,7 +2009,7 @@ public final Obj objExpression() throws RecognitionException{ // $ANTLR end objExpression // $ANTLR start metaExpression -// /Users/rich/dev/clojure/src/jvm/Reader.g:200:1: metaExpression returns [Obj val] : m= metaTag e= objExpression ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:205:1: metaExpression returns [Obj val] : m= metaTag e= objExpression ; public final Obj metaExpression() throws RecognitionException{ Obj val = null; @@ -1522,18 +2021,18 @@ public final Obj metaExpression() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 13)) + if(backtracking > 0 && alreadyParsedRule(input, 14)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:201:3: (m= metaTag e= objExpression ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:201:3: m= metaTag e= objExpression + // /Users/rich/dev/clojure/src/jvm/Reader.g:206:3: (m= metaTag e= objExpression ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:206:3: m= metaTag e= objExpression { - pushFollow(FOLLOW_metaTag_in_metaExpression633); + pushFollow(FOLLOW_metaTag_in_metaExpression656); m = metaTag(); _fsp--; if(failed) return val; - pushFollow(FOLLOW_objExpression_in_metaExpression639); + pushFollow(FOLLOW_objExpression_in_metaExpression662); e = objExpression(); _fsp--; if(failed) return val; @@ -1554,7 +2053,7 @@ public final Obj metaExpression() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 13, metaExpression_StartIndex); + memoize(input, 14, metaExpression_StartIndex); } } return val; @@ -1562,7 +2061,7 @@ public final Obj metaExpression() throws RecognitionException{ // $ANTLR end metaExpression // $ANTLR start member -// /Users/rich/dev/clojure/src/jvm/Reader.g:204:1: fragment member returns [Object val] : ( '.' i= Identifier | '.' m= method ); +// /Users/rich/dev/clojure/src/jvm/Reader.g:209:1: fragment member returns [Object val] : ( '.' i= Identifier | '.' m= method ); public final Object member() throws RecognitionException{ Object val = null; @@ -1573,25 +2072,25 @@ public final Object member() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 14)) + if(backtracking > 0 && alreadyParsedRule(input, 15)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:206:4: ( '.' i= Identifier | '.' m= method ) - int alt9 = 2; - int LA9_0 = input.LA(1); + // /Users/rich/dev/clojure/src/jvm/Reader.g:211:4: ( '.' i= Identifier | '.' m= method ) + int alt10 = 2; + int LA10_0 = input.LA(1); - if((LA9_0 == 37)) + if((LA10_0 == 37)) { - int LA9_1 = input.LA(2); + int LA10_1 = input.LA(2); - if((LA9_1 == Identifier)) + if((LA10_1 == Identifier)) { - alt9 = 1; + alt10 = 1; } - else if((LA9_1 == MethodIdentifier)) + else if((LA10_1 == MethodIdentifier)) { - alt9 = 2; + alt10 = 2; } else { @@ -1602,8 +2101,8 @@ public final Object member() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "204:1: fragment member returns [Object val] : ( '.' i= Identifier | '.' m= method );", - 9, 1, input); + "209:1: fragment member returns [Object val] : ( '.' i= Identifier | '.' m= method );", + 10, 1, input); throw nvae; } @@ -1617,20 +2116,20 @@ public final Object member() throws RecognitionException{ } NoViableAltException nvae = new NoViableAltException( - "204:1: fragment member returns [Object val] : ( '.' i= Identifier | '.' m= method );", 9, + "209:1: fragment member returns [Object val] : ( '.' i= Identifier | '.' m= method );", 10, 0, input); throw nvae; } - switch(alt9) + switch(alt10) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:206:4: '.' i= Identifier + // /Users/rich/dev/clojure/src/jvm/Reader.g:211:4: '.' i= Identifier { - match(input, 37, FOLLOW_37_in_member659); + match(input, 37, FOLLOW_37_in_member682); if(failed) return val; i = (Token) input.LT(1); - match(input, Identifier, FOLLOW_Identifier_in_member665); + match(input, Identifier, FOLLOW_Identifier_in_member688); if(failed) return val; if(backtracking == 0) { @@ -1640,11 +2139,11 @@ public final Object member() throws RecognitionException{ } break; case 2: - // /Users/rich/dev/clojure/src/jvm/Reader.g:207:4: '.' m= method + // /Users/rich/dev/clojure/src/jvm/Reader.g:212:4: '.' m= method { - match(input, 37, FOLLOW_37_in_member672); + match(input, 37, FOLLOW_37_in_member695); if(failed) return val; - pushFollow(FOLLOW_method_in_member678); + pushFollow(FOLLOW_method_in_member701); m = method(); _fsp--; if(failed) return val; @@ -1667,7 +2166,7 @@ public final Object member() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 14, member_StartIndex); + memoize(input, 15, member_StartIndex); } } return val; @@ -1675,7 +2174,7 @@ public final Object member() throws RecognitionException{ // $ANTLR end member // $ANTLR start method -// /Users/rich/dev/clojure/src/jvm/Reader.g:210:1: fragment method returns [Object val] : i= MethodIdentifier (es= args )? ')' ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:215:1: fragment method returns [Object val] : i= MethodIdentifier (es= args )? ')' ; public final Object method() throws RecognitionException{ Object val = null; @@ -1686,31 +2185,31 @@ public final Object method() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 15)) + if(backtracking > 0 && alreadyParsedRule(input, 16)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:212:4: (i= MethodIdentifier (es= args )? ')' ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:212:4: i= MethodIdentifier (es= args )? ')' + // /Users/rich/dev/clojure/src/jvm/Reader.g:217:4: (i= MethodIdentifier (es= args )? ')' ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:217:4: i= MethodIdentifier (es= args )? ')' { i = (Token) input.LT(1); - match(input, MethodIdentifier, FOLLOW_MethodIdentifier_in_method703); + match(input, MethodIdentifier, FOLLOW_MethodIdentifier_in_method726); if(failed) return val; - // /Users/rich/dev/clojure/src/jvm/Reader.g:212:28: (es= args )? - int alt10 = 2; - int LA10_0 = input.LA(1); + // /Users/rich/dev/clojure/src/jvm/Reader.g:217:28: (es= args )? + int alt11 = 2; + int LA11_0 = input.LA(1); - if(((LA10_0 >= Identifier && LA10_0 <= OctalLiteral) || LA10_0 == 29 || LA10_0 == 31 || LA10_0 == 33 || - LA10_0 == 36 || (LA10_0 >= 38 && LA10_0 <= 39))) + if(((LA11_0 >= Identifier && LA11_0 <= OctalLiteral) || LA11_0 == 29 || LA11_0 == 31 || LA11_0 == 33 || + LA11_0 == 36 || (LA11_0 >= 38 && LA11_0 <= 39))) { - alt10 = 1; + alt11 = 1; } - switch(alt10) + switch(alt11) { case 1: // /Users/rich/dev/clojure/src/jvm/Reader.g:0:0: es= args { - pushFollow(FOLLOW_args_in_method709); + pushFollow(FOLLOW_args_in_method732); es = args(); _fsp--; if(failed) return val; @@ -1720,7 +2219,7 @@ public final Object method() throws RecognitionException{ } - match(input, 30, FOLLOW_30_in_method712); + match(input, 30, FOLLOW_30_in_method735); if(failed) return val; if(backtracking == 0) { @@ -1739,7 +2238,7 @@ public final Object method() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 15, method_StartIndex); + memoize(input, 16, method_StartIndex); } } return val; @@ -1747,7 +2246,7 @@ public final Object method() throws RecognitionException{ // $ANTLR end method // $ANTLR start args -// /Users/rich/dev/clojure/src/jvm/Reader.g:215:10: fragment args returns [ISeq val] : e1= expression ( Comma e= expression )* ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:220:10: fragment args returns [ISeq val] : e1= expression ( Comma e= expression )* ; public final ISeq args() throws RecognitionException{ ISeq val = null; @@ -1761,47 +2260,51 @@ public final ISeq args() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 16)) + if(backtracking > 0 && alreadyParsedRule(input, 17)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:219:4: (e1= expression ( Comma e= expression )* ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:219:4: e1= expression ( Comma e= expression )* + // /Users/rich/dev/clojure/src/jvm/Reader.g:224:4: (e1= expression ( Comma e= expression )* ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:224:4: e1= expression ( Comma e= expression )* { - pushFollow(FOLLOW_expression_in_args738); + pushFollow(FOLLOW_expression_in_args761); e1 = expression(); _fsp--; if(failed) return val; - // /Users/rich/dev/clojure/src/jvm/Reader.g:219:21: ( Comma e= expression )* - loop11: + // /Users/rich/dev/clojure/src/jvm/Reader.g:224:21: ( Comma e= expression )* + loop12: do { - int alt11 = 2; - int LA11_0 = input.LA(1); + int alt12 = 2; + int LA12_0 = input.LA(1); - if((LA11_0 == Comma)) + if((LA12_0 == Comma)) { - alt11 = 1; + alt12 = 1; } - switch(alt11) + switch(alt12) { case 1: - // /Users/rich/dev/clojure/src/jvm/Reader.g:219:22: Comma e= expression + // /Users/rich/dev/clojure/src/jvm/Reader.g:224:22: Comma e= expression { - match(input, Comma, FOLLOW_Comma_in_args742); + match(input, Comma, FOLLOW_Comma_in_args765); if(failed) return val; - pushFollow(FOLLOW_expression_in_args748); + pushFollow(FOLLOW_expression_in_args771); e = expression(); _fsp--; if(failed) return val; + //WARNING- HAND MODIFIED! + if(es == null) es = new ArrayList(); + es.add(e); + // END HAND MODIFIED } break; default: - break loop11; + break loop12; } } while(true); @@ -1822,7 +2325,7 @@ public final ISeq args() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 16, args_StartIndex); + memoize(input, 17, args_StartIndex); } } return val; @@ -1830,12 +2333,12 @@ public final ISeq args() throws RecognitionException{ // $ANTLR end args // $ANTLR start dotExpression -// /Users/rich/dev/clojure/src/jvm/Reader.g:222:1: dotExpression returns [Object val] : s= symbol (e= member )+ ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:227:1: dotExpression returns [Object val] : s= otherThanDotExpression (e= member )+ ; public final Object dotExpression() throws RecognitionException{ Object val = null; int dotExpression_StartIndex = input.index(); - Symbol s = null; + Object s = null; Object e = null; @@ -1844,56 +2347,67 @@ public final Object dotExpression() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 17)) + if(backtracking > 0 && alreadyParsedRule(input, 18)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:226:3: (s= symbol (e= member )+ ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:226:3: s= symbol (e= member )+ + // /Users/rich/dev/clojure/src/jvm/Reader.g:231:3: (s= otherThanDotExpression (e= member )+ ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:231:3: s= otherThanDotExpression (e= member )+ { - pushFollow(FOLLOW_symbol_in_dotExpression777); - s = symbol(); + pushFollow(FOLLOW_otherThanDotExpression_in_dotExpression800); + s = otherThanDotExpression(); _fsp--; if(failed) return val; - // /Users/rich/dev/clojure/src/jvm/Reader.g:226:16: (e= member )+ - int cnt12 = 0; - loop12: + // /Users/rich/dev/clojure/src/jvm/Reader.g:231:32: (e= member )+ + int cnt13 = 0; + loop13: do { - int alt12 = 2; - int LA12_0 = input.LA(1); + int alt13 = 2; + int LA13_0 = input.LA(1); - if((LA12_0 == 37)) + if((LA13_0 == 37)) { - alt12 = 1; + int LA13_2 = input.LA(2); + + if((synpred29())) + { + alt13 = 1; + } + + } - switch(alt12) + switch(alt13) { case 1: // /Users/rich/dev/clojure/src/jvm/Reader.g:0:0: e= member { - pushFollow(FOLLOW_member_in_dotExpression783); + pushFollow(FOLLOW_member_in_dotExpression806); e = member(); _fsp--; if(failed) return val; + //WARNING- HAND MODIFIED! + if(es == null) es = new ArrayList(); + es.add(e); + // END HAND MODIFIED } break; default: - if(cnt12 >= 1) break loop12; + if(cnt13 >= 1) break loop13; if(backtracking > 0) { failed = true; return val; } EarlyExitException eee = - new EarlyExitException(12, input); + new EarlyExitException(13, input); throw eee; } - cnt12++; + cnt13++; } while(true); if(backtracking == 0) @@ -1913,7 +2427,7 @@ public final Object dotExpression() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 17, dotExpression_StartIndex); + memoize(input, 18, dotExpression_StartIndex); } } return val; @@ -1921,7 +2435,7 @@ public final Object dotExpression() throws RecognitionException{ // $ANTLR end dotExpression // $ANTLR start quotedExpression -// /Users/rich/dev/clojure/src/jvm/Reader.g:229:1: quotedExpression returns [Object val] : '\\'' e= expression ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:234:1: quotedExpression returns [Object val] : '\\'' e= expression ; public final Object quotedExpression() throws RecognitionException{ Object val = null; @@ -1931,16 +2445,16 @@ public final Object quotedExpression() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 18)) + if(backtracking > 0 && alreadyParsedRule(input, 19)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:230:3: ( '\\'' e= expression ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:230:3: '\\'' e= expression + // /Users/rich/dev/clojure/src/jvm/Reader.g:235:3: ( '\\'' e= expression ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:235:3: '\\'' e= expression { - match(input, 38, FOLLOW_38_in_quotedExpression801); + match(input, 38, FOLLOW_38_in_quotedExpression824); if(failed) return val; - pushFollow(FOLLOW_expression_in_quotedExpression807); + pushFollow(FOLLOW_expression_in_quotedExpression830); e = expression(); _fsp--; if(failed) return val; @@ -1961,7 +2475,7 @@ public final Object quotedExpression() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 18, quotedExpression_StartIndex); + memoize(input, 19, quotedExpression_StartIndex); } } return val; @@ -1969,7 +2483,7 @@ public final Object quotedExpression() throws RecognitionException{ // $ANTLR end quotedExpression // $ANTLR start caretExpression -// /Users/rich/dev/clojure/src/jvm/Reader.g:233:1: caretExpression returns [Object val] : '^' e= expression ; +// /Users/rich/dev/clojure/src/jvm/Reader.g:238:1: caretExpression returns [Object val] : '^' e= expression ; public final Object caretExpression() throws RecognitionException{ Object val = null; @@ -1979,16 +2493,16 @@ public final Object caretExpression() throws RecognitionException{ try { - if(backtracking > 0 && alreadyParsedRule(input, 19)) + if(backtracking > 0 && alreadyParsedRule(input, 20)) { return val; } - // /Users/rich/dev/clojure/src/jvm/Reader.g:234:3: ( '^' e= expression ) - // /Users/rich/dev/clojure/src/jvm/Reader.g:234:3: '^' e= expression + // /Users/rich/dev/clojure/src/jvm/Reader.g:239:3: ( '^' e= expression ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:239:3: '^' e= expression { - match(input, 39, FOLLOW_39_in_caretExpression825); + match(input, 39, FOLLOW_39_in_caretExpression848); if(failed) return val; - pushFollow(FOLLOW_expression_in_caretExpression831); + pushFollow(FOLLOW_expression_in_caretExpression854); e = expression(); _fsp--; if(failed) return val; @@ -2009,77 +2523,153 @@ public final Object caretExpression() throws RecognitionException{ { if(backtracking > 0) { - memoize(input, 19, caretExpression_StartIndex); + memoize(input, 20, caretExpression_StartIndex); } } return val; } // $ANTLR end caretExpression +// $ANTLR start synpred1 + +public final void synpred1_fragment() throws RecognitionException{ + // /Users/rich/dev/clojure/src/jvm/Reader.g:122:3: ( dotExpression ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:122:3: dotExpression + { + pushFollow(FOLLOW_dotExpression_in_synpred172); + dotExpression(); + _fsp--; + if(failed) return; + + } +} +// $ANTLR end synpred1 + +// $ANTLR start synpred29 + +public final void synpred29_fragment() throws RecognitionException{ + // /Users/rich/dev/clojure/src/jvm/Reader.g:231:34: ( member ) + // /Users/rich/dev/clojure/src/jvm/Reader.g:231:34: member + { + pushFollow(FOLLOW_member_in_synpred29806); + member(); + _fsp--; + if(failed) return; + + } +} +// $ANTLR end synpred29 + +public final boolean synpred29(){ + backtracking++; + int start = input.mark(); + try + { + synpred29_fragment(); // can never throw exception + } + catch(RecognitionException re) + { + System.err.println("impossible: " + re); + } + boolean success = !failed; + input.rewind(start); + backtracking--; + failed = false; + return success; +} + +public final boolean synpred1(){ + backtracking++; + int start = input.mark(); + try + { + synpred1_fragment(); // can never throw exception + } + catch(RecognitionException re) + { + System.err.println("impossible: " + re); + } + boolean success = !failed; + input.rewind(start); + backtracking--; + failed = false; + return success; +} + -public static final BitSet FOLLOW_literal_in_expression73 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_symbol_in_expression83 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_keyword_in_expression93 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_listExpression_in_expression103 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_vectorExpression_in_expression113 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_mapExpression_in_expression123 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_metaExpression_in_expression133 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_dotExpression_in_expression143 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_quotedExpression_in_expression153 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_caretExpression_in_expression163 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_29_in_listExpression180 = new BitSet(new long[]{0x000000D2E000FFF0L}); -public static final BitSet FOLLOW_expressions_in_listExpression187 = new BitSet(new long[]{0x0000000040000000L}); -public static final BitSet FOLLOW_30_in_listExpression189 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_expression_in_expressions211 = new BitSet(new long[]{0x000000D2A000FFF2L}); -public static final BitSet FOLLOW_31_in_vectorExpression228 = new BitSet(new long[]{0x000000D3A000FFF0L}); -public static final BitSet FOLLOW_expressions_in_vectorExpression234 = new BitSet(new long[]{0x0000000100000000L}); -public static final BitSet FOLLOW_32_in_vectorExpression236 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_33_in_mapExpression256 = new BitSet(new long[]{0x000000D6A000FFF0L}); -public static final BitSet FOLLOW_expression_in_mapExpression261 = new BitSet(new long[]{0x000000D2A000FFF0L}); -public static final BitSet FOLLOW_expression_in_mapExpression265 = new BitSet(new long[]{0x000000D6A000FFF0L}); -public static final BitSet FOLLOW_34_in_mapExpression269 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_Identifier_in_symbol286 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_NSIdentifier_in_symbol296 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_DotDot_in_symbol306 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_KeywordIdentifier_in_keyword326 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_integerLiteral_in_literal353 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_FloatingPointLiteral_in_literal366 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_CharacterLiteral_in_literal379 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_StringLiteral_in_literal392 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_TrueToken_in_literal401 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_NullToken_in_literal410 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_ratioLiteral_in_literal423 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_DecimalLiteral_in_ratioLiteral446 = new BitSet(new long[]{0x0000000800000000L}); -public static final BitSet FOLLOW_35_in_ratioLiteral448 = new BitSet(new long[]{0x0000000000002000L}); -public static final BitSet FOLLOW_DecimalLiteral_in_ratioLiteral454 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_HexLiteral_in_integerLiteral480 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_OctalLiteral_in_integerLiteral499 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_DecimalLiteral_in_integerLiteral517 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_36_in_metaTag540 = new BitSet(new long[]{0x0000000000000070L}); -public static final BitSet FOLLOW_symbol_in_metaTag546 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_36_in_metaTag552 = new BitSet(new long[]{0x0000000200000000L}); -public static final BitSet FOLLOW_mapExpression_in_metaTag558 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_symbol_in_objExpression581 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_listExpression_in_objExpression591 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_mapExpression_in_objExpression601 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_vectorExpression_in_objExpression611 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_metaTag_in_metaExpression633 = new BitSet(new long[]{0x00000002A0000070L}); -public static final BitSet FOLLOW_objExpression_in_metaExpression639 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_37_in_member659 = new BitSet(new long[]{0x0000000000000010L}); -public static final BitSet FOLLOW_Identifier_in_member665 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_37_in_member672 = new BitSet(new long[]{0x0000000000010000L}); -public static final BitSet FOLLOW_method_in_member678 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_MethodIdentifier_in_method703 = new BitSet(new long[]{0x000000D2E000FFF0L}); -public static final BitSet FOLLOW_args_in_method709 = new BitSet(new long[]{0x0000000040000000L}); -public static final BitSet FOLLOW_30_in_method712 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_expression_in_args738 = new BitSet(new long[]{0x0000000000020002L}); -public static final BitSet FOLLOW_Comma_in_args742 = new BitSet(new long[]{0x000000D2A000FFF0L}); -public static final BitSet FOLLOW_expression_in_args748 = new BitSet(new long[]{0x0000000000020002L}); -public static final BitSet FOLLOW_symbol_in_dotExpression777 = new BitSet(new long[]{0x0000002000000000L}); -public static final BitSet FOLLOW_member_in_dotExpression783 = new BitSet(new long[]{0x0000002000000002L}); -public static final BitSet FOLLOW_38_in_quotedExpression801 = new BitSet(new long[]{0x000000D2A000FFF0L}); -public static final BitSet FOLLOW_expression_in_quotedExpression807 = new BitSet(new long[]{0x0000000000000002L}); -public static final BitSet FOLLOW_39_in_caretExpression825 = new BitSet(new long[]{0x000000D2A000FFF0L}); -public static final BitSet FOLLOW_expression_in_caretExpression831 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_dotExpression_in_expression72 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_otherThanDotExpression_in_expression83 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_literal_in_otherThanDotExpression106 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_symbol_in_otherThanDotExpression116 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_keyword_in_otherThanDotExpression126 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_listExpression_in_otherThanDotExpression136 = + new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_vectorExpression_in_otherThanDotExpression146 = + new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_mapExpression_in_otherThanDotExpression156 = + new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_metaExpression_in_otherThanDotExpression166 = + new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_quotedExpression_in_otherThanDotExpression176 = + new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_caretExpression_in_otherThanDotExpression186 = + new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_29_in_listExpression203 = new BitSet(new long[]{0x000000D2E000FFF0L}); +public static final BitSet FOLLOW_expressions_in_listExpression210 = new BitSet(new long[]{0x0000000040000000L}); +public static final BitSet FOLLOW_30_in_listExpression212 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_expression_in_expressions234 = new BitSet(new long[]{0x000000D2A000FFF2L}); +public static final BitSet FOLLOW_31_in_vectorExpression251 = new BitSet(new long[]{0x000000D3A000FFF0L}); +public static final BitSet FOLLOW_expressions_in_vectorExpression257 = new BitSet(new long[]{0x0000000100000000L}); +public static final BitSet FOLLOW_32_in_vectorExpression259 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_33_in_mapExpression279 = new BitSet(new long[]{0x000000D6A000FFF0L}); +public static final BitSet FOLLOW_expression_in_mapExpression284 = new BitSet(new long[]{0x000000D2A000FFF0L}); +public static final BitSet FOLLOW_expression_in_mapExpression288 = new BitSet(new long[]{0x000000D6A000FFF0L}); +public static final BitSet FOLLOW_34_in_mapExpression292 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_Identifier_in_symbol309 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_NSIdentifier_in_symbol319 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_DotDot_in_symbol329 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_KeywordIdentifier_in_keyword349 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_integerLiteral_in_literal376 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_FloatingPointLiteral_in_literal389 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_CharacterLiteral_in_literal402 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_StringLiteral_in_literal415 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_TrueToken_in_literal424 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_NullToken_in_literal433 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_ratioLiteral_in_literal446 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_DecimalLiteral_in_ratioLiteral469 = new BitSet(new long[]{0x0000000800000000L}); +public static final BitSet FOLLOW_35_in_ratioLiteral471 = new BitSet(new long[]{0x0000000000002000L}); +public static final BitSet FOLLOW_DecimalLiteral_in_ratioLiteral477 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_HexLiteral_in_integerLiteral503 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_OctalLiteral_in_integerLiteral522 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_DecimalLiteral_in_integerLiteral540 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_36_in_metaTag563 = new BitSet(new long[]{0x0000000000000070L}); +public static final BitSet FOLLOW_symbol_in_metaTag569 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_36_in_metaTag575 = new BitSet(new long[]{0x0000000200000000L}); +public static final BitSet FOLLOW_mapExpression_in_metaTag581 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_symbol_in_objExpression604 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_listExpression_in_objExpression614 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_mapExpression_in_objExpression624 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_vectorExpression_in_objExpression634 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_metaTag_in_metaExpression656 = new BitSet(new long[]{0x00000002A0000070L}); +public static final BitSet FOLLOW_objExpression_in_metaExpression662 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_37_in_member682 = new BitSet(new long[]{0x0000000000000010L}); +public static final BitSet FOLLOW_Identifier_in_member688 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_37_in_member695 = new BitSet(new long[]{0x0000000000010000L}); +public static final BitSet FOLLOW_method_in_member701 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_MethodIdentifier_in_method726 = new BitSet(new long[]{0x000000D2E000FFF0L}); +public static final BitSet FOLLOW_args_in_method732 = new BitSet(new long[]{0x0000000040000000L}); +public static final BitSet FOLLOW_30_in_method735 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_expression_in_args761 = new BitSet(new long[]{0x0000000000020002L}); +public static final BitSet FOLLOW_Comma_in_args765 = new BitSet(new long[]{0x000000D2A000FFF0L}); +public static final BitSet FOLLOW_expression_in_args771 = new BitSet(new long[]{0x0000000000020002L}); +public static final BitSet FOLLOW_otherThanDotExpression_in_dotExpression800 = + new BitSet(new long[]{0x0000002000000000L}); +public static final BitSet FOLLOW_member_in_dotExpression806 = new BitSet(new long[]{0x0000002000000002L}); +public static final BitSet FOLLOW_38_in_quotedExpression824 = new BitSet(new long[]{0x000000D2A000FFF0L}); +public static final BitSet FOLLOW_expression_in_quotedExpression830 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_39_in_caretExpression848 = new BitSet(new long[]{0x000000D2A000FFF0L}); +public static final BitSet FOLLOW_expression_in_caretExpression854 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_dotExpression_in_synpred172 = new BitSet(new long[]{0x0000000000000002L}); +public static final BitSet FOLLOW_member_in_synpred29806 = new BitSet(new long[]{0x0000000000000002L}); }
\ No newline at end of file |