summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2007-07-16 15:14:56 +0000
committerRich Hickey <richhickey@gmail.com>2007-07-16 15:14:56 +0000
commit2f851022c1de98dd11dd05e30e4fca5e118c30f9 (patch)
tree9d9cb7d4c8c92f8981df839701a2f226bbb00fe5
parent3ed3682254f22b1bfbc45ee72b49b80fe995e990 (diff)
interim reader grammar changes
-rw-r--r--src/jvm/Reader.g71
-rw-r--r--src/jvm/clojure/lang/RT.java8
-rw-r--r--src/jvm/clojure/lang/ReaderLexer.java898
-rw-r--r--src/jvm/clojure/lang/ReaderParser.java927
-rw-r--r--src/jvm/clojure/lang/Symbol.java12
5 files changed, 1043 insertions, 873 deletions
diff --git a/src/jvm/Reader.g b/src/jvm/Reader.g
index 4b0a13b5..4ed11f79 100644
--- a/src/jvm/Reader.g
+++ b/src/jvm/Reader.g
@@ -17,7 +17,15 @@ import java.io.Writer;
import java.io.PrintWriter;
}
@lexer::header {
-
+/**
+ * Copyright (c) Rich Hickey. All rights reserved.
+ * The use and distribution terms for this software are covered by the
+ * Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ * which can be found in the file CPL.TXT at the root of this distribution.
+ * By using this software in any fashion, you are agreeing to be bound by
+ * the terms of this license.
+ * You must not remove this notice, or any other, from this software.
+ **/
package clojure.lang;
}
@lexer::members{
@@ -41,17 +49,24 @@ import java.io.PrintWriter;
//after:
// if (failed) return val;
-/*WARNING- HAND MODIFIED!
-if(es == null) es = new ArrayList();
-es.add(e);
-// END HAND MODIFIED*/
+ /*
+ //WARNING- HAND MODIFIED!
+ if(es == null) es = new ArrayList();
+ es.add(e);
+ // END HAND MODIFIED
+ */
+
//add this to mapexpr:
-/*WARNING- HAND MODIFIED!
- val = val.assoc(k, v);
-// END HAND MODIFIED*/
+ /*
+ //WARNING- HAND MODIFIED!
+ val = val.assoc(k, v);
+ // END HAND MODIFIED
+ */
final static Symbol DOTDOT = new Symbol("..");
+final static Symbol QUOTE = new Symbol("quote");
+final static Symbol META = new Symbol("meta");
public static void main(String[] args) throws Exception {
Writer w = new PrintWriter(System.out);
@@ -67,7 +82,7 @@ ReaderParser parser = new ReaderParser(tokens);
try{
if(lexer.rex != null)
throw lexer.rex;
- for(int i=0;i<10;i++)
+ for(int i=0;i<20;i++)
{
Object e = parser.expression();
RT.print(e,w);
@@ -112,6 +127,8 @@ expression returns[Object 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;}
;
listExpression returns[ISeq val]
@@ -134,13 +151,13 @@ val = PersistentHashMap.EMPTY;
;
symbol returns[Symbol val]
- :n = (Identifier|JavaIdentifier) {$val = new Symbol($n.text);}
- |ns = (Identifier|JavaIdentifier) '/' nn = (Identifier|JavaIdentifier) {$val = new Symbol($ns.text,$nn.text);}
+ :n = Identifier {$val = new Symbol($n.text);}
+ |n = NSIdentifier {$val = new Symbol($n.text);}
|dd = DotDot {$val = DOTDOT;}
;
keyword returns[Keyword val]
- :':' s = symbol {$val = new Keyword($s.val);}
+ :k = KeywordIdentifier {$val = new Keyword($k.text.substring(1));}
;
@@ -186,7 +203,7 @@ metaExpression returns [Obj val]
fragment
member returns [Object val]
- : '.' i = JavaIdentifier {$val = new Symbol($i.text);}
+ : '.' i = Identifier {$val = new Symbol($i.text);}
| '.' m = method {$val = $m.val;}
;
@@ -207,9 +224,18 @@ dotExpression returns [Object val]
List es = null;
}
:s = symbol e = member+ {$val = RT.listStar(DOTDOT,s,RT.seq(es));}
- ;
+ ;
+
+quotedExpression returns[Object val]
+ :'\'' e = expression {$val = RT.list(QUOTE,e);}
+ ;
+
+caretExpression returns[Object val]
+ :'^' e = expression {$val = RT.list(META,e);}
+ ;
// LEXER
Comma : ',';
+
TrueToken : 'true';
NullToken : 'null' ;
@@ -264,15 +290,26 @@ fragment
UnicodeEscape
: '\\' 'u' HexDigit HexDigit HexDigit HexDigit
;
-
+
+/*
JavaIdentifier
: Letter (Letter|JavaIDDigit)*
;
+*/
Identifier
- : Letter ('-' |Letter|JavaIDDigit)*
+ :Letter ('-' |Letter|JavaIDDigit)*
;
-
+
+NSIdentifier
+ :Identifier '/' Identifier
+ ;
+
+KeywordIdentifier
+ :':' Identifier '/' Identifier
+ |':' Identifier
+ ;
+
MethodIdentifier
: Letter (Letter|JavaIDDigit)* '('
;
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index 05b27836..5cf0f4b5 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -380,19 +380,19 @@ static public ISeq list(Object arg1){
return new PersistentList(arg1);
}
-static public ISeq list(Object arg1, Object arg2) throws Exception{
+static public ISeq list(Object arg1, Object arg2){
return listStar(arg1, arg2, null);
}
-static public ISeq list(Object arg1, Object arg2, Object arg3) throws Exception{
+static public ISeq list(Object arg1, Object arg2, Object arg3){
return listStar(arg1, arg2, arg3, null);
}
-static public ISeq list(Object arg1, Object arg2, Object arg3, Object arg4) throws Exception{
+static public ISeq list(Object arg1, Object arg2, Object arg3, Object arg4){
return listStar(arg1, arg2, arg3, arg4, null);
}
-static public ISeq list(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) throws Exception{
+static public ISeq list(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5){
return listStar(arg1, arg2, arg3, arg4, arg5, null);
}
diff --git a/src/jvm/clojure/lang/ReaderLexer.java b/src/jvm/clojure/lang/ReaderLexer.java
index 631f002f..d50e9540 100644
--- a/src/jvm/clojure/lang/ReaderLexer.java
+++ b/src/jvm/clojure/lang/ReaderLexer.java
@@ -1,6 +1,14 @@
-// $ANTLR 3.0 /Users/rich/dev/clojure/src/jvm/Reader.g 2007-07-13 12:56:20
-
-
+// $ANTLR 3.0 /Users/rich/dev/clojure/src/jvm/Reader.g 2007-07-16 11:13:35
+
+/**
+ * Copyright (c) Rich Hickey. All rights reserved.
+ * The use and distribution terms for this software are covered by the
+ * Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ * which can be found in the file CPL.TXT at the root of this distribution.
+ * By using this software in any fashion, you are agreeing to be bound by
+ * the terms of this license.
+ * You must not remove this notice, or any other, from this software.
+ **/
package clojure.lang;
@@ -11,42 +19,44 @@ import java.util.List;
import java.util.ArrayList;
public class ReaderLexer extends Lexer{
-public static final int TrueToken = 10;
+public static final int TrueToken = 11;
public static final int T29 = 29;
-public static final int Exponent = 18;
-public static final int OctalLiteral = 14;
+public static final int Exponent = 19;
+public static final int OctalLiteral = 15;
public static final int T33 = 33;
public static final int Identifier = 4;
-public static final int HexDigit = 17;
+public static final int HexDigit = 18;
public static final int T36 = 36;
-public static final int WS = 25;
-public static final int CharacterLiteral = 8;
-public static final int MethodIdentifier = 15;
-public static final int T28 = 28;
+public static final int WS = 26;
+public static final int CharacterLiteral = 9;
+public static final int MethodIdentifier = 16;
+public static final int NSIdentifier = 5;
public static final int T35 = 35;
-public static final int COMMENT = 26;
-public static final int StringLiteral = 9;
-public static final int LINE_COMMENT = 27;
+public static final int COMMENT = 27;
+public static final int KeywordIdentifier = 7;
+public static final int StringLiteral = 10;
+public static final int LINE_COMMENT = 28;
public static final int DotDot = 6;
public static final int T34 = 34;
-public static final int JavaIDDigit = 24;
-public static final int Letter = 23;
-public static final int UnicodeEscape = 21;
-public static final int Comma = 16;
-public static final int HexLiteral = 13;
+public static final int JavaIDDigit = 25;
+public static final int Letter = 24;
+public static final int UnicodeEscape = 22;
+public static final int Comma = 17;
+public static final int HexLiteral = 14;
public static final int T37 = 37;
-public static final int EscapeSequence = 20;
-public static final int NullToken = 11;
+public static final int EscapeSequence = 21;
+public static final int NullToken = 12;
public static final int EOF = -1;
-public static final int DecimalLiteral = 12;
+public static final int DecimalLiteral = 13;
public static final int T32 = 32;
-public static final int Tokens = 38;
+public static final int Tokens = 40;
public static final int T31 = 31;
-public static final int OctalEscape = 22;
-public static final int FloatingPointLiteral = 7;
+public static final int OctalEscape = 23;
+public static final int T38 = 38;
+public static final int FloatingPointLiteral = 8;
public static final int T30 = 30;
-public static final int FloatTypeSuffix = 19;
-public static final int JavaIdentifier = 5;
+public static final int FloatTypeSuffix = 20;
+public static final int T39 = 39;
RecognitionException rex = null;
@@ -73,36 +83,15 @@ public String getGrammarFileName(){
return "/Users/rich/dev/clojure/src/jvm/Reader.g";
}
-// $ANTLR start T28
-public final void mT28() throws RecognitionException{
- try
- {
- int _type = T28;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:25:7: ( '(' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:25:7: '('
- {
- match('(');
-
- }
-
- this.type = _type;
- }
- finally
- {
- }
-}
-// $ANTLR end T28
-
// $ANTLR start T29
-
public final void mT29() throws RecognitionException{
try
{
int _type = T29;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:26:7: ( ')' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:26:7: ')'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:33:7: ( '(' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:33:7: '('
{
- match(')');
+ match('(');
}
@@ -120,10 +109,10 @@ public final void mT30() throws RecognitionException{
try
{
int _type = T30;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:27:7: ( '[' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:27:7: '['
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:34:7: ( ')' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:34:7: ')'
{
- match('[');
+ match(')');
}
@@ -141,10 +130,10 @@ public final void mT31() throws RecognitionException{
try
{
int _type = T31;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:28:7: ( ']' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:28:7: ']'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:35:7: ( '[' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:35:7: '['
{
- match(']');
+ match('[');
}
@@ -162,10 +151,10 @@ public final void mT32() throws RecognitionException{
try
{
int _type = T32;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:29:7: ( '{' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:29:7: '{'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:36:7: ( ']' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:36:7: ']'
{
- match('{');
+ match(']');
}
@@ -183,10 +172,10 @@ public final void mT33() throws RecognitionException{
try
{
int _type = T33;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:30:7: ( '}' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:30:7: '}'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:37:7: ( '{' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:37:7: '{'
{
- match('}');
+ match('{');
}
@@ -204,10 +193,10 @@ public final void mT34() throws RecognitionException{
try
{
int _type = T34;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:31:7: ( '/' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:31:7: '/'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:38:7: ( '}' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:38:7: '}'
{
- match('/');
+ match('}');
}
@@ -225,10 +214,10 @@ public final void mT35() throws RecognitionException{
try
{
int _type = T35;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:32:7: ( ':' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:32:7: ':'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:39:7: ( '/' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:39:7: '/'
{
- match(':');
+ match('/');
}
@@ -246,8 +235,8 @@ public final void mT36() throws RecognitionException{
try
{
int _type = T36;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:33:7: ( '#^' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:33:7: '#^'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:40:7: ( '#^' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:40:7: '#^'
{
match("#^");
@@ -268,8 +257,8 @@ public final void mT37() throws RecognitionException{
try
{
int _type = T37;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:34:7: ( '.' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:34:7: '.'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:41:7: ( '.' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:41:7: '.'
{
match('.');
@@ -283,14 +272,56 @@ public final void mT37() throws RecognitionException{
}
// $ANTLR end T37
+// $ANTLR start T38
+
+public final void mT38() throws RecognitionException{
+ try
+ {
+ int _type = T38;
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:42:7: ( '\\'' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:42:7: '\\''
+ {
+ match('\'');
+
+ }
+
+ this.type = _type;
+ }
+ finally
+ {
+ }
+}
+// $ANTLR end T38
+
+// $ANTLR start T39
+
+public final void mT39() throws RecognitionException{
+ try
+ {
+ int _type = T39;
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:43:7: ( '^' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:43:7: '^'
+ {
+ match('^');
+
+ }
+
+ this.type = _type;
+ }
+ finally
+ {
+ }
+}
+// $ANTLR end T39
+
// $ANTLR start Comma
public final void mComma() throws RecognitionException{
try
{
int _type = Comma;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:212:10: ( ',' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:212:10: ','
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:237:10: ( ',' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:237:10: ','
{
match(',');
@@ -310,8 +341,8 @@ public final void mTrueToken() throws RecognitionException{
try
{
int _type = TrueToken;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:213:16: ( 'true' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:213:16: 'true'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:239:16: ( 'true' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:239:16: 'true'
{
match("true");
@@ -332,8 +363,8 @@ public final void mNullToken() throws RecognitionException{
try
{
int _type = NullToken;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:215:16: ( 'null' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:215:16: 'null'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:241:16: ( 'null' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:241:16: 'null'
{
match("null");
@@ -354,8 +385,8 @@ public final void mDotDot() throws RecognitionException{
try
{
int _type = DotDot;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:217:10: ( '..' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:217:10: '..'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:243:10: ( '..' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:243:10: '..'
{
match("..");
@@ -376,8 +407,8 @@ public final void mHexLiteral() throws RecognitionException{
try
{
int _type = HexLiteral;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:219:14: ( '0' ( 'x' | 'X' ) ( HexDigit )+ )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:219: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:245:14: '0' ( 'x' | 'X' ) ( HexDigit )+
{
match('0');
if(input.LA(1) == 'X' || input.LA(1) == 'x')
@@ -393,7 +424,7 @@ public final void mHexLiteral() throws RecognitionException{
throw mse;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:219:28: ( HexDigit )+
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:245:28: ( HexDigit )+
int cnt1 = 0;
loop1:
do
@@ -410,7 +441,7 @@ public final void mHexLiteral() throws RecognitionException{
switch(alt1)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:219:28: HexDigit
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:245:28: HexDigit
{
mHexDigit();
@@ -443,10 +474,10 @@ public final void mDecimalLiteral() throws RecognitionException{
try
{
int _type = DecimalLiteral;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:221:18: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:221: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:247:18: ( '0' | '1' .. '9' ( '0' .. '9' )* )
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:221:18: ( '0' | '1' .. '9' ( '0' .. '9' )* )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:247:18: ( '0' | '1' .. '9' ( '0' .. '9' )* )
int alt3 = 2;
int LA3_0 = input.LA(1);
@@ -461,24 +492,24 @@ public final void mDecimalLiteral() throws RecognitionException{
else
{
NoViableAltException nvae =
- new NoViableAltException("221:18: ( '0' | '1' .. '9' ( '0' .. '9' )* )", 3, 0, input);
+ new NoViableAltException("247:18: ( '0' | '1' .. '9' ( '0' .. '9' )* )", 3, 0, input);
throw nvae;
}
switch(alt3)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:221:19: '0'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:247:19: '0'
{
match('0');
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:221:25: '1' .. '9' ( '0' .. '9' )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:247:25: '1' .. '9' ( '0' .. '9' )*
{
matchRange('1', '9');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:221:34: ( '0' .. '9' )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:247:34: ( '0' .. '9' )*
loop2:
do
{
@@ -494,7 +525,7 @@ public final void mDecimalLiteral() throws RecognitionException{
switch(alt2)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:221:34: '0' .. '9'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:247:34: '0' .. '9'
{
matchRange('0', '9');
@@ -529,11 +560,11 @@ public final void mOctalLiteral() throws RecognitionException{
try
{
int _type = OctalLiteral;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:223:16: ( '0' ( '0' .. '7' )+ )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:223: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:249:16: '0' ( '0' .. '7' )+
{
match('0');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:223:20: ( '0' .. '7' )+
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:249:20: ( '0' .. '7' )+
int cnt4 = 0;
loop4:
do
@@ -550,7 +581,7 @@ public final void mOctalLiteral() throws RecognitionException{
switch(alt4)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:223:21: '0' .. '7'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:249:21: '0' .. '7'
{
matchRange('0', '7');
@@ -582,8 +613,8 @@ public final void mOctalLiteral() throws RecognitionException{
public final void mHexDigit() throws RecognitionException{
try
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:226:12: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:226: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:252: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'))
@@ -615,15 +646,15 @@ public final void mFloatingPointLiteral() throws RecognitionException{
try
{
int _type = FloatingPointLiteral;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:229: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:255: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:229:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:255:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )?
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:229:9: ( '0' .. '9' )+
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:255:9: ( '0' .. '9' )+
int cnt5 = 0;
loop5:
do
@@ -640,7 +671,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt5)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:229:10: '0' .. '9'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:255:10: '0' .. '9'
{
matchRange('0', '9');
@@ -657,7 +688,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
} while(true);
match('.');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:229:25: ( '0' .. '9' )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:255:25: ( '0' .. '9' )*
loop6:
do
{
@@ -673,7 +704,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt6)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:229:26: '0' .. '9'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:255:26: '0' .. '9'
{
matchRange('0', '9');
@@ -685,7 +716,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
}
} while(true);
- // /Users/rich/dev/clojure/src/jvm/Reader.g:229:37: ( Exponent )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:255:37: ( Exponent )?
int alt7 = 2;
int LA7_0 = input.LA(1);
@@ -696,7 +727,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt7)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:229:37: Exponent
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:255:37: Exponent
{
mExponent();
@@ -705,7 +736,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:229:47: ( FloatTypeSuffix )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:255:47: ( FloatTypeSuffix )?
int alt8 = 2;
int LA8_0 = input.LA(1);
@@ -716,7 +747,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt8)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:229:47: FloatTypeSuffix
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:255:47: FloatTypeSuffix
{
mFloatTypeSuffix();
@@ -729,10 +760,10 @@ public final void mFloatingPointLiteral() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:230:9: '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:256:9: '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )?
{
match('.');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:230:13: ( '0' .. '9' )+
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:256:13: ( '0' .. '9' )+
int cnt9 = 0;
loop9:
do
@@ -749,7 +780,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt9)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:230:14: '0' .. '9'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:256:14: '0' .. '9'
{
matchRange('0', '9');
@@ -765,7 +796,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
cnt9++;
} while(true);
- // /Users/rich/dev/clojure/src/jvm/Reader.g:230:25: ( Exponent )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:256:25: ( Exponent )?
int alt10 = 2;
int LA10_0 = input.LA(1);
@@ -776,7 +807,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt10)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:230:25: Exponent
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:256:25: Exponent
{
mExponent();
@@ -785,7 +816,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:230:35: ( FloatTypeSuffix )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:256:35: ( FloatTypeSuffix )?
int alt11 = 2;
int LA11_0 = input.LA(1);
@@ -796,7 +827,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt11)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:230:35: FloatTypeSuffix
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:256:35: FloatTypeSuffix
{
mFloatTypeSuffix();
@@ -809,9 +840,9 @@ public final void mFloatingPointLiteral() throws RecognitionException{
}
break;
case 3:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:231:9: ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:257:9: ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )?
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:231:9: ( '0' .. '9' )+
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:257:9: ( '0' .. '9' )+
int cnt12 = 0;
loop12:
do
@@ -828,7 +859,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt12)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:231:10: '0' .. '9'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:257:10: '0' .. '9'
{
matchRange('0', '9');
@@ -845,7 +876,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
} while(true);
mExponent();
- // /Users/rich/dev/clojure/src/jvm/Reader.g:231:30: ( FloatTypeSuffix )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:257:30: ( FloatTypeSuffix )?
int alt13 = 2;
int LA13_0 = input.LA(1);
@@ -856,7 +887,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt13)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:231:30: FloatTypeSuffix
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:257:30: FloatTypeSuffix
{
mFloatTypeSuffix();
@@ -869,9 +900,9 @@ public final void mFloatingPointLiteral() throws RecognitionException{
}
break;
case 4:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:232:9: ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:258:9: ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:232:9: ( '0' .. '9' )+
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:258:9: ( '0' .. '9' )+
int cnt14 = 0;
loop14:
do
@@ -888,7 +919,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt14)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:232:10: '0' .. '9'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:258:10: '0' .. '9'
{
matchRange('0', '9');
@@ -904,7 +935,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
cnt14++;
} while(true);
- // /Users/rich/dev/clojure/src/jvm/Reader.g:232:21: ( Exponent )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:258:21: ( Exponent )?
int alt15 = 2;
int LA15_0 = input.LA(1);
@@ -915,7 +946,7 @@ public final void mFloatingPointLiteral() throws RecognitionException{
switch(alt15)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:232:21: Exponent
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:258:21: Exponent
{
mExponent();
@@ -943,8 +974,8 @@ public final void mFloatingPointLiteral() throws RecognitionException{
public final void mExponent() throws RecognitionException{
try
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:236:12: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:236: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:262:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
{
if(input.LA(1) == 'E' || input.LA(1) == 'e')
{
@@ -959,7 +990,7 @@ public final void mExponent() throws RecognitionException{
throw mse;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:236:22: ( '+' | '-' )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:262:22: ( '+' | '-' )?
int alt17 = 2;
int LA17_0 = input.LA(1);
@@ -991,7 +1022,7 @@ public final void mExponent() throws RecognitionException{
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:236:33: ( '0' .. '9' )+
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:262:33: ( '0' .. '9' )+
int cnt18 = 0;
loop18:
do
@@ -1008,7 +1039,7 @@ public final void mExponent() throws RecognitionException{
switch(alt18)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:236:34: '0' .. '9'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:262:34: '0' .. '9'
{
matchRange('0', '9');
@@ -1039,8 +1070,8 @@ public final void mExponent() throws RecognitionException{
public final void mFloatTypeSuffix() throws RecognitionException{
try
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:239:19: ( ( 'f' | 'F' | 'd' | 'D' ) )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:239: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:265:19: ( 'f' | 'F' | 'd' | 'D' )
{
if(input.LA(1) == 'D' || input.LA(1) == 'F' || input.LA(1) == 'd' || input.LA(1) == 'f')
{
@@ -1071,11 +1102,11 @@ public final void mCharacterLiteral() throws RecognitionException{
try
{
int _type = CharacterLiteral;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:242:9: ( '\\\\' ( EscapeSequence | ~ ( '\\\\' ) ) )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:242:9: '\\\\' ( EscapeSequence | ~ ( '\\\\' ) )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:268:9: ( '\\\\' ( EscapeSequence | ~ ( '\\\\' ) ) )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:268:9: '\\\\' ( EscapeSequence | ~ ( '\\\\' ) )
{
match('\\');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:242:14: ( EscapeSequence | ~ ( '\\\\' ) )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:268:14: ( EscapeSequence | ~ ( '\\\\' ) )
int alt19 = 2;
int LA19_0 = input.LA(1);
@@ -1090,21 +1121,21 @@ public final void mCharacterLiteral() throws RecognitionException{
else
{
NoViableAltException nvae =
- new NoViableAltException("242:14: ( EscapeSequence | ~ ( '\\\\' ) )", 19, 0, input);
+ new NoViableAltException("268:14: ( EscapeSequence | ~ ( '\\\\' ) )", 19, 0, input);
throw nvae;
}
switch(alt19)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:242:16: EscapeSequence
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:268:16: EscapeSequence
{
mEscapeSequence();
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:242:33: ~ ( '\\\\' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:268:33: ~ ( '\\\\' )
{
if((input.LA(1) >= '\u0000' && input.LA(1) <= '[') || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFE'))
{
@@ -1142,11 +1173,11 @@ public final void mStringLiteral() throws RecognitionException{
try
{
int _type = StringLiteral;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:246:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:246:8: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:272:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:272:8: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
{
match('\"');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:246:12: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:272:12: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
loop20:
do
{
@@ -1167,14 +1198,14 @@ public final void mStringLiteral() throws RecognitionException{
switch(alt20)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:246:14: EscapeSequence
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:272:14: EscapeSequence
{
mEscapeSequence();
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:246:31: ~ ( '\\\\' | '\"' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:272:31: ~ ( '\\\\' | '\"' )
{
if((input.LA(1) >= '\u0000' && input.LA(1) <= '!') || (input.LA(1) >= '#' && input.LA(1) <= '[') ||
(input.LA(1) >= ']' && input.LA(1) <= '\uFFFE'))
@@ -1216,7 +1247,7 @@ public final void mStringLiteral() throws RecognitionException{
public final void mEscapeSequence() throws RecognitionException{
try
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:251:9: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:277:9: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape )
int alt21 = 3;
int LA21_0 = input.LA(1);
@@ -1224,11 +1255,6 @@ public final void mEscapeSequence() throws RecognitionException{
{
switch(input.LA(2))
{
- case'u':
- {
- alt21 = 2;
- }
- break;
case'\"':
case'\'':
case'\\':
@@ -1241,6 +1267,11 @@ public final void mEscapeSequence() throws RecognitionException{
alt21 = 1;
}
break;
+ case'u':
+ {
+ alt21 = 2;
+ }
+ break;
case'0':
case'1':
case'2':
@@ -1256,7 +1287,7 @@ public final void mEscapeSequence() throws RecognitionException{
default:
NoViableAltException nvae =
new NoViableAltException(
- "249:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );",
+ "275:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );",
21, 1, input);
throw nvae;
@@ -1267,7 +1298,7 @@ public final void mEscapeSequence() throws RecognitionException{
{
NoViableAltException nvae =
new NoViableAltException(
- "249:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );",
+ "275:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );",
21, 0, input);
throw nvae;
@@ -1275,7 +1306,7 @@ public final void mEscapeSequence() throws RecognitionException{
switch(alt21)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:251:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:277:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
{
match('\\');
if(input.LA(1) == '\"' || input.LA(1) == '\'' || input.LA(1) == '\\' || input.LA(1) == 'b' ||
@@ -1296,14 +1327,14 @@ public final void mEscapeSequence() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:252:9: UnicodeEscape
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:278:9: UnicodeEscape
{
mUnicodeEscape();
}
break;
case 3:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:253:9: OctalEscape
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:279:9: OctalEscape
{
mOctalEscape();
@@ -1323,7 +1354,7 @@ public final void mEscapeSequence() throws RecognitionException{
public final void mOctalEscape() throws RecognitionException{
try
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:258:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:284:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
int alt22 = 3;
int LA22_0 = input.LA(1);
@@ -1370,7 +1401,7 @@ public final void mOctalEscape() throws RecognitionException{
{
NoViableAltException nvae =
new NoViableAltException(
- "256:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );",
+ "282:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );",
22, 1, input);
throw nvae;
@@ -1380,7 +1411,7 @@ public final void mOctalEscape() throws RecognitionException{
{
NoViableAltException nvae =
new NoViableAltException(
- "256:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );",
+ "282:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );",
22, 0, input);
throw nvae;
@@ -1388,25 +1419,25 @@ public final void mOctalEscape() throws RecognitionException{
switch(alt22)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:258:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:284:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
{
match('\\');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:258:14: ( '0' .. '3' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:258:15: '0' .. '3'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:284:14: ( '0' .. '3' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:284:15: '0' .. '3'
{
matchRange('0', '3');
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:258:25: ( '0' .. '7' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:258:26: '0' .. '7'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:284:25: ( '0' .. '7' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:284:26: '0' .. '7'
{
matchRange('0', '7');
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:258:36: ( '0' .. '7' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:258:37: '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'
{
matchRange('0', '7');
@@ -1416,18 +1447,18 @@ public final void mOctalEscape() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:259:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:285:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
{
match('\\');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:259:14: ( '0' .. '7' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:259:15: '0' .. '7'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:285:14: ( '0' .. '7' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:285:15: '0' .. '7'
{
matchRange('0', '7');
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:259:25: ( '0' .. '7' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:259:26: '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'
{
matchRange('0', '7');
@@ -1437,11 +1468,11 @@ public final void mOctalEscape() throws RecognitionException{
}
break;
case 3:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:260:9: '\\\\' ( '0' .. '7' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:286:9: '\\\\' ( '0' .. '7' )
{
match('\\');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:260:14: ( '0' .. '7' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:260:15: '0' .. '7'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:286:14: ( '0' .. '7' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:286:15: '0' .. '7'
{
matchRange('0', '7');
@@ -1464,8 +1495,8 @@ public final void mOctalEscape() throws RecognitionException{
public final void mUnicodeEscape() throws RecognitionException{
try
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:265:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:265: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:291:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
{
match('\\');
match('u');
@@ -1483,29 +1514,29 @@ public final void mUnicodeEscape() throws RecognitionException{
}
// $ANTLR end UnicodeEscape
-// $ANTLR start JavaIdentifier
+// $ANTLR start Identifier
-public final void mJavaIdentifier() throws RecognitionException{
+public final void mIdentifier() throws RecognitionException{
try
{
- int _type = JavaIdentifier;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:269:9: ( Letter ( Letter | JavaIDDigit )* )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:269:9: Letter ( Letter | JavaIDDigit )*
+ 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 )*
{
mLetter();
- // /Users/rich/dev/clojure/src/jvm/Reader.g:269:16: ( Letter | JavaIDDigit )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:301:13: ( '-' | Letter | JavaIDDigit )*
loop23:
do
{
int alt23 = 2;
int LA23_0 = input.LA(1);
- if((LA23_0 == '$' || (LA23_0 >= '0' && LA23_0 <= '9') || (LA23_0 >= 'A' && LA23_0 <= 'Z') ||
- LA23_0 == '_' || (LA23_0 >= 'a' && LA23_0 <= 'z') || (LA23_0 >= '\u00C0' && LA23_0 <= '\u00D6') ||
- (LA23_0 >= '\u00D8' && LA23_0 <= '\u00F6') || (LA23_0 >= '\u00F8' && LA23_0 <= '\u1FFF') ||
- (LA23_0 >= '\u3040' && LA23_0 <= '\u318F') || (LA23_0 >= '\u3300' && LA23_0 <= '\u337F') ||
- (LA23_0 >= '\u3400' && LA23_0 <= '\u3D2D') || (LA23_0 >= '\u4E00' && LA23_0 <= '\u9FFF') ||
- (LA23_0 >= '\uF900' && LA23_0 <= '\uFAFF')))
+ if((LA23_0 == '$' || LA23_0 == '-' || (LA23_0 >= '0' && LA23_0 <= '9') ||
+ (LA23_0 >= 'A' && LA23_0 <= 'Z') || LA23_0 == '_' || (LA23_0 >= 'a' && LA23_0 <= 'z') ||
+ (LA23_0 >= '\u00C0' && LA23_0 <= '\u00D6') || (LA23_0 >= '\u00D8' && LA23_0 <= '\u00F6') ||
+ (LA23_0 >= '\u00F8' && LA23_0 <= '\u1FFF') || (LA23_0 >= '\u3040' && LA23_0 <= '\u318F') ||
+ (LA23_0 >= '\u3300' && LA23_0 <= '\u337F') || (LA23_0 >= '\u3400' && LA23_0 <= '\u3D2D') ||
+ (LA23_0 >= '\u4E00' && LA23_0 <= '\u9FFF') || (LA23_0 >= '\uF900' && LA23_0 <= '\uFAFF')))
{
alt23 = 1;
}
@@ -1516,7 +1547,7 @@ public final void mJavaIdentifier() throws RecognitionException{
case 1:
// /Users/rich/dev/clojure/src/jvm/Reader.g:
{
- if(input.LA(1) == '$' || (input.LA(1) >= '0' && input.LA(1) <= '9') ||
+ if(input.LA(1) == '$' || input.LA(1) == '-' || (input.LA(1) >= '0' && input.LA(1) <= '9') ||
(input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' ||
(input.LA(1) >= 'a' && input.LA(1) <= 'z') || (input.LA(1) >= '\u00C0' && input.LA(1) <= '\u00D6') ||
(input.LA(1) >= '\u00D8' && input.LA(1) <= '\u00F6') ||
@@ -1556,82 +1587,69 @@ public final void mJavaIdentifier() throws RecognitionException{
{
}
}
-// $ANTLR end JavaIdentifier
+// $ANTLR end Identifier
-// $ANTLR start Identifier
+// $ANTLR start NSIdentifier
-public final void mIdentifier() throws RecognitionException{
+public final void mNSIdentifier() throws RecognitionException{
try
{
- int _type = Identifier;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:273:9: ( Letter ( '-' | Letter | JavaIDDigit )* )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:273:9: Letter ( '-' | Letter | JavaIDDigit )*
+ 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
{
- mLetter();
- // /Users/rich/dev/clojure/src/jvm/Reader.g:273:16: ( '-' | Letter | JavaIDDigit )*
- loop24:
- do
- {
- int alt24 = 2;
- int LA24_0 = input.LA(1);
-
- if((LA24_0 == '$' || LA24_0 == '-' || (LA24_0 >= '0' && LA24_0 <= '9') ||
- (LA24_0 >= 'A' && LA24_0 <= 'Z') || LA24_0 == '_' || (LA24_0 >= 'a' && LA24_0 <= 'z') ||
- (LA24_0 >= '\u00C0' && LA24_0 <= '\u00D6') || (LA24_0 >= '\u00D8' && LA24_0 <= '\u00F6') ||
- (LA24_0 >= '\u00F8' && LA24_0 <= '\u1FFF') || (LA24_0 >= '\u3040' && LA24_0 <= '\u318F') ||
- (LA24_0 >= '\u3300' && LA24_0 <= '\u337F') || (LA24_0 >= '\u3400' && LA24_0 <= '\u3D2D') ||
- (LA24_0 >= '\u4E00' && LA24_0 <= '\u9FFF') || (LA24_0 >= '\uF900' && LA24_0 <= '\uFAFF')))
- {
- alt24 = 1;
- }
-
-
- switch(alt24)
- {
- case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:
- {
- if(input.LA(1) == '$' || input.LA(1) == '-' || (input.LA(1) >= '0' && input.LA(1) <= '9') ||
- (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' ||
- (input.LA(1) >= 'a' && input.LA(1) <= 'z') || (input.LA(1) >= '\u00C0' && input.LA(1) <= '\u00D6') ||
- (input.LA(1) >= '\u00D8' && input.LA(1) <= '\u00F6') ||
- (input.LA(1) >= '\u00F8' && input.LA(1) <= '\u1FFF') ||
- (input.LA(1) >= '\u3040' && input.LA(1) <= '\u318F') ||
- (input.LA(1) >= '\u3300' && input.LA(1) <= '\u337F') ||
- (input.LA(1) >= '\u3400' && input.LA(1) <= '\u3D2D') ||
- (input.LA(1) >= '\u4E00' && input.LA(1) <= '\u9FFF') ||
- (input.LA(1) >= '\uF900' && input.LA(1) <= '\uFAFF'))
- {
- input.consume();
+ mIdentifier();
+ match('/');
+ mIdentifier();
- }
- else
- {
- MismatchedSetException mse =
- new MismatchedSetException(null, input);
- recover(mse);
- throw mse;
- }
+ }
+ this.type = _type;
+ }
+ finally
+ {
+ }
+}
+// $ANTLR end NSIdentifier
- }
- break;
+// $ANTLR start KeywordIdentifier
- default:
- break loop24;
- }
- } while(true);
+public final void mKeywordIdentifier() throws RecognitionException{
+ try
+ {
+ int _type = KeywordIdentifier;
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:309: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
+ {
+ match(':');
+ mIdentifier();
+ match('/');
+ mIdentifier();
+ }
+ break;
+ case 2:
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:310:3: ':' Identifier
+ {
+ match(':');
+ mIdentifier();
- }
+ }
+ break;
+ }
this.type = _type;
}
finally
{
}
}
-// $ANTLR end Identifier
+// $ANTLR end KeywordIdentifier
// $ANTLR start MethodIdentifier
@@ -1639,11 +1657,11 @@ public final void mMethodIdentifier() throws RecognitionException{
try
{
int _type = MethodIdentifier;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:277:9: ( Letter ( Letter | JavaIDDigit )* '(' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:277: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:314:9: Letter ( Letter | JavaIDDigit )* '('
{
mLetter();
- // /Users/rich/dev/clojure/src/jvm/Reader.g:277:16: ( Letter | JavaIDDigit )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:314:16: ( Letter | JavaIDDigit )*
loop25:
do
{
@@ -1714,7 +1732,7 @@ public final void mMethodIdentifier() throws RecognitionException{
public final void mLetter() throws RecognitionException{
try
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:284: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: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:
{
if(input.LA(1) == '$' || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' ||
@@ -1752,7 +1770,7 @@ public final void mLetter() throws RecognitionException{
public final void mJavaIDDigit() throws RecognitionException{
try
{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:302: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: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:
{
if((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= '\u0660' && input.LA(1) <= '\u0669') ||
@@ -1796,8 +1814,8 @@ public final void mWS() throws RecognitionException{
try
{
int _type = WS;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:319:8: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:319: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:356: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) == ' ')
@@ -1831,12 +1849,12 @@ public final void mCOMMENT() throws RecognitionException{
try
{
int _type = COMMENT;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:323:9: ( '#|' ( options {greedy=false; } : . )* '|#' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:323: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:360:9: '#|' ( options {greedy=false; } : . )* '|#'
{
match("#|");
- // /Users/rich/dev/clojure/src/jvm/Reader.g:323:14: ( options {greedy=false; } : . )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:360:14: ( options {greedy=false; } : . )*
loop26:
do
{
@@ -1867,7 +1885,7 @@ public final void mCOMMENT() throws RecognitionException{
switch(alt26)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:323:42: .
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:360:42: .
{
matchAny();
@@ -1899,11 +1917,11 @@ public final void mLINE_COMMENT() throws RecognitionException{
try
{
int _type = LINE_COMMENT;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:327:7: ( ';' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:327: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:364:7: ';' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
{
match(';');
- // /Users/rich/dev/clojure/src/jvm/Reader.g:327:11: (~ ( '\\n' | '\\r' ) )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:364:11: (~ ( '\\n' | '\\r' ) )*
loop27:
do
{
@@ -1920,7 +1938,7 @@ public final void mLINE_COMMENT() throws RecognitionException{
switch(alt27)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:327:11: ~ ( '\\n' | '\\r' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:364:11: ~ ( '\\n' | '\\r' )
{
if((input.LA(1) >= '\u0000' && input.LA(1) <= '\t') ||
(input.LA(1) >= '\u000B' && input.LA(1) <= '\f') ||
@@ -1946,7 +1964,7 @@ public final void mLINE_COMMENT() throws RecognitionException{
}
} while(true);
- // /Users/rich/dev/clojure/src/jvm/Reader.g:327:25: ( '\\r' )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:364:25: ( '\\r' )?
int alt28 = 2;
int LA28_0 = input.LA(1);
@@ -1957,7 +1975,7 @@ public final void mLINE_COMMENT() throws RecognitionException{
switch(alt28)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:327:25: '\\r'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:364:25: '\\r'
{
match('\r');
@@ -1980,188 +1998,202 @@ public final void mLINE_COMMENT() throws RecognitionException{
// $ANTLR end LINE_COMMENT
public void mTokens() throws RecognitionException{
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:10: ( T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | Comma | TrueToken | NullToken | DotDot | HexLiteral | DecimalLiteral | OctalLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | JavaIdentifier | Identifier | MethodIdentifier | WS | COMMENT | LINE_COMMENT )
- int alt29 = 26;
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:10: ( T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | Comma | TrueToken | NullToken | DotDot | HexLiteral | DecimalLiteral | OctalLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | Identifier | NSIdentifier | KeywordIdentifier | MethodIdentifier | WS | COMMENT | LINE_COMMENT )
+ int alt29 = 28;
alt29 = dfa29.predict(input);
switch(alt29)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:10: T28
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:10: T29
{
- mT28();
+ mT29();
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:14: T29
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:14: T30
{
- mT29();
+ mT30();
}
break;
case 3:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:18: T30
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:18: T31
{
- mT30();
+ mT31();
}
break;
case 4:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:22: T31
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:22: T32
{
- mT31();
+ mT32();
}
break;
case 5:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:26: T32
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:26: T33
{
- mT32();
+ mT33();
}
break;
case 6:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:30: T33
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:30: T34
{
- mT33();
+ mT34();
}
break;
case 7:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:34: T34
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:34: T35
{
- mT34();
+ mT35();
}
break;
case 8:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:38: T35
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:38: T36
{
- mT35();
+ mT36();
}
break;
case 9:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:42: T36
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:42: T37
{
- mT36();
+ mT37();
}
break;
case 10:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:46: T37
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:46: T38
{
- mT37();
+ mT38();
}
break;
case 11:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:50: Comma
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:50: T39
{
- mComma();
+ mT39();
}
break;
case 12:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:56: TrueToken
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:54: Comma
{
- mTrueToken();
+ mComma();
}
break;
case 13:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:66: NullToken
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:60: TrueToken
{
- mNullToken();
+ mTrueToken();
}
break;
case 14:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:76: DotDot
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:70: NullToken
{
- mDotDot();
+ mNullToken();
}
break;
case 15:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:83: HexLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:80: DotDot
{
- mHexLiteral();
+ mDotDot();
}
break;
case 16:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:94: DecimalLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:87: HexLiteral
{
- mDecimalLiteral();
+ mHexLiteral();
}
break;
case 17:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:109: OctalLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:98: DecimalLiteral
{
- mOctalLiteral();
+ mDecimalLiteral();
}
break;
case 18:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:122: FloatingPointLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:113: OctalLiteral
{
- mFloatingPointLiteral();
+ mOctalLiteral();
}
break;
case 19:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:143: CharacterLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:126: FloatingPointLiteral
{
- mCharacterLiteral();
+ mFloatingPointLiteral();
}
break;
case 20:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:160: StringLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:147: CharacterLiteral
{
- mStringLiteral();
+ mCharacterLiteral();
}
break;
case 21:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:174: JavaIdentifier
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:164: StringLiteral
{
- mJavaIdentifier();
+ mStringLiteral();
}
break;
case 22:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:189: Identifier
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:178: Identifier
{
mIdentifier();
}
break;
case 23:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:200: MethodIdentifier
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:189: NSIdentifier
{
- mMethodIdentifier();
+ mNSIdentifier();
}
break;
case 24:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:217: WS
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:202: KeywordIdentifier
{
- mWS();
+ mKeywordIdentifier();
}
break;
case 25:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:220: COMMENT
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:220: MethodIdentifier
{
- mCOMMENT();
+ mMethodIdentifier();
}
break;
case 26:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:1:228: LINE_COMMENT
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:237: WS
+ {
+ mWS();
+
+ }
+ break;
+ case 27:
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:240: COMMENT
+ {
+ mCOMMENT();
+
+ }
+ break;
+ case 28:
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:1:248: LINE_COMMENT
{
mLINE_COMMENT();
@@ -2174,6 +2206,7 @@ public void mTokens() throws RecognitionException{
protected DFA16 dfa16 = new DFA16(this);
+protected DFA24 dfa24 = new DFA24(this);
protected DFA29 dfa29 = new DFA29(this);
static final String DFA16_eotS =
"\7\uffff\1\10\2\uffff";
@@ -2184,12 +2217,12 @@ static final String DFA16_minS =
static final String DFA16_maxS =
"\1\71\1\146\1\uffff\1\71\2\uffff\1\71\1\146\2\uffff";
static final String DFA16_acceptS =
- "\2\uffff\1\2\1\uffff\1\4\1\1\2\uffff\2\3";
+ "\2\uffff\1\2\1\uffff\1\1\1\4\2\uffff\2\3";
static final String DFA16_specialS =
"\12\uffff}>";
static final String[] DFA16_transitionS = {
"\1\2\1\uffff\12\1",
- "\1\5\1\uffff\12\1\12\uffff\1\4\1\3\1\4\35\uffff\1\4\1\3\1\4",
+ "\1\4\1\uffff\12\1\12\uffff\1\5\1\3\1\5\35\uffff\1\5\1\3\1\5",
"",
"\1\6\1\uffff\1\6\2\uffff\12\7",
"",
@@ -2233,69 +2266,139 @@ class DFA16 extends DFA{
}
public String getDescription(){
- return "228:1: FloatingPointLiteral : ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix );";
+ return "254:1: FloatingPointLiteral : ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix );";
+ }
+}
+
+static final String DFA24_eotS =
+ "\2\uffff\1\3\1\uffff\1\3\1\uffff";
+static final String DFA24_eofS =
+ "\6\uffff";
+static final String DFA24_minS =
+ "\1\72\2\44\1\uffff\1\44\1\uffff";
+static final String DFA24_maxS =
+ "\1\72\2\ufaff\1\uffff\1\ufaff\1\uffff";
+static final String DFA24_acceptS =
+ "\3\uffff\1\2\1\uffff\1\1";
+static final String DFA24_specialS =
+ "\6\uffff}>";
+static final String[] DFA24_transitionS = {
+ "\1\1",
+ "\1\2\34\uffff\32\2\4\uffff\1\2\1\uffff\32\2\105\uffff\27\2\1" +
+ "\uffff\37\2\1\uffff\u1f08\2\u1040\uffff\u0150\2\u0170\uffff" +
+ "\u0080\2\u0080\uffff\u092e\2\u10d2\uffff\u5200\2\u5900\uffff" +
+ "\u0200\2",
+ "\1\4\10\uffff\1\4\1\uffff\1\5\12\4\7\uffff\32\4\4\uffff\1\4" +
+ "\1\uffff\32\4\105\uffff\27\4\1\uffff\37\4\1\uffff\u1f08\4\u1040" +
+ "\uffff\u0150\4\u0170\uffff\u0080\4\u0080\uffff\u092e\4\u10d2" +
+ "\uffff\u5200\4\u5900\uffff\u0200\4",
+ "",
+ "\1\4\10\uffff\1\4\1\uffff\1\5\12\4\7\uffff\32\4\4\uffff\1\4" +
+ "\1\uffff\32\4\105\uffff\27\4\1\uffff\37\4\1\uffff\u1f08\4\u1040" +
+ "\uffff\u0150\4\u0170\uffff\u0080\4\u0080\uffff\u092e\4\u10d2" +
+ "\uffff\u5200\4\u5900\uffff\u0200\4",
+ ""
+};
+
+static final short[] DFA24_eot = DFA.unpackEncodedString(DFA24_eotS);
+static final short[] DFA24_eof = DFA.unpackEncodedString(DFA24_eofS);
+static final char[] DFA24_min = DFA.unpackEncodedStringToUnsignedChars(DFA24_minS);
+static final char[] DFA24_max = DFA.unpackEncodedStringToUnsignedChars(DFA24_maxS);
+static final short[] DFA24_accept = DFA.unpackEncodedString(DFA24_acceptS);
+static final short[] DFA24_special = DFA.unpackEncodedString(DFA24_specialS);
+static final short[][] DFA24_transition;
+
+static
+ {
+ int numStates = DFA24_transitionS.length;
+ DFA24_transition = new short[numStates][];
+ for(int i = 0; i < numStates; i++)
+ {
+ DFA24_transition[i] = DFA.unpackEncodedString(DFA24_transitionS[i]);
+ }
+ }
+
+class DFA24 extends DFA{
+
+ public DFA24(BaseRecognizer recognizer){
+ this.recognizer = recognizer;
+ this.decisionNumber = 24;
+ this.eot = DFA24_eot;
+ this.eof = DFA24_eof;
+ this.min = DFA24_min;
+ this.max = DFA24_max;
+ this.accept = DFA24_accept;
+ this.special = DFA24_special;
+ this.transition = DFA24_transition;
+ }
+
+ public String getDescription(){
+ return "308:1: KeywordIdentifier : ( ':' Identifier '/' Identifier | ':' Identifier );";
}
}
static final String DFA29_eotS =
- "\12\uffff\1\31\1\uffff\2\33\2\42\2\uffff\1\33\7\uffff\1\33\1\uffff" +
- "\1\33\2\uffff\1\33\1\uffff\1\46\1\uffff\1\42\2\33\1\uffff\1\51\1" +
- "\52\2\uffff";
+ "\11\uffff\1\32\3\uffff\2\35\2\45\2\uffff\1\35\10\uffff\1\35\1\uffff" +
+ "\1\35\1\uffff\1\35\1\uffff\1\35\1\uffff\1\51\1\uffff\1\45\2\35\1" +
+ "\uffff\1\54\1\55\2\uffff";
static final String DFA29_eofS =
- "\53\uffff";
+ "\56\uffff";
static final String DFA29_minS =
- "\1\11\10\uffff\1\136\1\56\1\uffff\2\44\2\56\2\uffff\1\44\7\uffff" +
- "\1\44\1\uffff\1\44\2\uffff\1\44\1\uffff\1\56\1\uffff\1\56\2\44\1" +
- "\uffff\2\44\2\uffff";
+ "\1\11\7\uffff\1\136\1\56\3\uffff\2\44\2\56\2\uffff\1\44\10\uffff" +
+ "\1\44\1\uffff\1\44\1\uffff\1\44\1\uffff\1\44\1\uffff\1\56\1\uffff" +
+ "\1\56\2\44\1\uffff\2\44\2\uffff";
static final String DFA29_maxS =
- "\1\ufaff\10\uffff\1\174\1\71\1\uffff\2\ufaff\1\170\1\146\2\uffff" +
- "\1\ufaff\7\uffff\1\ufaff\1\uffff\1\ufaff\2\uffff\1\ufaff\1\uffff" +
- "\1\146\1\uffff\1\146\2\ufaff\1\uffff\2\ufaff\2\uffff";
+ "\1\ufaff\7\uffff\1\174\1\71\3\uffff\2\ufaff\1\170\1\146\2\uffff" +
+ "\1\ufaff\10\uffff\1\ufaff\1\uffff\1\ufaff\1\uffff\1\ufaff\1\uffff" +
+ "\1\ufaff\1\uffff\1\146\1\uffff\1\146\2\ufaff\1\uffff\2\ufaff\2\uffff";
static final String DFA29_acceptS =
- "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\uffff\1\13\4\uffff\1" +
- "\23\1\24\1\uffff\1\30\1\32\1\31\1\11\1\16\1\22\1\12\1\uffff\1\25" +
- "\1\uffff\1\27\1\26\1\uffff\1\17\1\uffff\1\20\3\uffff\1\21\2\uffff" +
- "\1\14\1\15";
+ "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\uffff\1\12\1\13\1\14\4\uffff" +
+ "\1\24\1\25\1\uffff\1\30\1\32\1\34\1\10\1\33\1\17\1\11\1\23\1\uffff" +
+ "\1\26\1\uffff\1\31\1\uffff\1\27\1\uffff\1\20\1\uffff\1\21\3\uffff" +
+ "\1\22\2\uffff\1\15\1\16";
static final String DFA29_specialS =
- "\53\uffff}>";
+ "\56\uffff}>";
static final String[] DFA29_transitionS = {
- "\2\23\1\uffff\2\23\22\uffff\1\23\1\uffff\1\21\1\11\1\22\3\uffff" +
- "\1\1\1\2\2\uffff\1\13\1\uffff\1\12\1\7\1\16\11\17\1\10\1\24" +
- "\5\uffff\32\22\1\3\1\20\1\4\1\uffff\1\22\1\uffff\15\22\1\15" +
- "\5\22\1\14\6\22\1\5\1\uffff\1\6\102\uffff\27\22\1\uffff\37\22" +
- "\1\uffff\u1f08\22\u1040\uffff\u0150\22\u0170\uffff\u0080\22" +
- "\u0080\uffff\u092e\22\u10d2\uffff\u5200\22\u5900\uffff\u0200" +
- "\22",
+ "\2\25\1\uffff\2\25\22\uffff\1\25\1\uffff\1\22\1\10\1\23\2\uffff" +
+ "\1\12\1\1\1\2\2\uffff\1\14\1\uffff\1\11\1\7\1\17\11\20\1\24" +
+ "\1\26\5\uffff\32\23\1\3\1\21\1\4\1\13\1\23\1\uffff\15\23\1\16" +
+ "\5\23\1\15\6\23\1\5\1\uffff\1\6\102\uffff\27\23\1\uffff\37\23" +
+ "\1\uffff\u1f08\23\u1040\uffff\u0150\23\u0170\uffff\u0080\23" +
+ "\u0080\uffff\u092e\23\u10d2\uffff\u5200\23\u5900\uffff\u0200" +
+ "\23",
+ "",
+ "",
"",
"",
"",
"",
"",
+ "\1\27\35\uffff\1\30",
+ "\1\31\1\uffff\12\33",
"",
"",
"",
- "\1\26\35\uffff\1\25",
- "\1\27\1\uffff\12\30",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\21\36\1\34\10\36\105\uffff\27\36\1" +
+ "\uffff\37\36\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff" +
+ "\u0080\36\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff" +
+ "\u0200\36",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\24\36\1\42\5\36\105\uffff\27\36\1\uffff" +
+ "\37\36\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff\u0080" +
+ "\36\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff\u0200" +
+ "\36",
+ "\1\33\1\uffff\10\44\2\33\12\uffff\3\33\21\uffff\1\43\13\uffff" +
+ "\3\33\21\uffff\1\43",
+ "\1\33\1\uffff\12\46\12\uffff\3\33\35\uffff\3\33",
"",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\21\34\1\32\10\34\105\uffff\27\34\1\uffff" +
- "\37\34\1\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080" +
- "\34\u0080\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200" +
- "\34",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\24\34\1\37\5\34\105\uffff\27\34\1\uffff" +
- "\37\34\1\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080" +
- "\34\u0080\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200" +
- "\34",
- "\1\30\1\uffff\10\41\2\30\12\uffff\3\30\21\uffff\1\40\13\uffff" +
- "\3\30\21\uffff\1\40",
- "\1\30\1\uffff\12\43\12\uffff\3\30\35\uffff\3\30",
"",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\32\36\105\uffff\27\36\1\uffff\37\36" +
+ "\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff\u0080\36" +
+ "\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff\u0200" +
+ "\36",
"",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\32\34\105\uffff\27\34\1\uffff\37\34\1" +
- "\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080\34\u0080" +
- "\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200\34",
"",
"",
"",
@@ -2303,46 +2406,53 @@ static final String[] DFA29_transitionS = {
"",
"",
"",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\24\34\1\44\5\34\105\uffff\27\34\1\uffff" +
- "\37\34\1\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080" +
- "\34\u0080\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200" +
- "\34",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\24\36\1\47\5\36\105\uffff\27\36\1\uffff" +
+ "\37\36\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff\u0080" +
+ "\36\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff\u0200" +
+ "\36",
"",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\32\34\105\uffff\27\34\1\uffff\37\34\1" +
- "\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080\34\u0080" +
- "\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200\34",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\32\36\105\uffff\27\36\1\uffff\37\36" +
+ "\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff\u0080\36" +
+ "\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff\u0200" +
+ "\36",
"",
+ "\1\40\10\uffff\1\40\1\uffff\1\41\12\40\7\uffff\32\40\4\uffff" +
+ "\1\40\1\uffff\32\40\105\uffff\27\40\1\uffff\37\40\1\uffff\u1f08" +
+ "\40\u1040\uffff\u0150\40\u0170\uffff\u0080\40\u0080\uffff\u092e" +
+ "\40\u10d2\uffff\u5200\40\u5900\uffff\u0200\40",
"",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\13\34\1\45\16\34\105\uffff\27\34\1\uffff" +
- "\37\34\1\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080" +
- "\34\u0080\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200" +
- "\34",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\13\36\1\50\16\36\105\uffff\27\36\1" +
+ "\uffff\37\36\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff" +
+ "\u0080\36\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff" +
+ "\u0200\36",
"",
- "\1\30\1\uffff\10\41\2\30\12\uffff\3\30\35\uffff\3\30",
+ "\1\33\1\uffff\10\44\2\33\12\uffff\3\33\35\uffff\3\33",
"",
- "\1\30\1\uffff\12\43\12\uffff\3\30\35\uffff\3\30",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\4\34\1\47\25\34\105\uffff\27\34\1\uffff" +
- "\37\34\1\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080" +
- "\34\u0080\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200" +
- "\34",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\13\34\1\50\16\34\105\uffff\27\34\1\uffff" +
- "\37\34\1\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080" +
- "\34\u0080\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200" +
- "\34",
+ "\1\33\1\uffff\12\46\12\uffff\3\33\35\uffff\3\33",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\4\36\1\52\25\36\105\uffff\27\36\1\uffff" +
+ "\37\36\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff\u0080" +
+ "\36\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff\u0200" +
+ "\36",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\13\36\1\53\16\36\105\uffff\27\36\1" +
+ "\uffff\37\36\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff" +
+ "\u0080\36\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff" +
+ "\u0200\36",
"",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\32\34\105\uffff\27\34\1\uffff\37\34\1" +
- "\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080\34\u0080" +
- "\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200\34",
- "\1\34\3\uffff\1\35\4\uffff\1\36\2\uffff\12\34\7\uffff\32\34" +
- "\4\uffff\1\34\1\uffff\32\34\105\uffff\27\34\1\uffff\37\34\1" +
- "\uffff\u1f08\34\u1040\uffff\u0150\34\u0170\uffff\u0080\34\u0080" +
- "\uffff\u092e\34\u10d2\uffff\u5200\34\u5900\uffff\u0200\34",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\32\36\105\uffff\27\36\1\uffff\37\36" +
+ "\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff\u0080\36" +
+ "\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff\u0200" +
+ "\36",
+ "\1\36\3\uffff\1\37\4\uffff\1\40\1\uffff\1\41\12\36\7\uffff\32" +
+ "\36\4\uffff\1\36\1\uffff\32\36\105\uffff\27\36\1\uffff\37\36" +
+ "\1\uffff\u1f08\36\u1040\uffff\u0150\36\u0170\uffff\u0080\36" +
+ "\u0080\uffff\u092e\36\u10d2\uffff\u5200\36\u5900\uffff\u0200" +
+ "\36",
"",
""
};
@@ -2380,7 +2490,7 @@ class DFA29 extends DFA{
}
public String getDescription(){
- return "1:1: Tokens : ( T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | Comma | TrueToken | NullToken | DotDot | HexLiteral | DecimalLiteral | OctalLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | JavaIdentifier | Identifier | MethodIdentifier | WS | COMMENT | LINE_COMMENT );";
+ return "1:1: Tokens : ( T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | Comma | TrueToken | NullToken | DotDot | HexLiteral | DecimalLiteral | OctalLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | Identifier | NSIdentifier | KeywordIdentifier | MethodIdentifier | WS | COMMENT | LINE_COMMENT );";
}
}
diff --git a/src/jvm/clojure/lang/ReaderParser.java b/src/jvm/clojure/lang/ReaderParser.java
index 5cfab491..e4ab4e96 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-13 12:56:20
+// $ANTLR 3.0 /Users/rich/dev/clojure/src/jvm/Reader.g 2007-07-16 11:13:34
package clojure.lang;
@@ -26,41 +26,42 @@ import java.util.HashMap;
*/
public class ReaderParser extends Parser{
public static final String[] tokenNames = new String[]{
- "<invalid>", "<EOR>", "<DOWN>", "<UP>", "Identifier", "JavaIdentifier", "DotDot", "FloatingPointLiteral",
- "CharacterLiteral", "StringLiteral", "TrueToken", "NullToken", "DecimalLiteral", "HexLiteral", "OctalLiteral",
- "MethodIdentifier", "Comma", "HexDigit", "Exponent", "FloatTypeSuffix", "EscapeSequence", "UnicodeEscape",
- "OctalEscape", "Letter", "JavaIDDigit", "WS", "COMMENT", "LINE_COMMENT", "'('", "')'", "'['", "']'", "'{'",
- "'}'", "'/'", "':'", "'#^'", "'.'"
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "Identifier", "NSIdentifier", "DotDot", "KeywordIdentifier",
+ "FloatingPointLiteral", "CharacterLiteral", "StringLiteral", "TrueToken", "NullToken", "DecimalLiteral",
+ "HexLiteral", "OctalLiteral", "MethodIdentifier", "Comma", "HexDigit", "Exponent", "FloatTypeSuffix",
+ "EscapeSequence", "UnicodeEscape", "OctalEscape", "Letter", "JavaIDDigit", "WS", "COMMENT", "LINE_COMMENT",
+ "'('", "')'", "'['", "']'", "'{'", "'}'", "'/'", "'#^'", "'.'", "'\\''", "'^'"
};
-public static final int TrueToken = 10;
-public static final int Exponent = 18;
-public static final int OctalLiteral = 14;
+public static final int TrueToken = 11;
+public static final int Exponent = 19;
+public static final int OctalLiteral = 15;
public static final int Identifier = 4;
-public static final int HexDigit = 17;
-public static final int WS = 25;
-public static final int CharacterLiteral = 8;
-public static final int MethodIdentifier = 15;
-public static final int COMMENT = 26;
-public static final int StringLiteral = 9;
-public static final int LINE_COMMENT = 27;
+public static final int HexDigit = 18;
+public static final int WS = 26;
+public static final int CharacterLiteral = 9;
+public static final int MethodIdentifier = 16;
+public static final int NSIdentifier = 5;
+public static final int COMMENT = 27;
+public static final int KeywordIdentifier = 7;
+public static final int StringLiteral = 10;
+public static final int LINE_COMMENT = 28;
public static final int DotDot = 6;
-public static final int JavaIDDigit = 24;
-public static final int Letter = 23;
-public static final int UnicodeEscape = 21;
-public static final int HexLiteral = 13;
-public static final int Comma = 16;
-public static final int EscapeSequence = 20;
+public static final int JavaIDDigit = 25;
+public static final int Letter = 24;
+public static final int UnicodeEscape = 22;
+public static final int HexLiteral = 14;
+public static final int Comma = 17;
+public static final int EscapeSequence = 21;
public static final int EOF = -1;
-public static final int NullToken = 11;
-public static final int DecimalLiteral = 12;
-public static final int OctalEscape = 22;
-public static final int FloatingPointLiteral = 7;
-public static final int JavaIdentifier = 5;
-public static final int FloatTypeSuffix = 19;
+public static final int NullToken = 12;
+public static final int DecimalLiteral = 13;
+public static final int OctalEscape = 23;
+public static final int FloatingPointLiteral = 8;
+public static final int FloatTypeSuffix = 20;
public ReaderParser(TokenStream input){
super(input);
- ruleMemo = new HashMap[47 + 1];
+ ruleMemo = new HashMap[48 + 1];
}
@@ -77,17 +78,23 @@ public String getGrammarFileName(){
//after:
// if (failed) return val;
-/*WARNING- HAND MODIFIED!
- if(es == null) es = new ArrayList();
- es.add(e);
- // END HAND MODIFIED*/
+/*
+ //WARNING- HAND MODIFIED!
+ if(es == null) es = new ArrayList();
+ es.add(e);
+ // END HAND MODIFIED
+ */
//add this to mapexpr:
-/*WARNING- HAND MODIFIED!
- val = val.assoc(k, v);
- // END HAND MODIFIED*/
+/*
+ //WARNING- HAND MODIFIED!
+ val = val.assoc(k, v);
+ // END HAND MODIFIED
+ */
final static Symbol DOTDOT = new Symbol("..");
+final static Symbol QUOTE = new Symbol("quote");
+final static Symbol META = new Symbol("meta");
public static void main(String[] args) throws Exception{
Writer w = new PrintWriter(System.out);
@@ -104,7 +111,7 @@ public static void main(String[] args) throws Exception{
{
if(lexer.rex != null)
throw lexer.rex;
- for(int i = 0; i < 10; i++)
+ for(int i = 0; i < 20; i++)
{
Object e = parser.expression();
RT.print(e, w);
@@ -132,7 +139,7 @@ public void recoverFromMismatchedSet(IntStream input,
// $ANTLR start expression
-// /Users/rich/dev/clojure/src/jvm/Reader.g:106:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression );
+// /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 );
public final Object expression() throws RecognitionException{
Object val = null;
int expression_StartIndex = input.index();
@@ -152,6 +159,10 @@ public final Object expression() throws RecognitionException{
Object g = null;
+ Object q = null;
+
+ Object ct = null;
+
try
{
@@ -159,8 +170,8 @@ public final Object expression() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:107:4: (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression )
- int alt1 = 8;
+ // /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;
switch(input.LA(1))
{
case FloatingPointLiteral:
@@ -176,116 +187,75 @@ public final Object expression() throws RecognitionException{
}
break;
case Identifier:
- case JavaIdentifier:
{
- switch(input.LA(2))
+ int LA1_2 = 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)))
{
- case 34:
+ alt1 = 2;
+ }
+ else if((LA1_2 == 37))
{
- int LA1_9 = input.LA(3);
-
- if(((LA1_9 >= Identifier && LA1_9 <= JavaIdentifier)))
+ alt1 = 8;
+ }
+ else
+ {
+ if(backtracking > 0)
{
- int LA1_12 = input.LA(4);
-
- if((LA1_12 == 37))
- {
- alt1 = 8;
- }
- else if((LA1_12 == EOF || (LA1_12 >= Identifier && LA1_12 <= OctalLiteral) || LA1_12 == Comma ||
- (LA1_12 >= 28 && LA1_12 <= 33) || (LA1_12 >= 35 && LA1_12 <= 36)))
- {
- alt1 = 2;
- }
- else
- {
- if(backtracking > 0)
- {
- failed = true;
- return val;
- }
- NoViableAltException nvae =
- new NoViableAltException(
- "106:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression );",
- 1, 12, input);
-
- throw nvae;
- }
+ failed = true;
+ return val;
}
- else
- {
- if(backtracking > 0)
- {
- failed = true;
- return val;
- }
- NoViableAltException nvae =
- new NoViableAltException(
- "106:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression );",
- 1, 9, input);
+ 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);
- throw nvae;
- }
+ throw nvae;
}
- break;
- case 37:
+ }
+ break;
+ case NSIdentifier:
+ {
+ int LA1_3 = 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)))
{
- alt1 = 8;
+ alt1 = 2;
}
- break;
- case EOF:
- case Identifier:
- case JavaIdentifier:
- case DotDot:
- case FloatingPointLiteral:
- case CharacterLiteral:
- case StringLiteral:
- case TrueToken:
- case NullToken:
- case DecimalLiteral:
- case HexLiteral:
- case OctalLiteral:
- case Comma:
- case 28:
- case 29:
- case 30:
- case 31:
- case 32:
- case 33:
- case 35:
- case 36:
+ else if((LA1_3 == 37))
{
- alt1 = 2;
+ alt1 = 8;
}
- break;
- default:
- if(backtracking > 0)
- {
- failed = true;
- return val;
- }
- NoViableAltException nvae =
- new NoViableAltException(
- "106:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression );",
- 1, 2, input);
+ else
+ {
+ if(backtracking > 0)
+ {
+ failed = true;
+ return val;
+ }
+ 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);
- throw nvae;
+ throw nvae;
}
-
}
break;
case DotDot:
{
- int LA1_3 = input.LA(2);
+ int LA1_4 = input.LA(2);
- if((LA1_3 == 37))
+ 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)))
{
- alt1 = 8;
+ alt1 = 2;
}
- else if((LA1_3 == EOF || (LA1_3 >= Identifier && LA1_3 <= OctalLiteral) || LA1_3 == Comma ||
- (LA1_3 >= 28 && LA1_3 <= 33) || (LA1_3 >= 35 && LA1_3 <= 36)))
+ else if((LA1_4 == 37))
{
- alt1 = 2;
+ alt1 = 8;
}
else
{
@@ -296,29 +266,29 @@ public final Object expression() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "106:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression );",
- 1, 3, input);
+ "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);
throw nvae;
}
}
break;
- case 35:
+ case KeywordIdentifier:
{
alt1 = 3;
}
break;
- case 28:
+ case 29:
{
alt1 = 4;
}
break;
- case 30:
+ case 31:
{
alt1 = 5;
}
break;
- case 32:
+ case 33:
{
alt1 = 6;
}
@@ -328,6 +298,16 @@ public final Object expression() throws RecognitionException{
alt1 = 7;
}
break;
+ case 38:
+ {
+ alt1 = 9;
+ }
+ break;
+ case 39:
+ {
+ alt1 = 10;
+ }
+ break;
default:
if(backtracking > 0)
{
@@ -336,7 +316,7 @@ public final Object expression() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "106:1: expression returns [Object val] : (lt= literal | s= symbol | k= keyword | le= listExpression | ve= vectorExpression | me= mapExpression | mx= metaExpression | g= dotExpression );",
+ "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, 0, input);
throw nvae;
@@ -345,7 +325,7 @@ public final Object expression() throws RecognitionException{
switch(alt1)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:107:4: lt= literal
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:122:4: lt= literal
{
pushFollow(FOLLOW_literal_in_expression73);
lt = literal();
@@ -359,7 +339,7 @@ public final Object expression() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:108:3: s= symbol
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:123:3: s= symbol
{
pushFollow(FOLLOW_symbol_in_expression83);
s = symbol();
@@ -373,7 +353,7 @@ public final Object expression() throws RecognitionException{
}
break;
case 3:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:109:3: k= keyword
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:124:3: k= keyword
{
pushFollow(FOLLOW_keyword_in_expression93);
k = keyword();
@@ -387,7 +367,7 @@ public final Object expression() throws RecognitionException{
}
break;
case 4:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:110:3: le= listExpression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:125:3: le= listExpression
{
pushFollow(FOLLOW_listExpression_in_expression103);
le = listExpression();
@@ -401,7 +381,7 @@ public final Object expression() throws RecognitionException{
}
break;
case 5:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:111:3: ve= vectorExpression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:126:3: ve= vectorExpression
{
pushFollow(FOLLOW_vectorExpression_in_expression113);
ve = vectorExpression();
@@ -415,7 +395,7 @@ public final Object expression() throws RecognitionException{
}
break;
case 6:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:112:3: me= mapExpression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:127:3: me= mapExpression
{
pushFollow(FOLLOW_mapExpression_in_expression123);
me = mapExpression();
@@ -429,7 +409,7 @@ public final Object expression() throws RecognitionException{
}
break;
case 7:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:113:3: mx= metaExpression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:128:3: mx= metaExpression
{
pushFollow(FOLLOW_metaExpression_in_expression133);
mx = metaExpression();
@@ -443,7 +423,7 @@ public final Object expression() throws RecognitionException{
}
break;
case 8:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:114:3: g= dotExpression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:129:3: g= dotExpression
{
pushFollow(FOLLOW_dotExpression_in_expression143);
g = dotExpression();
@@ -456,6 +436,34 @@ public final Object expression() throws RecognitionException{
}
break;
+ case 9:
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:130:3: q= quotedExpression
+ {
+ pushFollow(FOLLOW_quotedExpression_in_expression153);
+ q = quotedExpression();
+ _fsp--;
+ if(failed) return val;
+ if(backtracking == 0)
+ {
+ val = q;
+ }
+
+ }
+ break;
+ case 10:
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:131:3: ct= caretExpression
+ {
+ pushFollow(FOLLOW_caretExpression_in_expression163);
+ ct = caretExpression();
+ _fsp--;
+ if(failed) return val;
+ if(backtracking == 0)
+ {
+ val = ct;
+ }
+
+ }
+ break;
}
}
@@ -476,7 +484,7 @@ public final Object expression() throws RecognitionException{
// $ANTLR end expression
// $ANTLR start listExpression
-// /Users/rich/dev/clojure/src/jvm/Reader.g:117:1: listExpression returns [ISeq val] : '(' es= expressions ')' ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:134:1: listExpression returns [ISeq val] : '(' es= expressions ')' ;
public final ISeq listExpression() throws RecognitionException{
ISeq val = null;
@@ -490,16 +498,16 @@ public final ISeq listExpression() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:118:4: ( '(' es= expressions ')' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:118:4: '(' es= expressions ')'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:135:4: ( '(' es= expressions ')' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:135:4: '(' es= expressions ')'
{
- match(input, 28, FOLLOW_28_in_listExpression160);
+ match(input, 29, FOLLOW_29_in_listExpression180);
if(failed) return val;
- pushFollow(FOLLOW_expressions_in_listExpression167);
+ pushFollow(FOLLOW_expressions_in_listExpression187);
es = expressions();
_fsp--;
if(failed) return val;
- match(input, 29, FOLLOW_29_in_listExpression169);
+ match(input, 30, FOLLOW_30_in_listExpression189);
if(failed) return val;
if(backtracking == 0)
{
@@ -526,7 +534,7 @@ public final ISeq listExpression() throws RecognitionException{
// $ANTLR end listExpression
// $ANTLR start expressions
-// /Users/rich/dev/clojure/src/jvm/Reader.g:121:10: fragment expressions returns [List es] : (e= expression )* ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:138:10: fragment expressions returns [List es] : (e= expression )* ;
public final List expressions() throws RecognitionException{
List es = null;
@@ -540,18 +548,18 @@ public final List expressions() throws RecognitionException{
{
return es;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:122:4: ( (e= expression )* )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:122:4: (e= expression )*
+ // /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:122:6: (e= expression )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:139:6: (e= expression )*
loop2:
do
{
int alt2 = 2;
int LA2_0 = input.LA(1);
- if(((LA2_0 >= Identifier && LA2_0 <= OctalLiteral) || LA2_0 == 28 || LA2_0 == 30 || LA2_0 == 32 ||
- (LA2_0 >= 35 && LA2_0 <= 36)))
+ 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)))
{
alt2 = 1;
}
@@ -562,14 +570,10 @@ public final List expressions() throws RecognitionException{
case 1:
// /Users/rich/dev/clojure/src/jvm/Reader.g:0:0: e= expression
{
- pushFollow(FOLLOW_expression_in_expressions191);
+ pushFollow(FOLLOW_expression_in_expressions211);
e = expression();
_fsp--;
if(failed) return es;
- //*WARNING- HAND MODIFIED!
- if(es == null) es = new ArrayList();
- es.add(e);
- // END HAND MODIFIED*/
}
break;
@@ -600,7 +604,7 @@ public final List expressions() throws RecognitionException{
// $ANTLR end expressions
// $ANTLR start vectorExpression
-// /Users/rich/dev/clojure/src/jvm/Reader.g:125:1: vectorExpression returns [IPersistentArray val] : '[' es= expressions ']' ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:142:1: vectorExpression returns [IPersistentArray val] : '[' es= expressions ']' ;
public final IPersistentArray vectorExpression() throws RecognitionException{
IPersistentArray val = null;
@@ -614,16 +618,16 @@ public final IPersistentArray vectorExpression() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:126:4: ( '[' es= expressions ']' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:126:4: '[' es= expressions ']'
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:143:4: ( '[' es= expressions ']' )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:143:4: '[' es= expressions ']'
{
- match(input, 30, FOLLOW_30_in_vectorExpression208);
+ match(input, 31, FOLLOW_31_in_vectorExpression228);
if(failed) return val;
- pushFollow(FOLLOW_expressions_in_vectorExpression214);
+ pushFollow(FOLLOW_expressions_in_vectorExpression234);
es = expressions();
_fsp--;
if(failed) return val;
- match(input, 31, FOLLOW_31_in_vectorExpression216);
+ match(input, 32, FOLLOW_32_in_vectorExpression236);
if(failed) return val;
if(backtracking == 0)
{
@@ -650,7 +654,7 @@ public final IPersistentArray vectorExpression() throws RecognitionException{
// $ANTLR end vectorExpression
// $ANTLR start mapExpression
-// /Users/rich/dev/clojure/src/jvm/Reader.g:129:1: mapExpression returns [IPersistentMap val] : '{' (k= expression v= expression )* '}' ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:146:1: mapExpression returns [IPersistentMap val] : '{' (k= expression v= expression )* '}' ;
public final IPersistentMap mapExpression() throws RecognitionException{
IPersistentMap val = null;
@@ -668,20 +672,20 @@ public final IPersistentMap mapExpression() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:133:4: ( '{' (k= expression v= expression )* '}' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:133: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:150:4: '{' (k= expression v= expression )* '}'
{
- match(input, 32, FOLLOW_32_in_mapExpression236);
+ match(input, 33, FOLLOW_33_in_mapExpression256);
if(failed) return val;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:133:8: (k= expression v= expression )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:150:8: (k= expression v= expression )*
loop3:
do
{
int alt3 = 2;
int LA3_0 = input.LA(1);
- if(((LA3_0 >= Identifier && LA3_0 <= OctalLiteral) || LA3_0 == 28 || LA3_0 == 30 || LA3_0 == 32 ||
- (LA3_0 >= 35 && LA3_0 <= 36)))
+ 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)))
{
alt3 = 1;
}
@@ -690,19 +694,16 @@ public final IPersistentMap mapExpression() throws RecognitionException{
switch(alt3)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:133:9: k= expression v= expression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:150:9: k= expression v= expression
{
- pushFollow(FOLLOW_expression_in_mapExpression241);
+ pushFollow(FOLLOW_expression_in_mapExpression261);
k = expression();
_fsp--;
if(failed) return val;
- pushFollow(FOLLOW_expression_in_mapExpression245);
+ pushFollow(FOLLOW_expression_in_mapExpression265);
v = expression();
_fsp--;
if(failed) return val;
- //*WARNING- HAND MODIFIED!
- val = val.assoc(k, v);
- // END HAND MODIFIED*/
}
break;
@@ -712,7 +713,7 @@ public final IPersistentMap mapExpression() throws RecognitionException{
}
} while(true);
- match(input, 33, FOLLOW_33_in_mapExpression249);
+ match(input, 34, FOLLOW_34_in_mapExpression269);
if(failed) return val;
}
@@ -735,14 +736,12 @@ public final IPersistentMap mapExpression() throws RecognitionException{
// $ANTLR end mapExpression
// $ANTLR start symbol
-// /Users/rich/dev/clojure/src/jvm/Reader.g:136:1: symbol returns [Symbol val] : (n= ( Identifier | JavaIdentifier ) | ns= ( Identifier | JavaIdentifier ) '/' nn= ( Identifier | JavaIdentifier ) | dd= DotDot );
+// /Users/rich/dev/clojure/src/jvm/Reader.g:153:1: symbol returns [Symbol val] : (n= Identifier | n= NSIdentifier | dd= DotDot );
public final Symbol symbol() throws RecognitionException{
Symbol val = null;
int symbol_StartIndex = input.index();
Token n = null;
- Token ns = null;
- Token nn = null;
Token dd = null;
try
@@ -751,25 +750,26 @@ public final Symbol symbol() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:137:3: (n= ( Identifier | JavaIdentifier ) | ns= ( Identifier | JavaIdentifier ) '/' nn= ( Identifier | JavaIdentifier ) | dd= DotDot )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:154:3: (n= Identifier | n= NSIdentifier | dd= DotDot )
int alt4 = 3;
- int LA4_0 = input.LA(1);
-
- if(((LA4_0 >= Identifier && LA4_0 <= JavaIdentifier)))
+ switch(input.LA(1))
{
- int LA4_1 = input.LA(2);
-
- if((LA4_1 == 34))
- {
- alt4 = 2;
- }
- else if((LA4_1 == EOF || (LA4_1 >= Identifier && LA4_1 <= OctalLiteral) || LA4_1 == Comma ||
- (LA4_1 >= 28 && LA4_1 <= 33) || (LA4_1 >= 35 && LA4_1 <= 37)))
- {
- alt4 = 1;
- }
- else
- {
+ case Identifier:
+ {
+ alt4 = 1;
+ }
+ break;
+ case NSIdentifier:
+ {
+ alt4 = 2;
+ }
+ break;
+ case DotDot:
+ {
+ alt4 = 3;
+ }
+ break;
+ default:
if(backtracking > 0)
{
failed = true;
@@ -777,55 +777,20 @@ public final Symbol symbol() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "136:1: symbol returns [Symbol val] : (n= ( Identifier | JavaIdentifier ) | ns= ( Identifier | JavaIdentifier ) '/' nn= ( Identifier | JavaIdentifier ) | dd= DotDot );",
- 4, 1, input);
+ "153:1: symbol returns [Symbol val] : (n= Identifier | n= NSIdentifier | dd= DotDot );",
+ 4, 0, input);
throw nvae;
- }
- }
- else if((LA4_0 == DotDot))
- {
- alt4 = 3;
}
- else
- {
- if(backtracking > 0)
- {
- failed = true;
- return val;
- }
- NoViableAltException nvae =
- new NoViableAltException(
- "136:1: symbol returns [Symbol val] : (n= ( Identifier | JavaIdentifier ) | ns= ( Identifier | JavaIdentifier ) '/' nn= ( Identifier | JavaIdentifier ) | dd= DotDot );",
- 4, 0, input);
- throw nvae;
- }
switch(alt4)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:137:3: n= ( Identifier | JavaIdentifier )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:154:3: n= Identifier
{
n = (Token) input.LT(1);
- if((input.LA(1) >= Identifier && input.LA(1) <= JavaIdentifier))
- {
- input.consume();
- errorRecovery = false;
- failed = false;
- }
- else
- {
- if(backtracking > 0)
- {
- failed = true;
- return val;
- }
- MismatchedSetException mse =
- new MismatchedSetException(null, input);
- recoverFromMismatchedSet(input, mse, FOLLOW_set_in_symbol266);
- throw mse;
- }
-
+ match(input, Identifier, FOLLOW_Identifier_in_symbol286);
+ if(failed) return val;
if(backtracking == 0)
{
val = new Symbol(n.getText());
@@ -834,59 +799,20 @@ public final Symbol symbol() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:138:3: ns= ( Identifier | JavaIdentifier ) '/' nn= ( Identifier | JavaIdentifier )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:155:3: n= NSIdentifier
{
- ns = (Token) input.LT(1);
- if((input.LA(1) >= Identifier && input.LA(1) <= JavaIdentifier))
- {
- input.consume();
- errorRecovery = false;
- failed = false;
- }
- else
- {
- if(backtracking > 0)
- {
- failed = true;
- return val;
- }
- MismatchedSetException mse =
- new MismatchedSetException(null, input);
- recoverFromMismatchedSet(input, mse, FOLLOW_set_in_symbol280);
- throw mse;
- }
-
- match(input, 34, FOLLOW_34_in_symbol286);
+ n = (Token) input.LT(1);
+ match(input, NSIdentifier, FOLLOW_NSIdentifier_in_symbol296);
if(failed) return val;
- nn = (Token) input.LT(1);
- if((input.LA(1) >= Identifier && input.LA(1) <= JavaIdentifier))
- {
- input.consume();
- errorRecovery = false;
- failed = false;
- }
- else
- {
- if(backtracking > 0)
- {
- failed = true;
- return val;
- }
- MismatchedSetException mse =
- new MismatchedSetException(null, input);
- recoverFromMismatchedSet(input, mse, FOLLOW_set_in_symbol292);
- throw mse;
- }
-
if(backtracking == 0)
{
- val = new Symbol(ns.getText(), nn.getText());
+ val = new Symbol(n.getText());
}
}
break;
case 3:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:139:3: dd= DotDot
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:156:3: dd= DotDot
{
dd = (Token) input.LT(1);
match(input, DotDot, FOLLOW_DotDot_in_symbol306);
@@ -918,13 +844,12 @@ public final Symbol symbol() throws RecognitionException{
// $ANTLR end symbol
// $ANTLR start keyword
-// /Users/rich/dev/clojure/src/jvm/Reader.g:142:1: keyword returns [Keyword val] : ':' s= symbol ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:159:1: keyword returns [Keyword val] : k= KeywordIdentifier ;
public final Keyword keyword() throws RecognitionException{
Keyword val = null;
int keyword_StartIndex = input.index();
- Symbol s = null;
-
+ Token k = null;
try
{
@@ -932,18 +857,15 @@ public final Keyword keyword() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:143:3: ( ':' s= symbol )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:143:3: ':' s= symbol
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:160:3: (k= KeywordIdentifier )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:160:3: k= KeywordIdentifier
{
- match(input, 35, FOLLOW_35_in_keyword322);
- if(failed) return val;
- pushFollow(FOLLOW_symbol_in_keyword328);
- s = symbol();
- _fsp--;
+ k = (Token) input.LT(1);
+ match(input, KeywordIdentifier, FOLLOW_KeywordIdentifier_in_keyword326);
if(failed) return val;
if(backtracking == 0)
{
- val = new Keyword(s);
+ val = new Keyword(k.getText().substring(1));
}
}
@@ -966,7 +888,7 @@ public final Keyword keyword() throws RecognitionException{
// $ANTLR end keyword
// $ANTLR start literal
-// /Users/rich/dev/clojure/src/jvm/Reader.g:147: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:164: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;
@@ -985,7 +907,7 @@ public final Object literal() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:148:6: (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral )
+ // /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;
switch(input.LA(1))
{
@@ -999,12 +921,12 @@ public final Object literal() throws RecognitionException{
{
int LA5_2 = input.LA(2);
- if((LA5_2 == 34))
+ if((LA5_2 == 35))
{
alt5 = 7;
}
else if((LA5_2 == EOF || (LA5_2 >= Identifier && LA5_2 <= OctalLiteral) || LA5_2 == Comma ||
- (LA5_2 >= 28 && LA5_2 <= 33) || (LA5_2 >= 35 && LA5_2 <= 36)))
+ (LA5_2 >= 29 && LA5_2 <= 34) || LA5_2 == 36 || (LA5_2 >= 38 && LA5_2 <= 39)))
{
alt5 = 1;
}
@@ -1017,7 +939,7 @@ public final Object literal() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "147:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral );",
+ "164:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral );",
5, 2, input);
throw nvae;
@@ -1057,7 +979,7 @@ public final Object literal() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "147:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral );",
+ "164:1: literal returns [Object val] : (i= integerLiteral | fp= FloatingPointLiteral | c= CharacterLiteral | s= StringLiteral | TrueToken | NullToken | r= ratioLiteral );",
5, 0, input);
throw nvae;
@@ -1066,9 +988,9 @@ public final Object literal() throws RecognitionException{
switch(alt5)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:148:6: i= integerLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:165:6: i= integerLiteral
{
- pushFollow(FOLLOW_integerLiteral_in_literal355);
+ pushFollow(FOLLOW_integerLiteral_in_literal353);
i = integerLiteral();
_fsp--;
if(failed) return val;
@@ -1080,10 +1002,10 @@ public final Object literal() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:149:6: fp= FloatingPointLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:166:6: fp= FloatingPointLiteral
{
fp = (Token) input.LT(1);
- match(input, FloatingPointLiteral, FOLLOW_FloatingPointLiteral_in_literal368);
+ match(input, FloatingPointLiteral, FOLLOW_FloatingPointLiteral_in_literal366);
if(failed) return val;
if(backtracking == 0)
{
@@ -1093,10 +1015,10 @@ public final Object literal() throws RecognitionException{
}
break;
case 3:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:150:6: c= CharacterLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:167:6: c= CharacterLiteral
{
c = (Token) input.LT(1);
- match(input, CharacterLiteral, FOLLOW_CharacterLiteral_in_literal381);
+ match(input, CharacterLiteral, FOLLOW_CharacterLiteral_in_literal379);
if(failed) return val;
if(backtracking == 0)
{
@@ -1106,10 +1028,10 @@ public final Object literal() throws RecognitionException{
}
break;
case 4:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:151:6: s= StringLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:168:6: s= StringLiteral
{
s = (Token) input.LT(1);
- match(input, StringLiteral, FOLLOW_StringLiteral_in_literal394);
+ match(input, StringLiteral, FOLLOW_StringLiteral_in_literal392);
if(failed) return val;
if(backtracking == 0)
{
@@ -1119,9 +1041,9 @@ public final Object literal() throws RecognitionException{
}
break;
case 5:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:152:6: TrueToken
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:169:6: TrueToken
{
- match(input, TrueToken, FOLLOW_TrueToken_in_literal403);
+ match(input, TrueToken, FOLLOW_TrueToken_in_literal401);
if(failed) return val;
if(backtracking == 0)
{
@@ -1131,9 +1053,9 @@ public final Object literal() throws RecognitionException{
}
break;
case 6:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:153:6: NullToken
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:170:6: NullToken
{
- match(input, NullToken, FOLLOW_NullToken_in_literal412);
+ match(input, NullToken, FOLLOW_NullToken_in_literal410);
if(failed) return val;
if(backtracking == 0)
{
@@ -1143,9 +1065,9 @@ public final Object literal() throws RecognitionException{
}
break;
case 7:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:154:6: r= ratioLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:171:6: r= ratioLiteral
{
- pushFollow(FOLLOW_ratioLiteral_in_literal425);
+ pushFollow(FOLLOW_ratioLiteral_in_literal423);
r = ratioLiteral();
_fsp--;
if(failed) return val;
@@ -1176,7 +1098,7 @@ public final Object literal() throws RecognitionException{
// $ANTLR end literal
// $ANTLR start ratioLiteral
-// /Users/rich/dev/clojure/src/jvm/Reader.g:157:1: ratioLiteral returns [Num val] : n= DecimalLiteral '/' d= DecimalLiteral ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:174:1: ratioLiteral returns [Num val] : n= DecimalLiteral '/' d= DecimalLiteral ;
public final Num ratioLiteral() throws RecognitionException{
Num val = null;
@@ -1190,16 +1112,16 @@ public final Num ratioLiteral() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:158:4: (n= DecimalLiteral '/' d= DecimalLiteral )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:158: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:175:4: n= DecimalLiteral '/' d= DecimalLiteral
{
n = (Token) input.LT(1);
- match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_ratioLiteral448);
+ match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_ratioLiteral446);
if(failed) return val;
- match(input, 34, FOLLOW_34_in_ratioLiteral450);
+ match(input, 35, FOLLOW_35_in_ratioLiteral448);
if(failed) return val;
d = (Token) input.LT(1);
- match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_ratioLiteral456);
+ match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_ratioLiteral454);
if(failed) return val;
if(backtracking == 0)
{
@@ -1226,7 +1148,7 @@ public final Num ratioLiteral() throws RecognitionException{
// $ANTLR end ratioLiteral
// $ANTLR start integerLiteral
-// /Users/rich/dev/clojure/src/jvm/Reader.g:161:1: integerLiteral returns [Num val] : (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral );
+// /Users/rich/dev/clojure/src/jvm/Reader.g:178:1: integerLiteral returns [Num val] : (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral );
public final Num integerLiteral() throws RecognitionException{
Num val = null;
@@ -1241,7 +1163,7 @@ public final Num integerLiteral() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:162:9: (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:179:9: (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral )
int alt6 = 3;
switch(input.LA(1))
{
@@ -1268,7 +1190,7 @@ public final Num integerLiteral() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "161:1: integerLiteral returns [Num val] : (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral );",
+ "178:1: integerLiteral returns [Num val] : (hn= HexLiteral | on= OctalLiteral | nn= DecimalLiteral );",
6, 0, input);
throw nvae;
@@ -1277,10 +1199,10 @@ public final Num integerLiteral() throws RecognitionException{
switch(alt6)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:162:9: hn= HexLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:179:9: hn= HexLiteral
{
hn = (Token) input.LT(1);
- match(input, HexLiteral, FOLLOW_HexLiteral_in_integerLiteral482);
+ match(input, HexLiteral, FOLLOW_HexLiteral_in_integerLiteral480);
if(failed) return val;
if(backtracking == 0)
{
@@ -1290,10 +1212,10 @@ public final Num integerLiteral() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:163:9: on= OctalLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:180:9: on= OctalLiteral
{
on = (Token) input.LT(1);
- match(input, OctalLiteral, FOLLOW_OctalLiteral_in_integerLiteral501);
+ match(input, OctalLiteral, FOLLOW_OctalLiteral_in_integerLiteral499);
if(failed) return val;
if(backtracking == 0)
{
@@ -1303,10 +1225,10 @@ public final Num integerLiteral() throws RecognitionException{
}
break;
case 3:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:164:9: nn= DecimalLiteral
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:181:9: nn= DecimalLiteral
{
nn = (Token) input.LT(1);
- match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_integerLiteral519);
+ match(input, DecimalLiteral, FOLLOW_DecimalLiteral_in_integerLiteral517);
if(failed) return val;
if(backtracking == 0)
{
@@ -1335,7 +1257,7 @@ public final Num integerLiteral() throws RecognitionException{
// $ANTLR end integerLiteral
// $ANTLR start metaTag
-// /Users/rich/dev/clojure/src/jvm/Reader.g:169:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );
+// /Users/rich/dev/clojure/src/jvm/Reader.g:186:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );
public final IPersistentMap metaTag() throws RecognitionException{
IPersistentMap val = null;
@@ -1351,7 +1273,7 @@ public final IPersistentMap metaTag() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:171:3: ( '#^' s= symbol | '#^' m= mapExpression )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:188:3: ( '#^' s= symbol | '#^' m= mapExpression )
int alt7 = 2;
int LA7_0 = input.LA(1);
@@ -1359,7 +1281,7 @@ public final IPersistentMap metaTag() throws RecognitionException{
{
int LA7_1 = input.LA(2);
- if((LA7_1 == 32))
+ if((LA7_1 == 33))
{
alt7 = 2;
}
@@ -1376,7 +1298,7 @@ public final IPersistentMap metaTag() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "169:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );",
+ "186:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );",
7, 1, input);
throw nvae;
@@ -1391,7 +1313,7 @@ public final IPersistentMap metaTag() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "169:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );",
+ "186:1: fragment metaTag returns [IPersistentMap val] : ( '#^' s= symbol | '#^' m= mapExpression );",
7, 0, input);
throw nvae;
@@ -1399,11 +1321,11 @@ public final IPersistentMap metaTag() throws RecognitionException{
switch(alt7)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:171:3: '#^' s= symbol
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:188:3: '#^' s= symbol
{
- match(input, 36, FOLLOW_36_in_metaTag542);
+ match(input, 36, FOLLOW_36_in_metaTag540);
if(failed) return val;
- pushFollow(FOLLOW_symbol_in_metaTag548);
+ pushFollow(FOLLOW_symbol_in_metaTag546);
s = symbol();
_fsp--;
if(failed) return val;
@@ -1415,11 +1337,11 @@ public final IPersistentMap metaTag() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:172:3: '#^' m= mapExpression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:189:3: '#^' m= mapExpression
{
- match(input, 36, FOLLOW_36_in_metaTag554);
+ match(input, 36, FOLLOW_36_in_metaTag552);
if(failed) return val;
- pushFollow(FOLLOW_mapExpression_in_metaTag560);
+ pushFollow(FOLLOW_mapExpression_in_metaTag558);
m = mapExpression();
_fsp--;
if(failed) return val;
@@ -1450,7 +1372,7 @@ public final IPersistentMap metaTag() throws RecognitionException{
// $ANTLR end metaTag
// $ANTLR start objExpression
-// /Users/rich/dev/clojure/src/jvm/Reader.g:175:1: fragment objExpression returns [Obj val] : (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression );
+// /Users/rich/dev/clojure/src/jvm/Reader.g:192:1: fragment objExpression returns [Obj val] : (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression );
public final Obj objExpression() throws RecognitionException{
Obj val = null;
@@ -1470,28 +1392,28 @@ public final Obj objExpression() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:177:3: (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:194:3: (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression )
int alt8 = 4;
switch(input.LA(1))
{
case Identifier:
- case JavaIdentifier:
+ case NSIdentifier:
case DotDot:
{
alt8 = 1;
}
break;
- case 28:
+ case 29:
{
alt8 = 2;
}
break;
- case 32:
+ case 33:
{
alt8 = 3;
}
break;
- case 30:
+ case 31:
{
alt8 = 4;
}
@@ -1504,7 +1426,7 @@ public final Obj objExpression() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "175:1: fragment objExpression returns [Obj val] : (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression );",
+ "192:1: fragment objExpression returns [Obj val] : (s= symbol | le= listExpression | me= mapExpression | ve= vectorExpression );",
8, 0, input);
throw nvae;
@@ -1513,9 +1435,9 @@ public final Obj objExpression() throws RecognitionException{
switch(alt8)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:177:3: s= symbol
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:194:3: s= symbol
{
- pushFollow(FOLLOW_symbol_in_objExpression583);
+ pushFollow(FOLLOW_symbol_in_objExpression581);
s = symbol();
_fsp--;
if(failed) return val;
@@ -1527,9 +1449,9 @@ public final Obj objExpression() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:178:3: le= listExpression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:195:3: le= listExpression
{
- pushFollow(FOLLOW_listExpression_in_objExpression593);
+ pushFollow(FOLLOW_listExpression_in_objExpression591);
le = listExpression();
_fsp--;
if(failed) return val;
@@ -1541,9 +1463,9 @@ public final Obj objExpression() throws RecognitionException{
}
break;
case 3:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:179:3: me= mapExpression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:196:3: me= mapExpression
{
- pushFollow(FOLLOW_mapExpression_in_objExpression603);
+ pushFollow(FOLLOW_mapExpression_in_objExpression601);
me = mapExpression();
_fsp--;
if(failed) return val;
@@ -1555,9 +1477,9 @@ public final Obj objExpression() throws RecognitionException{
}
break;
case 4:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:180:3: ve= vectorExpression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:197:3: ve= vectorExpression
{
- pushFollow(FOLLOW_vectorExpression_in_objExpression613);
+ pushFollow(FOLLOW_vectorExpression_in_objExpression611);
ve = vectorExpression();
_fsp--;
if(failed) return val;
@@ -1588,7 +1510,7 @@ public final Obj objExpression() throws RecognitionException{
// $ANTLR end objExpression
// $ANTLR start metaExpression
-// /Users/rich/dev/clojure/src/jvm/Reader.g:183:1: metaExpression returns [Obj val] : m= metaTag e= objExpression ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:200:1: metaExpression returns [Obj val] : m= metaTag e= objExpression ;
public final Obj metaExpression() throws RecognitionException{
Obj val = null;
@@ -1604,14 +1526,14 @@ public final Obj metaExpression() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:184:3: (m= metaTag e= objExpression )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:184: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:201:3: m= metaTag e= objExpression
{
- pushFollow(FOLLOW_metaTag_in_metaExpression635);
+ pushFollow(FOLLOW_metaTag_in_metaExpression633);
m = metaTag();
_fsp--;
if(failed) return val;
- pushFollow(FOLLOW_objExpression_in_metaExpression641);
+ pushFollow(FOLLOW_objExpression_in_metaExpression639);
e = objExpression();
_fsp--;
if(failed) return val;
@@ -1640,7 +1562,7 @@ public final Obj metaExpression() throws RecognitionException{
// $ANTLR end metaExpression
// $ANTLR start member
-// /Users/rich/dev/clojure/src/jvm/Reader.g:187:1: fragment member returns [Object val] : ( '.' i= JavaIdentifier | '.' m= method );
+// /Users/rich/dev/clojure/src/jvm/Reader.g:204:1: fragment member returns [Object val] : ( '.' i= Identifier | '.' m= method );
public final Object member() throws RecognitionException{
Object val = null;
@@ -1655,7 +1577,7 @@ public final Object member() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:189:4: ( '.' i= JavaIdentifier | '.' m= method )
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:206:4: ( '.' i= Identifier | '.' m= method )
int alt9 = 2;
int LA9_0 = input.LA(1);
@@ -1663,7 +1585,7 @@ public final Object member() throws RecognitionException{
{
int LA9_1 = input.LA(2);
- if((LA9_1 == JavaIdentifier))
+ if((LA9_1 == Identifier))
{
alt9 = 1;
}
@@ -1680,7 +1602,7 @@ public final Object member() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "187:1: fragment member returns [Object val] : ( '.' i= JavaIdentifier | '.' m= method );",
+ "204:1: fragment member returns [Object val] : ( '.' i= Identifier | '.' m= method );",
9, 1, input);
throw nvae;
@@ -1695,20 +1617,20 @@ public final Object member() throws RecognitionException{
}
NoViableAltException nvae =
new NoViableAltException(
- "187:1: fragment member returns [Object val] : ( '.' i= JavaIdentifier | '.' m= method );",
- 9, 0, input);
+ "204:1: fragment member returns [Object val] : ( '.' i= Identifier | '.' m= method );", 9,
+ 0, input);
throw nvae;
}
switch(alt9)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:189:4: '.' i= JavaIdentifier
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:206:4: '.' i= Identifier
{
- match(input, 37, FOLLOW_37_in_member661);
+ match(input, 37, FOLLOW_37_in_member659);
if(failed) return val;
i = (Token) input.LT(1);
- match(input, JavaIdentifier, FOLLOW_JavaIdentifier_in_member667);
+ match(input, Identifier, FOLLOW_Identifier_in_member665);
if(failed) return val;
if(backtracking == 0)
{
@@ -1718,11 +1640,11 @@ public final Object member() throws RecognitionException{
}
break;
case 2:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:190:4: '.' m= method
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:207:4: '.' m= method
{
- match(input, 37, FOLLOW_37_in_member674);
+ match(input, 37, FOLLOW_37_in_member672);
if(failed) return val;
- pushFollow(FOLLOW_method_in_member680);
+ pushFollow(FOLLOW_method_in_member678);
m = method();
_fsp--;
if(failed) return val;
@@ -1753,7 +1675,7 @@ public final Object member() throws RecognitionException{
// $ANTLR end member
// $ANTLR start method
-// /Users/rich/dev/clojure/src/jvm/Reader.g:193:1: fragment method returns [Object val] : i= MethodIdentifier (es= args )? ')' ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:210:1: fragment method returns [Object val] : i= MethodIdentifier (es= args )? ')' ;
public final Object method() throws RecognitionException{
Object val = null;
@@ -1768,18 +1690,18 @@ public final Object method() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:195:4: (i= MethodIdentifier (es= args )? ')' )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:195: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:212:4: i= MethodIdentifier (es= args )? ')'
{
i = (Token) input.LT(1);
- match(input, MethodIdentifier, FOLLOW_MethodIdentifier_in_method705);
+ match(input, MethodIdentifier, FOLLOW_MethodIdentifier_in_method703);
if(failed) return val;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:195:28: (es= args )?
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:212:28: (es= args )?
int alt10 = 2;
int LA10_0 = input.LA(1);
- if(((LA10_0 >= Identifier && LA10_0 <= OctalLiteral) || LA10_0 == 28 || LA10_0 == 30 || LA10_0 == 32 ||
- (LA10_0 >= 35 && LA10_0 <= 36)))
+ 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)))
{
alt10 = 1;
}
@@ -1788,7 +1710,7 @@ public final Object method() throws RecognitionException{
case 1:
// /Users/rich/dev/clojure/src/jvm/Reader.g:0:0: es= args
{
- pushFollow(FOLLOW_args_in_method711);
+ pushFollow(FOLLOW_args_in_method709);
es = args();
_fsp--;
if(failed) return val;
@@ -1798,7 +1720,7 @@ public final Object method() throws RecognitionException{
}
- match(input, 29, FOLLOW_29_in_method714);
+ match(input, 30, FOLLOW_30_in_method712);
if(failed) return val;
if(backtracking == 0)
{
@@ -1825,7 +1747,7 @@ public final Object method() throws RecognitionException{
// $ANTLR end method
// $ANTLR start args
-// /Users/rich/dev/clojure/src/jvm/Reader.g:198:10: fragment args returns [ISeq val] : e1= expression ( Comma e= expression )* ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:215:10: fragment args returns [ISeq val] : e1= expression ( Comma e= expression )* ;
public final ISeq args() throws RecognitionException{
ISeq val = null;
@@ -1843,14 +1765,14 @@ public final ISeq args() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:202:4: (e1= expression ( Comma e= expression )* )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:202: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:219:4: e1= expression ( Comma e= expression )*
{
- pushFollow(FOLLOW_expression_in_args740);
+ pushFollow(FOLLOW_expression_in_args738);
e1 = expression();
_fsp--;
if(failed) return val;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:202:21: ( Comma e= expression )*
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:219:21: ( Comma e= expression )*
loop11:
do
{
@@ -1866,18 +1788,14 @@ public final ISeq args() throws RecognitionException{
switch(alt11)
{
case 1:
- // /Users/rich/dev/clojure/src/jvm/Reader.g:202:22: Comma e= expression
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:219:22: Comma e= expression
{
- match(input, Comma, FOLLOW_Comma_in_args744);
+ match(input, Comma, FOLLOW_Comma_in_args742);
if(failed) return val;
- pushFollow(FOLLOW_expression_in_args750);
+ pushFollow(FOLLOW_expression_in_args748);
e = expression();
_fsp--;
if(failed) return val;
- //*WARNING- HAND MODIFIED!
- if(es == null) es = new ArrayList();
- es.add(e);
- // END HAND MODIFIED*/
}
break;
@@ -1912,7 +1830,7 @@ public final ISeq args() throws RecognitionException{
// $ANTLR end args
// $ANTLR start dotExpression
-// /Users/rich/dev/clojure/src/jvm/Reader.g:205:1: dotExpression returns [Object val] : s= symbol (e= member )+ ;
+// /Users/rich/dev/clojure/src/jvm/Reader.g:222:1: dotExpression returns [Object val] : s= symbol (e= member )+ ;
public final Object dotExpression() throws RecognitionException{
Object val = null;
@@ -1930,14 +1848,14 @@ public final Object dotExpression() throws RecognitionException{
{
return val;
}
- // /Users/rich/dev/clojure/src/jvm/Reader.g:209:3: (s= symbol (e= member )+ )
- // /Users/rich/dev/clojure/src/jvm/Reader.g:209: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:226:3: s= symbol (e= member )+
{
- pushFollow(FOLLOW_symbol_in_dotExpression779);
+ pushFollow(FOLLOW_symbol_in_dotExpression777);
s = symbol();
_fsp--;
if(failed) return val;
- // /Users/rich/dev/clojure/src/jvm/Reader.g:209:16: (e= member )+
+ // /Users/rich/dev/clojure/src/jvm/Reader.g:226:16: (e= member )+
int cnt12 = 0;
loop12:
do
@@ -1956,14 +1874,10 @@ public final Object dotExpression() throws RecognitionException{
case 1:
// /Users/rich/dev/clojure/src/jvm/Reader.g:0:0: e= member
{
- pushFollow(FOLLOW_member_in_dotExpression785);
+ pushFollow(FOLLOW_member_in_dotExpression783);
e = member();
_fsp--;
if(failed) return val;
- //*WARNING- HAND MODIFIED!
- if(es == null) es = new ArrayList();
- es.add(e);
- // END HAND MODIFIED*/
}
break;
@@ -2006,6 +1920,102 @@ 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 ;
+
+public final Object quotedExpression() throws RecognitionException{
+ Object val = null;
+ int quotedExpression_StartIndex = input.index();
+ Object e = null;
+
+
+ try
+ {
+ if(backtracking > 0 && alreadyParsedRule(input, 18))
+ {
+ 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
+ {
+ match(input, 38, FOLLOW_38_in_quotedExpression801);
+ if(failed) return val;
+ pushFollow(FOLLOW_expression_in_quotedExpression807);
+ e = expression();
+ _fsp--;
+ if(failed) return val;
+ if(backtracking == 0)
+ {
+ val = RT.list(QUOTE, e);
+ }
+
+ }
+
+ }
+
+ catch(RecognitionException exc)
+ {
+ throw exc;
+ }
+ finally
+ {
+ if(backtracking > 0)
+ {
+ memoize(input, 18, quotedExpression_StartIndex);
+ }
+ }
+ return val;
+}
+// $ANTLR end quotedExpression
+
+// $ANTLR start caretExpression
+// /Users/rich/dev/clojure/src/jvm/Reader.g:233:1: caretExpression returns [Object val] : '^' e= expression ;
+
+public final Object caretExpression() throws RecognitionException{
+ Object val = null;
+ int caretExpression_StartIndex = input.index();
+ Object e = null;
+
+
+ try
+ {
+ if(backtracking > 0 && alreadyParsedRule(input, 19))
+ {
+ 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
+ {
+ match(input, 39, FOLLOW_39_in_caretExpression825);
+ if(failed) return val;
+ pushFollow(FOLLOW_expression_in_caretExpression831);
+ e = expression();
+ _fsp--;
+ if(failed) return val;
+ if(backtracking == 0)
+ {
+ val = RT.list(META, e);
+ }
+
+ }
+
+ }
+
+ catch(RecognitionException exc)
+ {
+ throw exc;
+ }
+ finally
+ {
+ if(backtracking > 0)
+ {
+ memoize(input, 19, caretExpression_StartIndex);
+ }
+ }
+ return val;
+}
+// $ANTLR end caretExpression
+
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});
@@ -2015,58 +2025,61 @@ public static final BitSet FOLLOW_vectorExpression_in_expression113 = new BitSet
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_28_in_listExpression160 = new BitSet(new long[]{0x0000001970007FF0L});
-public static final BitSet FOLLOW_expressions_in_listExpression167 = new BitSet(new long[]{0x0000000020000000L});
-public static final BitSet FOLLOW_29_in_listExpression169 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_expression_in_expressions191 = new BitSet(new long[]{0x0000001950007FF2L});
-public static final BitSet FOLLOW_30_in_vectorExpression208 = new BitSet(new long[]{0x00000019D0007FF0L});
-public static final BitSet FOLLOW_expressions_in_vectorExpression214 = new BitSet(new long[]{0x0000000080000000L});
-public static final BitSet FOLLOW_31_in_vectorExpression216 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_32_in_mapExpression236 = new BitSet(new long[]{0x0000001B50007FF0L});
-public static final BitSet FOLLOW_expression_in_mapExpression241 = new BitSet(new long[]{0x0000001950007FF0L});
-public static final BitSet FOLLOW_expression_in_mapExpression245 = new BitSet(new long[]{0x0000001B50007FF0L});
-public static final BitSet FOLLOW_33_in_mapExpression249 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_set_in_symbol266 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_set_in_symbol280 = new BitSet(new long[]{0x0000000400000000L});
-public static final BitSet FOLLOW_34_in_symbol286 = new BitSet(new long[]{0x0000000000000030L});
-public static final BitSet FOLLOW_set_in_symbol292 = 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_35_in_keyword322 = new BitSet(new long[]{0x0000000000000070L});
-public static final BitSet FOLLOW_symbol_in_keyword328 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_integerLiteral_in_literal355 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_FloatingPointLiteral_in_literal368 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_CharacterLiteral_in_literal381 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_StringLiteral_in_literal394 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_TrueToken_in_literal403 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_NullToken_in_literal412 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_ratioLiteral_in_literal425 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_DecimalLiteral_in_ratioLiteral448 = new BitSet(new long[]{0x0000000400000000L});
-public static final BitSet FOLLOW_34_in_ratioLiteral450 = new BitSet(new long[]{0x0000000000001000L});
-public static final BitSet FOLLOW_DecimalLiteral_in_ratioLiteral456 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_HexLiteral_in_integerLiteral482 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_OctalLiteral_in_integerLiteral501 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_DecimalLiteral_in_integerLiteral519 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_36_in_metaTag542 = new BitSet(new long[]{0x0000000000000070L});
-public static final BitSet FOLLOW_symbol_in_metaTag548 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_36_in_metaTag554 = new BitSet(new long[]{0x0000000100000000L});
-public static final BitSet FOLLOW_mapExpression_in_metaTag560 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_symbol_in_objExpression583 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_listExpression_in_objExpression593 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_mapExpression_in_objExpression603 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_vectorExpression_in_objExpression613 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_metaTag_in_metaExpression635 = new BitSet(new long[]{0x0000000150000070L});
-public static final BitSet FOLLOW_objExpression_in_metaExpression641 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_37_in_member661 = new BitSet(new long[]{0x0000000000000020L});
-public static final BitSet FOLLOW_JavaIdentifier_in_member667 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_37_in_member674 = new BitSet(new long[]{0x0000000000008000L});
-public static final BitSet FOLLOW_method_in_member680 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_MethodIdentifier_in_method705 = new BitSet(new long[]{0x0000001970007FF0L});
-public static final BitSet FOLLOW_args_in_method711 = new BitSet(new long[]{0x0000000020000000L});
-public static final BitSet FOLLOW_29_in_method714 = new BitSet(new long[]{0x0000000000000002L});
-public static final BitSet FOLLOW_expression_in_args740 = new BitSet(new long[]{0x0000000000010002L});
-public static final BitSet FOLLOW_Comma_in_args744 = new BitSet(new long[]{0x0000001950007FF0L});
-public static final BitSet FOLLOW_expression_in_args750 = new BitSet(new long[]{0x0000000000010002L});
-public static final BitSet FOLLOW_symbol_in_dotExpression779 = new BitSet(new long[]{0x0000002000000000L});
-public static final BitSet FOLLOW_member_in_dotExpression785 = new BitSet(new long[]{0x0000002000000002L});
+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});
} \ No newline at end of file
diff --git a/src/jvm/clojure/lang/Symbol.java b/src/jvm/clojure/lang/Symbol.java
index 07ac492c..4351f554 100644
--- a/src/jvm/clojure/lang/Symbol.java
+++ b/src/jvm/clojure/lang/Symbol.java
@@ -33,7 +33,17 @@ public Symbol(String ns, String name){
}
public Symbol(String name){
- this(null, name);
+ int i = name.indexOf('/');
+ if(i == -1)
+ {
+ this.name = name.intern();
+ this.ns = null;
+ }
+ else
+ {
+ this.ns = name.substring(0, i).intern();
+ this.name = name.substring(i + 1).intern();
+ }
}