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

Class EdnReader

src/jvm/clojure/lang/EdnReader.java:24–808  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22import java.util.regex.Pattern;
23
24public class EdnReader{
25
26static IFn[] macros = new IFn[256];
27static IFn[] dispatchMacros = new IFn[256];
28static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?(/|[\\D&&[^/]][^/]*)");
29static Pattern intPat =
30 Pattern.compile(
31 "([-+]?)(?:(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)?");
32static Pattern ratioPat = Pattern.compile("([-+]?[0-9]+)/([0-9]+)");
33static Pattern floatPat = Pattern.compile("([-+]?[0-9]+(\\.[0-9]*)?([eE][-+]?[0-9]+)?)(M)?");
34
35static IFn taggedReader = new TaggedReader();
36
37static
38 {
39 macros['"'] = new StringReader();
40 macros[';'] = new CommentReader();
41 macros['^'] = new MetaReader();
42 macros['('] = new ListReader();
43 macros[')'] = new UnmatchedDelimiterReader();
44 macros['['] = new VectorReader();
45 macros[']'] = new UnmatchedDelimiterReader();
46 macros['{'] = new MapReader();
47 macros['}'] = new UnmatchedDelimiterReader();
48 macros['\\'] = new CharacterReader();
49 macros['#'] = new DispatchReader();
50
51
52 dispatchMacros['#'] = new SymbolicValueReader();
53 dispatchMacros['^'] = new MetaReader();
54 //dispatchMacros['"'] = new RegexReader();
55 dispatchMacros['{'] = new SetReader();
56 dispatchMacros['<'] = new UnreadableReader();
57 dispatchMacros['_'] = new DiscardReader();
58 dispatchMacros[':'] = new NamespaceMapReader();
59 }
60
61static boolean nonConstituent(int ch){
62 return ch == '@' || ch == '`' || ch == '~';
63}
64
65static public Object readString(String s, IPersistentMap opts){
66 PushbackReader r = new PushbackReader(new java.io.StringReader(s));
67 return read(r, opts);
68}
69
70static boolean isWhitespace(int ch){
71 return Character.isWhitespace(ch) || ch == ',';
72}
73
74static void unread(PushbackReader r, int ch) {
75 if(ch != -1)
76 try
77 {
78 r.unread(ch);
79 }
80 catch(IOException e)
81 {

Callers

nothing calls this directly

Calls 2

internMethod · 0.95
compileMethod · 0.45

Tested by

no test coverage detected