MCPcopy Index your code
hub / github.com/clojure/clojure / LispReader

Class LispReader

src/jvm/clojure/lang/LispReader.java:41–1702  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39import java.util.regex.Pattern;
40
41public class LispReader{
42
43static final Symbol QUOTE = Symbol.intern("quote");
44static final Symbol THE_VAR = Symbol.intern("var");
45//static Symbol SYNTAX_QUOTE = Symbol.intern(null, "syntax-quote");
46static Symbol UNQUOTE = Symbol.intern("clojure.core", "unquote");
47static Symbol UNQUOTE_SPLICING = Symbol.intern("clojure.core", "unquote-splicing");
48static Symbol CONCAT = Symbol.intern("clojure.core", "concat");
49static Symbol SEQ = Symbol.intern("clojure.core", "seq");
50static Symbol LIST = Symbol.intern("clojure.core", "list");
51static Symbol APPLY = Symbol.intern("clojure.core", "apply");
52static Symbol HASHMAP = Symbol.intern("clojure.core", "hash-map");
53static Symbol HASHSET = Symbol.intern("clojure.core", "hash-set");
54static Symbol VECTOR = Symbol.intern("clojure.core", "vector");
55static Symbol WITH_META = Symbol.intern("clojure.core", "with-meta");
56static Symbol META = Symbol.intern("clojure.core", "meta");
57static Symbol DEREF = Symbol.intern("clojure.core", "deref");
58static Symbol READ_COND = Symbol.intern("clojure.core", "read-cond");
59static Symbol READ_COND_SPLICING = Symbol.intern("clojure.core", "read-cond-splicing");
60static Keyword UNKNOWN = Keyword.intern(null, "unknown");
61//static Symbol DEREF_BANG = Symbol.intern("clojure.core", "deref!");
62
63static IFn[] macros = new IFn[256];
64static IFn[] dispatchMacros = new IFn[256];
65//static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^:/]][^:/]*/)?[\\D&&[^:/]][^:/]*");
66static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?(/|[\\D&&[^/]][^/]*)");
67static Pattern arraySymbolPat = Pattern.compile("([\\D&&[^/:]].*)/([1-9])");
68//static Pattern varPat = Pattern.compile("([\\D&&[^:\\.]][^:\\.]*):([\\D&&[^:\\.]][^:\\.]*)");
69//static Pattern intPat = Pattern.compile("[-+]?[0-9]+\\.?");
70static Pattern intPat =
71 Pattern.compile(
72 "([-+]?)(?:(0)|([1-9][0-9]*)|0[xX]([0-9A-Fa-f]+)|0([0-7]+)|([1-9][0-9]?)[rR]([0-9A-Za-z]+)|0[0-9]+)(N)?");
73static Pattern ratioPat = Pattern.compile("([-+]?[0-9]+)/([0-9]+)");
74static Pattern floatPat = Pattern.compile("([-+]?[0-9]+(\\.[0-9]*)?([eE][-+]?[0-9]+)?)(M)?");
75static Pattern argPat = Pattern.compile("%(?:(&)|([1-9][0-9]*))?");
76//static Pattern accessorPat = Pattern.compile("\\.[a-zA-Z_]\\w*");
77//static Pattern instanceMemberPat = Pattern.compile("\\.([a-zA-Z_][\\w\\.]*)\\.([a-zA-Z_]\\w*)");
78//static Pattern staticMemberPat = Pattern.compile("([a-zA-Z_][\\w\\.]*)\\.([a-zA-Z_]\\w*)");
79//static Pattern classNamePat = Pattern.compile("([a-zA-Z_][\\w\\.]*)\\.");
80
81//symbol->gensymbol
82static Var GENSYM_ENV = Var.create(null).setDynamic();
83//sorted-map num->gensymbol
84static Var ARG_ENV = Var.create(null).setDynamic();
85static IFn ctorReader = new CtorReader();
86
87// Dynamic var set to true in a read-cond context
88static Var READ_COND_ENV = Var.create(null).setDynamic();
89
90static
91 {
92 macros['"'] = new StringReader();
93 macros[';'] = new CommentReader();
94 macros['\''] = new WrappingReader(QUOTE);
95 macros['@'] = new WrappingReader(DEREF);//new DerefReader();
96 macros['^'] = new MetaReader();
97 macros['`'] = new SyntaxQuoteReader();
98 macros['~'] = new UnquoteReader();

Callers

nothing calls this directly

Calls 6

internMethod · 0.95
internMethod · 0.95
createMethod · 0.95
createMethod · 0.95
setDynamicMethod · 0.80
compileMethod · 0.45

Tested by

no test coverage detected