summaryrefslogtreecommitdiff
path: root/src/jvm
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-12-04 10:52:13 -0500
committerRich Hickey <richhickey@gmail.com>2009-12-04 10:52:13 -0500
commitc6b6f8b5437dc6c3605fc7e15a8b905ccebd983e (patch)
tree3263e4edc115238c386083daaaeef006e9aba335 /src/jvm
parent4d3c5e9f522b5a510224ab3c980c571b0a2cd05b (diff)
parent76e7c4317dc3eac80c4908ac5e5fb885e302b2a4 (diff)
merge master
Diffstat (limited to 'src/jvm')
-rw-r--r--src/jvm/clojure/lang/LispReader.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java
index 368bc1fa..0f0864a1 100644
--- a/src/jvm/clojure/lang/LispReader.java
+++ b/src/jvm/clojure/lang/LispReader.java
@@ -68,7 +68,7 @@ static Var ARG_ENV = Var.create(null);
macros[';'] = new CommentReader();
macros['\''] = new WrappingReader(QUOTE);
macros['@'] = new WrappingReader(DEREF);//new DerefReader();
- macros['^'] = new WrappingReader(META);
+ macros['^'] = new DeprecatedWrappingReader(META, "^");
macros['`'] = new SyntaxQuoteReader();
macros['~'] = new UnquoteReader();
macros['('] = new ListReader();
@@ -491,6 +491,26 @@ public static class WrappingReader extends AFn{
}
+public static class DeprecatedWrappingReader extends AFn{
+ final Symbol sym;
+ final String macro;
+
+ public DeprecatedWrappingReader(Symbol sym, String macro){
+ this.sym = sym;
+ this.macro = macro;
+ }
+
+ public Object invoke(Object reader, Object quote) throws Exception{
+ System.out.println("WARNING: reader macro " + macro +
+ " is deprecated; use " + sym.getName() +
+ " instead");
+ PushbackReader r = (PushbackReader) reader;
+ Object o = read(r, true, null, true);
+ return RT.list(sym, o);
+ }
+
+}
+
public static class VarReader extends AFn{
public Object invoke(Object reader, Object quote) throws Exception{
PushbackReader r = (PushbackReader) reader;