diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-02-12 19:23:56 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-02-12 19:23:56 +0000 |
commit | 76c5f7d547b6c424ccd9523a340883e1597551ce (patch) | |
tree | 4b39798dc6878cee8341a494f9f11d04f41eb108 | |
parent | 3129be6d80d315e3be2f77dadcf7e904fc6015f5 (diff) |
added compiled regex literals via #"pattern"
-rw-r--r-- | src/jvm/clojure/lang/LispReader.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java index e2c12ae1..ef80121a 100644 --- a/src/jvm/clojure/lang/LispReader.java +++ b/src/jvm/clojure/lang/LispReader.java @@ -71,6 +71,8 @@ static dispatchMacros['^'] = new MetaReader();
dispatchMacros['\''] = new WrappingReader(Compiler.THE_VAR);
+ dispatchMacros['"'] = new RegexReader();
+
}
static boolean isWhitespace(int ch){
@@ -254,6 +256,14 @@ static private boolean isTerminatingMacro(int ch){ return (ch != '#' && ch < macros.length && macros[ch] != null);
}
+static class RegexReader extends AFn{
+ static StringReader stringrdr = new StringReader();
+ public Object invoke(Object reader, Object doublequote) throws Exception{
+ String str = (String) stringrdr.invoke(reader, doublequote);
+ return Pattern.compile(str);
+ }
+}
+
static class StringReader extends AFn{
public Object invoke(Object reader, Object doublequote) throws Exception{
StringBuilder sb = new StringBuilder();
|