// Compiled by ClojureScript 1.9.229 {} goog.provide('cljs.reader'); goog.require('cljs.core'); goog.require('goog.string'); goog.require('goog.string.StringBuffer'); /** * @interface */ cljs.reader.PushbackReader = function(){}; /** * Returns the next char from the Reader, * nil if the end of stream has been reached */ cljs.reader.read_char = (function cljs$reader$read_char(reader){ if((!((reader == null))) && (!((reader.cljs$reader$PushbackReader$read_char$arity$1 == null)))){ return reader.cljs$reader$PushbackReader$read_char$arity$1(reader); } else { var x__25793__auto__ = (((reader == null))?null:reader); var m__25794__auto__ = (cljs.reader.read_char[goog.typeOf(x__25793__auto__)]); if(!((m__25794__auto__ == null))){ return m__25794__auto__.call(null,reader); } else { var m__25794__auto____$1 = (cljs.reader.read_char["_"]); if(!((m__25794__auto____$1 == null))){ return m__25794__auto____$1.call(null,reader); } else { throw cljs.core.missing_protocol.call(null,"PushbackReader.read-char",reader); } } } }); /** * Push back a single character on to the stream */ cljs.reader.unread = (function cljs$reader$unread(reader,ch){ if((!((reader == null))) && (!((reader.cljs$reader$PushbackReader$unread$arity$2 == null)))){ return reader.cljs$reader$PushbackReader$unread$arity$2(reader,ch); } else { var x__25793__auto__ = (((reader == null))?null:reader); var m__25794__auto__ = (cljs.reader.unread[goog.typeOf(x__25793__auto__)]); if(!((m__25794__auto__ == null))){ return m__25794__auto__.call(null,reader,ch); } else { var m__25794__auto____$1 = (cljs.reader.unread["_"]); if(!((m__25794__auto____$1 == null))){ return m__25794__auto____$1.call(null,reader,ch); } else { throw cljs.core.missing_protocol.call(null,"PushbackReader.unread",reader); } } } }); /** * @constructor * @implements {cljs.reader.PushbackReader} */ cljs.reader.StringPushbackReader = (function (s,buffer,idx){ this.s = s; this.buffer = buffer; this.idx = idx; }) cljs.reader.StringPushbackReader.prototype.cljs$reader$PushbackReader$ = true; cljs.reader.StringPushbackReader.prototype.cljs$reader$PushbackReader$read_char$arity$1 = (function (reader){ var self__ = this; var reader__$1 = this; if((self__.buffer.length === (0))){ self__.idx = (self__.idx + (1)); return (self__.s[self__.idx]); } else { return self__.buffer.pop(); } }); cljs.reader.StringPushbackReader.prototype.cljs$reader$PushbackReader$unread$arity$2 = (function (reader,ch){ var self__ = this; var reader__$1 = this; return self__.buffer.push(ch); }); cljs.reader.StringPushbackReader.getBasis = (function (){ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"s","s",-948495851,null),new cljs.core.Symbol(null,"buffer","buffer",-2037140571,null),cljs.core.with_meta(new cljs.core.Symbol(null,"idx","idx",-1600747296,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"mutable","mutable",875778266),true], null))], null); }); cljs.reader.StringPushbackReader.cljs$lang$type = true; cljs.reader.StringPushbackReader.cljs$lang$ctorStr = "cljs.reader/StringPushbackReader"; cljs.reader.StringPushbackReader.cljs$lang$ctorPrWriter = (function (this__25736__auto__,writer__25737__auto__,opt__25738__auto__){ return cljs.core._write.call(null,writer__25737__auto__,"cljs.reader/StringPushbackReader"); }); cljs.reader.__GT_StringPushbackReader = (function cljs$reader$__GT_StringPushbackReader(s,buffer,idx){ return (new cljs.reader.StringPushbackReader(s,buffer,idx)); }); cljs.reader.push_back_reader = (function cljs$reader$push_back_reader(s){ return (new cljs.reader.StringPushbackReader(s,[],(-1))); }); /** * Checks whether a given character is whitespace */ cljs.reader.whitespace_QMARK_ = (function cljs$reader$whitespace_QMARK_(ch){ var or__25130__auto__ = goog.string.isBreakingWhitespace(ch); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return ("," === ch); } }); /** * Checks whether a given character is numeric */ cljs.reader.numeric_QMARK_ = (function cljs$reader$numeric_QMARK_(ch){ return goog.string.isNumeric(ch); }); /** * Checks whether the character begins a comment. */ cljs.reader.comment_prefix_QMARK_ = (function cljs$reader$comment_prefix_QMARK_(ch){ return (";" === ch); }); /** * Checks whether the reader is at the start of a number literal */ cljs.reader.number_literal_QMARK_ = (function cljs$reader$number_literal_QMARK_(reader,initch){ return (cljs.reader.numeric_QMARK_.call(null,initch)) || (((("+" === initch)) || (("-" === initch))) && (cljs.reader.numeric_QMARK_.call(null,(function (){var next_ch = cljs.reader.read_char.call(null,reader); cljs.reader.unread.call(null,reader,next_ch); return next_ch; })()))); }); cljs.reader.reader_error = (function cljs$reader$reader_error(var_args){ var args__26212__auto__ = []; var len__26205__auto___35130 = arguments.length; var i__26206__auto___35131 = (0); while(true){ if((i__26206__auto___35131 < len__26205__auto___35130)){ args__26212__auto__.push((arguments[i__26206__auto___35131])); var G__35132 = (i__26206__auto___35131 + (1)); i__26206__auto___35131 = G__35132; continue; } else { } break; } var argseq__26213__auto__ = ((((1) < args__26212__auto__.length))?(new cljs.core.IndexedSeq(args__26212__auto__.slice((1)),(0),null)):null); return cljs.reader.reader_error.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__26213__auto__); }); cljs.reader.reader_error.cljs$core$IFn$_invoke$arity$variadic = (function (rdr,msg){ throw (new Error(cljs.core.apply.call(null,cljs.core.str,msg))); }); cljs.reader.reader_error.cljs$lang$maxFixedArity = (1); cljs.reader.reader_error.cljs$lang$applyTo = (function (seq35128){ var G__35129 = cljs.core.first.call(null,seq35128); var seq35128__$1 = cljs.core.next.call(null,seq35128); return cljs.reader.reader_error.cljs$core$IFn$_invoke$arity$variadic(G__35129,seq35128__$1); }); cljs.reader.macro_terminating_QMARK_ = (function cljs$reader$macro_terminating_QMARK_(ch){ var and__25118__auto__ = !((ch === "#")); if(and__25118__auto__){ var and__25118__auto____$1 = !((ch === "'")); if(and__25118__auto____$1){ var and__25118__auto____$2 = !((ch === ":")); if(and__25118__auto____$2){ return cljs.reader.macros.call(null,ch); } else { return and__25118__auto____$2; } } else { return and__25118__auto____$1; } } else { return and__25118__auto__; } }); cljs.reader.read_token = (function cljs$reader$read_token(rdr,initch){ var sb = (new goog.string.StringBuffer(initch)); var ch = cljs.reader.read_char.call(null,rdr); while(true){ if(((ch == null)) || (cljs.reader.whitespace_QMARK_.call(null,ch)) || (cljs.reader.macro_terminating_QMARK_.call(null,ch))){ cljs.reader.unread.call(null,rdr,ch); return sb.toString(); } else { var G__35133 = (function (){ sb.append(ch); return sb; })() ; var G__35134 = cljs.reader.read_char.call(null,rdr); sb = G__35133; ch = G__35134; continue; } break; } }); /** * Advances the reader to the end of a line. Returns the reader */ cljs.reader.skip_line = (function cljs$reader$skip_line(reader,_){ while(true){ var ch = cljs.reader.read_char.call(null,reader); if(((ch === "\n")) || ((ch === "\r")) || ((ch == null))){ return reader; } else { continue; } break; } }); cljs.reader.int_pattern = cljs.core.re_pattern.call(null,"^([-+]?)(?:(0)|([1-9][0-9]*)|0[xX]([0-9A-Fa-f]+)|0([0-7]+)|([1-9][0-9]?)[rR]([0-9A-Za-z]+))(N)?$"); cljs.reader.ratio_pattern = cljs.core.re_pattern.call(null,"^([-+]?[0-9]+)/([0-9]+)$"); cljs.reader.float_pattern = cljs.core.re_pattern.call(null,"^([-+]?[0-9]+(\\.[0-9]*)?([eE][-+]?[0-9]+)?)(M)?$"); cljs.reader.symbol_pattern = cljs.core.re_pattern.call(null,"^[:]?([^0-9/].*/)?([^0-9/][^/]*)$"); cljs.reader.re_matches_STAR_ = (function cljs$reader$re_matches_STAR_(re,s){ var matches = re.exec(s); if((!((matches == null))) && (((matches[(0)]) === s))){ if((matches.length === (1))){ return (matches[(0)]); } else { return matches; } } else { return null; } }); cljs.reader.match_int = (function cljs$reader$match_int(s){ var groups = cljs.reader.re_matches_STAR_.call(null,cljs.reader.int_pattern,s); var ie8_fix = (groups[(2)]); var zero = ((cljs.core._EQ_.call(null,ie8_fix,""))?null:ie8_fix); if(!((zero == null))){ return (0); } else { var a = (cljs.core.truth_((groups[(3)]))?[(groups[(3)]),(10)]:(cljs.core.truth_((groups[(4)]))?[(groups[(4)]),(16)]:(cljs.core.truth_((groups[(5)]))?[(groups[(5)]),(8)]:(cljs.core.truth_((groups[(6)]))?[(groups[(7)]),parseInt((groups[(6)]),(10))]:[null,null] )))); var n = (a[(0)]); var radix = (a[(1)]); if((n == null)){ return null; } else { var parsed = parseInt(n,radix); if(("-" === (groups[(1)]))){ return (- parsed); } else { return parsed; } } } }); cljs.reader.match_ratio = (function cljs$reader$match_ratio(s){ var groups = cljs.reader.re_matches_STAR_.call(null,cljs.reader.ratio_pattern,s); var numinator = (groups[(1)]); var denominator = (groups[(2)]); return (parseInt(numinator,(10)) / parseInt(denominator,(10))); }); cljs.reader.match_float = (function cljs$reader$match_float(s){ return parseFloat(s); }); cljs.reader.match_number = (function cljs$reader$match_number(s){ if(cljs.core.truth_(cljs.reader.re_matches_STAR_.call(null,cljs.reader.int_pattern,s))){ return cljs.reader.match_int.call(null,s); } else { if(cljs.core.truth_(cljs.reader.re_matches_STAR_.call(null,cljs.reader.ratio_pattern,s))){ return cljs.reader.match_ratio.call(null,s); } else { if(cljs.core.truth_(cljs.reader.re_matches_STAR_.call(null,cljs.reader.float_pattern,s))){ return cljs.reader.match_float.call(null,s); } else { return null; } } } }); cljs.reader.escape_char_map = (function cljs$reader$escape_char_map(c){ if((c === "t")){ return "\t"; } else { if((c === "r")){ return "\r"; } else { if((c === "n")){ return "\n"; } else { if((c === "\\")){ return "\\"; } else { if((c === "\"")){ return "\""; } else { if((c === "b")){ return "\b"; } else { if((c === "f")){ return "\f"; } else { return null; } } } } } } } }); cljs.reader.read_2_chars = (function cljs$reader$read_2_chars(reader){ return (new goog.string.StringBuffer(cljs.reader.read_char.call(null,reader),cljs.reader.read_char.call(null,reader))).toString(); }); cljs.reader.read_4_chars = (function cljs$reader$read_4_chars(reader){ return (new goog.string.StringBuffer(cljs.reader.read_char.call(null,reader),cljs.reader.read_char.call(null,reader),cljs.reader.read_char.call(null,reader),cljs.reader.read_char.call(null,reader))).toString(); }); cljs.reader.unicode_2_pattern = cljs.core.re_pattern.call(null,"^[0-9A-Fa-f]{2}$"); cljs.reader.unicode_4_pattern = cljs.core.re_pattern.call(null,"^[0-9A-Fa-f]{4}$"); cljs.reader.validate_unicode_escape = (function cljs$reader$validate_unicode_escape(unicode_pattern,reader,escape_char,unicode_str){ if(cljs.core.truth_(cljs.core.re_matches.call(null,unicode_pattern,unicode_str))){ return unicode_str; } else { return cljs.reader.reader_error.call(null,reader,"Unexpected unicode escape \\",escape_char,unicode_str); } }); cljs.reader.make_unicode_char = (function cljs$reader$make_unicode_char(code_str){ var code = parseInt(code_str,(16)); return String.fromCharCode(code); }); cljs.reader.escape_char = (function cljs$reader$escape_char(buffer,reader){ var ch = cljs.reader.read_char.call(null,reader); var mapresult = cljs.reader.escape_char_map.call(null,ch); if(cljs.core.truth_(mapresult)){ return mapresult; } else { if((ch === "x")){ return cljs.reader.make_unicode_char.call(null,cljs.reader.validate_unicode_escape.call(null,cljs.reader.unicode_2_pattern,reader,ch,cljs.reader.read_2_chars.call(null,reader))); } else { if((ch === "u")){ return cljs.reader.make_unicode_char.call(null,cljs.reader.validate_unicode_escape.call(null,cljs.reader.unicode_4_pattern,reader,ch,cljs.reader.read_4_chars.call(null,reader))); } else { if(cljs.reader.numeric_QMARK_.call(null,ch)){ return String.fromCharCode(ch); } else { return cljs.reader.reader_error.call(null,reader,"Unexpected unicode escape \\",ch); } } } } }); /** * Read until first character that doesn't match pred, returning * char. */ cljs.reader.read_past = (function cljs$reader$read_past(pred,rdr){ var ch = cljs.reader.read_char.call(null,rdr); while(true){ if(cljs.core.truth_(pred.call(null,ch))){ var G__35135 = cljs.reader.read_char.call(null,rdr); ch = G__35135; continue; } else { return ch; } break; } }); cljs.reader.read_delimited_list = (function cljs$reader$read_delimited_list(delim,rdr,recursive_QMARK_){ var a = []; while(true){ var ch = cljs.reader.read_past.call(null,cljs.reader.whitespace_QMARK_,rdr); if(cljs.core.truth_(ch)){ } else { cljs.reader.reader_error.call(null,rdr,"EOF while reading"); } if((delim === ch)){ return a; } else { var temp__4655__auto__ = cljs.reader.macros.call(null,ch); if(cljs.core.truth_(temp__4655__auto__)){ var macrofn = temp__4655__auto__; var mret = macrofn.call(null,rdr,ch); var G__35136 = (((mret === rdr))?a:(function (){ a.push(mret); return a; })() ); a = G__35136; continue; } else { cljs.reader.unread.call(null,rdr,ch); var o = cljs.reader.read.call(null,rdr,true,null,recursive_QMARK_); var G__35137 = (((o === rdr))?a:(function (){ a.push(o); return a; })() ); a = G__35137; continue; } } break; } }); cljs.reader.not_implemented = (function cljs$reader$not_implemented(rdr,ch){ return cljs.reader.reader_error.call(null,rdr,"Reader for ",ch," not implemented yet"); }); cljs.reader.read_dispatch = (function cljs$reader$read_dispatch(rdr,_){ var ch = cljs.reader.read_char.call(null,rdr); var dm = cljs.reader.dispatch_macros.call(null,ch); if(cljs.core.truth_(dm)){ return dm.call(null,rdr,_); } else { var temp__4655__auto__ = cljs.reader.maybe_read_tagged_type.call(null,rdr,ch); if(cljs.core.truth_(temp__4655__auto__)){ var obj = temp__4655__auto__; return obj; } else { return cljs.reader.reader_error.call(null,rdr,"No dispatch macro for ",ch); } } }); cljs.reader.read_unmatched_delimiter = (function cljs$reader$read_unmatched_delimiter(rdr,ch){ return cljs.reader.reader_error.call(null,rdr,"Unmatched delimiter ",ch); }); cljs.reader.read_list = (function cljs$reader$read_list(rdr,_){ var arr = cljs.reader.read_delimited_list.call(null,")",rdr,true); var i = arr.length; var r = cljs.core.List.EMPTY; while(true){ if((i > (0))){ var G__35138 = (i - (1)); var G__35139 = cljs.core._conj.call(null,r,(arr[(i - (1))])); i = G__35138; r = G__35139; continue; } else { return r; } break; } }); cljs.reader.read_comment = cljs.reader.skip_line; cljs.reader.read_vector = (function cljs$reader$read_vector(rdr,_){ return cljs.core.vec.call(null,cljs.reader.read_delimited_list.call(null,"]",rdr,true)); }); cljs.reader.read_map = (function cljs$reader$read_map(rdr,_){ var l = cljs.reader.read_delimited_list.call(null,"}",rdr,true); var c = l.length; if(cljs.core.odd_QMARK_.call(null,c)){ cljs.reader.reader_error.call(null,rdr,"Map literal must contain an even number of forms"); } else { } if((c <= ((2) * cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD))){ return cljs.core.PersistentArrayMap.fromArray(l,true,true); } else { return cljs.core.PersistentHashMap.fromArray(l,true); } }); cljs.reader.read_number = (function cljs$reader$read_number(reader,initch){ var buffer = (new goog.string.StringBuffer(initch)); var ch = cljs.reader.read_char.call(null,reader); while(true){ if(cljs.core.truth_((function (){var or__25130__auto__ = (ch == null); if(or__25130__auto__){ return or__25130__auto__; } else { var or__25130__auto____$1 = cljs.reader.whitespace_QMARK_.call(null,ch); if(or__25130__auto____$1){ return or__25130__auto____$1; } else { return cljs.reader.macros.call(null,ch); } } })())){ cljs.reader.unread.call(null,reader,ch); var s = buffer.toString(); var or__25130__auto__ = cljs.reader.match_number.call(null,s); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return cljs.reader.reader_error.call(null,reader,"Invalid number format [",s,"]"); } } else { var G__35140 = (function (){ buffer.append(ch); return buffer; })() ; var G__35141 = cljs.reader.read_char.call(null,reader); buffer = G__35140; ch = G__35141; continue; } break; } }); cljs.reader.read_string_STAR_ = (function cljs$reader$read_string_STAR_(reader,_){ var buffer = (new goog.string.StringBuffer()); var ch = cljs.reader.read_char.call(null,reader); while(true){ if((ch == null)){ return cljs.reader.reader_error.call(null,reader,"EOF while reading"); } else { if(("\\" === ch)){ var G__35142 = (function (){ buffer.append(cljs.reader.escape_char.call(null,buffer,reader)); return buffer; })() ; var G__35143 = cljs.reader.read_char.call(null,reader); buffer = G__35142; ch = G__35143; continue; } else { if(("\"" === ch)){ return buffer.toString(); } else { var G__35144 = (function (){ buffer.append(ch); return buffer; })() ; var G__35145 = cljs.reader.read_char.call(null,reader); buffer = G__35144; ch = G__35145; continue; } } } break; } }); cljs.reader.read_raw_string_STAR_ = (function cljs$reader$read_raw_string_STAR_(reader,_){ var buffer = (new goog.string.StringBuffer()); var ch = cljs.reader.read_char.call(null,reader); while(true){ if((ch == null)){ return cljs.reader.reader_error.call(null,reader,"EOF while reading"); } else { if(("\\" === ch)){ buffer.append(ch); var nch = cljs.reader.read_char.call(null,reader); if((nch == null)){ return cljs.reader.reader_error.call(null,reader,"EOF while reading"); } else { var G__35150 = (function (){var G__35148 = buffer; G__35148.append(nch); return G__35148; })(); var G__35151 = cljs.reader.read_char.call(null,reader); buffer = G__35150; ch = G__35151; continue; } } else { if(("\"" === ch)){ return buffer.toString(); } else { var G__35152 = (function (){var G__35149 = buffer; G__35149.append(ch); return G__35149; })(); var G__35153 = cljs.reader.read_char.call(null,reader); buffer = G__35152; ch = G__35153; continue; } } } break; } }); cljs.reader.special_symbols = (function cljs$reader$special_symbols(t,not_found){ if((t === "nil")){ return null; } else { if((t === "true")){ return true; } else { if((t === "false")){ return false; } else { if((t === "/")){ return new cljs.core.Symbol(null,"/","/",-1371932971,null); } else { return not_found; } } } } }); cljs.reader.read_symbol = (function cljs$reader$read_symbol(reader,initch){ var token = cljs.reader.read_token.call(null,reader,initch); if(cljs.core.truth_((function (){var and__25118__auto__ = goog.string.contains(token,"/"); if(cljs.core.truth_(and__25118__auto__)){ return !((token.length === (1))); } else { return and__25118__auto__; } })())){ return cljs.core.symbol.call(null,cljs.core.subs.call(null,token,(0),token.indexOf("/")),cljs.core.subs.call(null,token,(token.indexOf("/") + (1)),token.length)); } else { return cljs.reader.special_symbols.call(null,token,cljs.core.symbol.call(null,token)); } }); cljs.reader.read_literal = (function cljs$reader$read_literal(rdr,ch){ var token = cljs.reader.read_token.call(null,rdr,ch); var chars = cljs.core.subs.call(null,token,(1)); if((chars.length === (1))){ return chars; } else { if((chars === "tab")){ return "\t"; } else { if((chars === "return")){ return "\r"; } else { if((chars === "newline")){ return "\n"; } else { if((chars === "space")){ return " "; } else { if((chars === "backspace")){ return "\b"; } else { if((chars === "formfeed")){ return "\f"; } else { if((chars.charAt((0)) === "u")){ return cljs.reader.make_unicode_char.call(null,cljs.core.subs.call(null,chars,(1))); } else { if((chars.charAt((0)) === "o")){ return cljs.reader.not_implemented.call(null,rdr,token); } else { return cljs.reader.reader_error.call(null,rdr,"Unknown character literal: ",token); } } } } } } } } } }); cljs.reader.read_keyword = (function cljs$reader$read_keyword(reader,initch){ var token = cljs.reader.read_token.call(null,reader,cljs.reader.read_char.call(null,reader)); var a = cljs.reader.re_matches_STAR_.call(null,cljs.reader.symbol_pattern,token); var token__$1 = (a[(0)]); var ns = (a[(1)]); var name = (a[(2)]); if(((!((void 0 === ns))) && ((ns.substring((ns.length - (2)),ns.length) === ":/"))) || (((name[(name.length - (1))]) === ":")) || (!((token__$1.indexOf("::",(1)) === (-1))))){ return cljs.reader.reader_error.call(null,reader,"Invalid token: ",token__$1); } else { if((!((ns == null))) && ((ns.length > (0)))){ return cljs.core.keyword.call(null,ns.substring((0),ns.indexOf("/")),name); } else { return cljs.core.keyword.call(null,token__$1); } } }); cljs.reader.desugar_meta = (function cljs$reader$desugar_meta(f){ if((f instanceof cljs.core.Symbol)){ return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"tag","tag",-1290361223),f], null); } else { if(typeof f === 'string'){ return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"tag","tag",-1290361223),f], null); } else { if((f instanceof cljs.core.Keyword)){ return cljs.core.PersistentArrayMap.fromArray([f,true], true, false); } else { return f; } } } }); cljs.reader.wrapping_reader = (function cljs$reader$wrapping_reader(sym){ return (function (rdr,_){ var x__25964__auto__ = sym; return cljs.core._conj.call(null,(function (){var x__25964__auto____$1 = cljs.reader.read.call(null,rdr,true,null,true); return cljs.core._conj.call(null,cljs.core.List.EMPTY,x__25964__auto____$1); })(),x__25964__auto__); }); }); cljs.reader.throwing_reader = (function cljs$reader$throwing_reader(msg){ return (function (rdr,_){ return cljs.reader.reader_error.call(null,rdr,msg); }); }); cljs.reader.read_meta = (function cljs$reader$read_meta(rdr,_){ var m = cljs.reader.desugar_meta.call(null,cljs.reader.read.call(null,rdr,true,null,true)); if(cljs.core.map_QMARK_.call(null,m)){ } else { cljs.reader.reader_error.call(null,rdr,"Metadata must be Symbol,Keyword,String or Map"); } var o = cljs.reader.read.call(null,rdr,true,null,true); if(((!((o == null)))?((((o.cljs$lang$protocol_mask$partition0$ & (262144))) || (o.cljs$core$IWithMeta$))?true:(((!o.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IWithMeta,o):false)):cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IWithMeta,o))){ return cljs.core.with_meta.call(null,o,cljs.core.merge.call(null,cljs.core.meta.call(null,o),m)); } else { return cljs.reader.reader_error.call(null,rdr,"Metadata can only be applied to IWithMetas"); } }); cljs.reader.read_set = (function cljs$reader$read_set(rdr,_){ return cljs.core.PersistentHashSet.fromArray(cljs.reader.read_delimited_list.call(null,"}",rdr,true),true); }); cljs.reader.read_regex = (function cljs$reader$read_regex(rdr,ch){ return cljs.core.re_pattern.call(null,cljs.reader.read_raw_string_STAR_.call(null,rdr,ch)); }); cljs.reader.read_discard = (function cljs$reader$read_discard(rdr,_){ cljs.reader.read.call(null,rdr,true,null,true); return rdr; }); cljs.reader.macros = (function cljs$reader$macros(c){ if((c === "\"")){ return cljs.reader.read_string_STAR_; } else { if((c === ":")){ return cljs.reader.read_keyword; } else { if((c === ";")){ return cljs.reader.read_comment; } else { if((c === "'")){ return cljs.reader.wrapping_reader.call(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null)); } else { if((c === "@")){ return cljs.reader.wrapping_reader.call(null,new cljs.core.Symbol(null,"deref","deref",1494944732,null)); } else { if((c === "^")){ return cljs.reader.read_meta; } else { if((c === "`")){ return cljs.reader.not_implemented; } else { if((c === "~")){ return cljs.reader.not_implemented; } else { if((c === "(")){ return cljs.reader.read_list; } else { if((c === ")")){ return cljs.reader.read_unmatched_delimiter; } else { if((c === "[")){ return cljs.reader.read_vector; } else { if((c === "]")){ return cljs.reader.read_unmatched_delimiter; } else { if((c === "{")){ return cljs.reader.read_map; } else { if((c === "}")){ return cljs.reader.read_unmatched_delimiter; } else { if((c === "\\")){ return cljs.reader.read_literal; } else { if((c === "#")){ return cljs.reader.read_dispatch; } else { return null; } } } } } } } } } } } } } } } } }); cljs.reader.dispatch_macros = (function cljs$reader$dispatch_macros(s){ if((s === "{")){ return cljs.reader.read_set; } else { if((s === "<")){ return cljs.reader.throwing_reader.call(null,"Unreadable form"); } else { if((s === "\"")){ return cljs.reader.read_regex; } else { if((s === "!")){ return cljs.reader.read_comment; } else { if((s === "_")){ return cljs.reader.read_discard; } else { return null; } } } } } }); /** * Reads the first object from a PushbackReader. Returns the object read. * If EOF, throws if eof-is-error is true. Otherwise returns sentinel. * * Only supports edn (similar to clojure.edn/read) */ cljs.reader.read = (function cljs$reader$read(reader,eof_is_error,sentinel,is_recursive){ while(true){ var ch = cljs.reader.read_char.call(null,reader); if((ch == null)){ if(cljs.core.truth_(eof_is_error)){ return cljs.reader.reader_error.call(null,reader,"EOF while reading"); } else { return sentinel; } } else { if(cljs.reader.whitespace_QMARK_.call(null,ch)){ var G__35156 = reader; var G__35157 = eof_is_error; var G__35158 = sentinel; var G__35159 = is_recursive; reader = G__35156; eof_is_error = G__35157; sentinel = G__35158; is_recursive = G__35159; continue; } else { if(cljs.reader.comment_prefix_QMARK_.call(null,ch)){ var G__35160 = cljs.reader.read_comment.call(null,reader,ch); var G__35161 = eof_is_error; var G__35162 = sentinel; var G__35163 = is_recursive; reader = G__35160; eof_is_error = G__35161; sentinel = G__35162; is_recursive = G__35163; continue; } else { var f = cljs.reader.macros.call(null,ch); var res = (cljs.core.truth_(f)?f.call(null,reader,ch):((cljs.reader.number_literal_QMARK_.call(null,reader,ch))?cljs.reader.read_number.call(null,reader,ch):cljs.reader.read_symbol.call(null,reader,ch) )); if((res === reader)){ var G__35164 = reader; var G__35165 = eof_is_error; var G__35166 = sentinel; var G__35167 = is_recursive; reader = G__35164; eof_is_error = G__35165; sentinel = G__35166; is_recursive = G__35167; continue; } else { return res; } } } } break; } }); /** * Reads one object from the string s */ cljs.reader.read_string = (function cljs$reader$read_string(s){ if(typeof s === 'string'){ } else { throw (new Error("Cannot read from non-string object.")); } var r = cljs.reader.push_back_reader.call(null,s); return cljs.reader.read.call(null,r,false,null,false); }); cljs.reader.zero_fill_right_and_truncate = (function cljs$reader$zero_fill_right_and_truncate(s,width){ if(cljs.core._EQ_.call(null,width,cljs.core.count.call(null,s))){ return s; } else { if((width < cljs.core.count.call(null,s))){ return cljs.core.subs.call(null,s,(0),width); } else { var b = (new goog.string.StringBuffer(s)); while(true){ if((b.getLength() < width)){ var G__35168 = b.append("0"); b = G__35168; continue; } else { return b.toString(); } break; } } } }); cljs.reader.divisible_QMARK_ = (function cljs$reader$divisible_QMARK_(num,div){ return (cljs.core.mod.call(null,num,div) === (0)); }); cljs.reader.indivisible_QMARK_ = (function cljs$reader$indivisible_QMARK_(num,div){ return cljs.core.not.call(null,cljs.reader.divisible_QMARK_.call(null,num,div)); }); cljs.reader.leap_year_QMARK_ = (function cljs$reader$leap_year_QMARK_(year){ var and__25118__auto__ = cljs.reader.divisible_QMARK_.call(null,year,(4)); if(cljs.core.truth_(and__25118__auto__)){ var or__25130__auto__ = cljs.reader.indivisible_QMARK_.call(null,year,(100)); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return cljs.reader.divisible_QMARK_.call(null,year,(400)); } } else { return and__25118__auto__; } }); cljs.reader.days_in_month = (function (){var dim_norm = new cljs.core.PersistentVector(null, 13, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,(31),(28),(31),(30),(31),(30),(31),(31),(30),(31),(30),(31)], null); var dim_leap = new cljs.core.PersistentVector(null, 13, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,(31),(29),(31),(30),(31),(30),(31),(31),(30),(31),(30),(31)], null); return ((function (dim_norm,dim_leap){ return (function (month,leap_year_QMARK_){ return cljs.core.get.call(null,(cljs.core.truth_(leap_year_QMARK_)?dim_leap:dim_norm),month); }); ;})(dim_norm,dim_leap)) })(); cljs.reader.timestamp_regex = /(\d\d\d\d)(?:-(\d\d)(?:-(\d\d)(?:[T](\d\d)(?::(\d\d)(?::(\d\d)(?:[.](\d+))?)?)?)?)?)?(?:[Z]|([-+])(\d\d):(\d\d))?/; cljs.reader.parse_int = (function cljs$reader$parse_int(s){ var n = parseInt(s,(10)); if(cljs.core.not.call(null,isNaN(n))){ return n; } else { return null; } }); cljs.reader.check = (function cljs$reader$check(low,n,high,msg){ if(((low <= n)) && ((n <= high))){ } else { cljs.reader.reader_error.call(null,null,[cljs.core.str(msg),cljs.core.str(" Failed: "),cljs.core.str(low),cljs.core.str("<="),cljs.core.str(n),cljs.core.str("<="),cljs.core.str(high)].join('')); } return n; }); cljs.reader.parse_and_validate_timestamp = (function cljs$reader$parse_and_validate_timestamp(s){ var vec__35172 = cljs.core.re_matches.call(null,cljs.reader.timestamp_regex,s); var _ = cljs.core.nth.call(null,vec__35172,(0),null); var years = cljs.core.nth.call(null,vec__35172,(1),null); var months = cljs.core.nth.call(null,vec__35172,(2),null); var days = cljs.core.nth.call(null,vec__35172,(3),null); var hours = cljs.core.nth.call(null,vec__35172,(4),null); var minutes = cljs.core.nth.call(null,vec__35172,(5),null); var seconds = cljs.core.nth.call(null,vec__35172,(6),null); var fraction = cljs.core.nth.call(null,vec__35172,(7),null); var offset_sign = cljs.core.nth.call(null,vec__35172,(8),null); var offset_hours = cljs.core.nth.call(null,vec__35172,(9),null); var offset_minutes = cljs.core.nth.call(null,vec__35172,(10),null); var v = vec__35172; if(cljs.core.not.call(null,v)){ return cljs.reader.reader_error.call(null,null,[cljs.core.str("Unrecognized date/time syntax: "),cljs.core.str(s)].join('')); } else { var years__$1 = cljs.reader.parse_int.call(null,years); var months__$1 = (function (){var or__25130__auto__ = cljs.reader.parse_int.call(null,months); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return (1); } })(); var days__$1 = (function (){var or__25130__auto__ = cljs.reader.parse_int.call(null,days); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return (1); } })(); var hours__$1 = (function (){var or__25130__auto__ = cljs.reader.parse_int.call(null,hours); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return (0); } })(); var minutes__$1 = (function (){var or__25130__auto__ = cljs.reader.parse_int.call(null,minutes); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return (0); } })(); var seconds__$1 = (function (){var or__25130__auto__ = cljs.reader.parse_int.call(null,seconds); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return (0); } })(); var fraction__$1 = (function (){var or__25130__auto__ = cljs.reader.parse_int.call(null,cljs.reader.zero_fill_right_and_truncate.call(null,fraction,(3))); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return (0); } })(); var offset_sign__$1 = ((cljs.core._EQ_.call(null,offset_sign,"-"))?(-1):(1)); var offset_hours__$1 = (function (){var or__25130__auto__ = cljs.reader.parse_int.call(null,offset_hours); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return (0); } })(); var offset_minutes__$1 = (function (){var or__25130__auto__ = cljs.reader.parse_int.call(null,offset_minutes); if(cljs.core.truth_(or__25130__auto__)){ return or__25130__auto__; } else { return (0); } })(); var offset = (offset_sign__$1 * ((offset_hours__$1 * (60)) + offset_minutes__$1)); return new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [years__$1,cljs.reader.check.call(null,(1),months__$1,(12),"timestamp month field must be in range 1..12"),cljs.reader.check.call(null,(1),days__$1,cljs.reader.days_in_month.call(null,months__$1,cljs.reader.leap_year_QMARK_.call(null,years__$1)),"timestamp day field must be in range 1..last day in month"),cljs.reader.check.call(null,(0),hours__$1,(23),"timestamp hour field must be in range 0..23"),cljs.reader.check.call(null,(0),minutes__$1,(59),"timestamp minute field must be in range 0..59"),cljs.reader.check.call(null,(0),seconds__$1,((cljs.core._EQ_.call(null,minutes__$1,(59)))?(60):(59)),"timestamp second field must be in range 0..60"),cljs.reader.check.call(null,(0),fraction__$1,(999),"timestamp millisecond field must be in range 0..999"),offset], null); } }); cljs.reader.parse_timestamp = (function cljs$reader$parse_timestamp(ts){ var temp__4655__auto__ = cljs.reader.parse_and_validate_timestamp.call(null,ts); if(cljs.core.truth_(temp__4655__auto__)){ var vec__35178 = temp__4655__auto__; var years = cljs.core.nth.call(null,vec__35178,(0),null); var months = cljs.core.nth.call(null,vec__35178,(1),null); var days = cljs.core.nth.call(null,vec__35178,(2),null); var hours = cljs.core.nth.call(null,vec__35178,(3),null); var minutes = cljs.core.nth.call(null,vec__35178,(4),null); var seconds = cljs.core.nth.call(null,vec__35178,(5),null); var ms = cljs.core.nth.call(null,vec__35178,(6),null); var offset = cljs.core.nth.call(null,vec__35178,(7),null); return (new Date((Date.UTC(years,(months - (1)),days,hours,minutes,seconds,ms) - ((offset * (60)) * (1000))))); } else { return cljs.reader.reader_error.call(null,null,[cljs.core.str("Unrecognized date/time syntax: "),cljs.core.str(ts)].join('')); } }); cljs.reader.read_date = (function cljs$reader$read_date(s){ if(typeof s === 'string'){ return cljs.reader.parse_timestamp.call(null,s); } else { return cljs.reader.reader_error.call(null,null,"Instance literal expects a string for its timestamp."); } }); cljs.reader.read_queue = (function cljs$reader$read_queue(elems){ if(cljs.core.vector_QMARK_.call(null,elems)){ return cljs.core.into.call(null,cljs.core.PersistentQueue.EMPTY,elems); } else { return cljs.reader.reader_error.call(null,null,"Queue literal expects a vector for its elements."); } }); cljs.reader.read_js = (function cljs$reader$read_js(form){ if(cljs.core.vector_QMARK_.call(null,form)){ var arr = []; var seq__35197_35213 = cljs.core.seq.call(null,form); var chunk__35198_35214 = null; var count__35199_35215 = (0); var i__35200_35216 = (0); while(true){ if((i__35200_35216 < count__35199_35215)){ var x_35217 = cljs.core._nth.call(null,chunk__35198_35214,i__35200_35216); arr.push(x_35217); var G__35218 = seq__35197_35213; var G__35219 = chunk__35198_35214; var G__35220 = count__35199_35215; var G__35221 = (i__35200_35216 + (1)); seq__35197_35213 = G__35218; chunk__35198_35214 = G__35219; count__35199_35215 = G__35220; i__35200_35216 = G__35221; continue; } else { var temp__4657__auto___35222 = cljs.core.seq.call(null,seq__35197_35213); if(temp__4657__auto___35222){ var seq__35197_35223__$1 = temp__4657__auto___35222; if(cljs.core.chunked_seq_QMARK_.call(null,seq__35197_35223__$1)){ var c__25941__auto___35224 = cljs.core.chunk_first.call(null,seq__35197_35223__$1); var G__35225 = cljs.core.chunk_rest.call(null,seq__35197_35223__$1); var G__35226 = c__25941__auto___35224; var G__35227 = cljs.core.count.call(null,c__25941__auto___35224); var G__35228 = (0); seq__35197_35213 = G__35225; chunk__35198_35214 = G__35226; count__35199_35215 = G__35227; i__35200_35216 = G__35228; continue; } else { var x_35229 = cljs.core.first.call(null,seq__35197_35223__$1); arr.push(x_35229); var G__35230 = cljs.core.next.call(null,seq__35197_35223__$1); var G__35231 = null; var G__35232 = (0); var G__35233 = (0); seq__35197_35213 = G__35230; chunk__35198_35214 = G__35231; count__35199_35215 = G__35232; i__35200_35216 = G__35233; continue; } } else { } } break; } return arr; } else { if(cljs.core.map_QMARK_.call(null,form)){ var obj = {}; var seq__35203_35234 = cljs.core.seq.call(null,form); var chunk__35204_35235 = null; var count__35205_35236 = (0); var i__35206_35237 = (0); while(true){ if((i__35206_35237 < count__35205_35236)){ var vec__35207_35238 = cljs.core._nth.call(null,chunk__35204_35235,i__35206_35237); var k_35239 = cljs.core.nth.call(null,vec__35207_35238,(0),null); var v_35240 = cljs.core.nth.call(null,vec__35207_35238,(1),null); (obj[cljs.core.name.call(null,k_35239)] = v_35240); var G__35241 = seq__35203_35234; var G__35242 = chunk__35204_35235; var G__35243 = count__35205_35236; var G__35244 = (i__35206_35237 + (1)); seq__35203_35234 = G__35241; chunk__35204_35235 = G__35242; count__35205_35236 = G__35243; i__35206_35237 = G__35244; continue; } else { var temp__4657__auto___35245 = cljs.core.seq.call(null,seq__35203_35234); if(temp__4657__auto___35245){ var seq__35203_35246__$1 = temp__4657__auto___35245; if(cljs.core.chunked_seq_QMARK_.call(null,seq__35203_35246__$1)){ var c__25941__auto___35247 = cljs.core.chunk_first.call(null,seq__35203_35246__$1); var G__35248 = cljs.core.chunk_rest.call(null,seq__35203_35246__$1); var G__35249 = c__25941__auto___35247; var G__35250 = cljs.core.count.call(null,c__25941__auto___35247); var G__35251 = (0); seq__35203_35234 = G__35248; chunk__35204_35235 = G__35249; count__35205_35236 = G__35250; i__35206_35237 = G__35251; continue; } else { var vec__35210_35252 = cljs.core.first.call(null,seq__35203_35246__$1); var k_35253 = cljs.core.nth.call(null,vec__35210_35252,(0),null); var v_35254 = cljs.core.nth.call(null,vec__35210_35252,(1),null); (obj[cljs.core.name.call(null,k_35253)] = v_35254); var G__35255 = cljs.core.next.call(null,seq__35203_35246__$1); var G__35256 = null; var G__35257 = (0); var G__35258 = (0); seq__35203_35234 = G__35255; chunk__35204_35235 = G__35256; count__35205_35236 = G__35257; i__35206_35237 = G__35258; continue; } } else { } } break; } return obj; } else { return cljs.reader.reader_error.call(null,null,[cljs.core.str("JS literal expects a vector or map containing "),cljs.core.str("only string or unqualified keyword keys")].join('')); } } }); cljs.reader.read_uuid = (function cljs$reader$read_uuid(uuid){ if(typeof uuid === 'string'){ return cljs.core.uuid.call(null,uuid); } else { return cljs.reader.reader_error.call(null,null,"UUID literal expects a string as its representation."); } }); cljs.reader._STAR_tag_table_STAR_ = cljs.core.atom.call(null,new cljs.core.PersistentArrayMap(null, 4, ["inst",cljs.reader.read_date,"uuid",cljs.reader.read_uuid,"queue",cljs.reader.read_queue,"js",cljs.reader.read_js], null)); cljs.reader._STAR_default_data_reader_fn_STAR_ = cljs.core.atom.call(null,null); cljs.reader.maybe_read_tagged_type = (function cljs$reader$maybe_read_tagged_type(rdr,initch){ var tag = cljs.reader.read_symbol.call(null,rdr,initch); var pfn = cljs.core.get.call(null,cljs.core.deref.call(null,cljs.reader._STAR_tag_table_STAR_),[cljs.core.str(tag)].join('')); var dfn = cljs.core.deref.call(null,cljs.reader._STAR_default_data_reader_fn_STAR_); if(cljs.core.truth_(pfn)){ return pfn.call(null,cljs.reader.read.call(null,rdr,true,null,false)); } else { if(cljs.core.truth_(dfn)){ return dfn.call(null,tag,cljs.reader.read.call(null,rdr,true,null,false)); } else { return cljs.reader.reader_error.call(null,rdr,"Could not find tag parser for ",[cljs.core.str(tag)].join('')," in ",cljs.core.pr_str.call(null,cljs.core.keys.call(null,cljs.core.deref.call(null,cljs.reader._STAR_tag_table_STAR_)))); } } }); cljs.reader.register_tag_parser_BANG_ = (function cljs$reader$register_tag_parser_BANG_(tag,f){ var tag__$1 = [cljs.core.str(tag)].join(''); var old_parser = cljs.core.get.call(null,cljs.core.deref.call(null,cljs.reader._STAR_tag_table_STAR_),tag__$1); cljs.core.swap_BANG_.call(null,cljs.reader._STAR_tag_table_STAR_,cljs.core.assoc,tag__$1,f); return old_parser; }); cljs.reader.deregister_tag_parser_BANG_ = (function cljs$reader$deregister_tag_parser_BANG_(tag){ var tag__$1 = [cljs.core.str(tag)].join(''); var old_parser = cljs.core.get.call(null,cljs.core.deref.call(null,cljs.reader._STAR_tag_table_STAR_),tag__$1); cljs.core.swap_BANG_.call(null,cljs.reader._STAR_tag_table_STAR_,cljs.core.dissoc,tag__$1); return old_parser; }); cljs.reader.register_default_tag_parser_BANG_ = (function cljs$reader$register_default_tag_parser_BANG_(f){ var old_parser = cljs.core.deref.call(null,cljs.reader._STAR_default_data_reader_fn_STAR_); cljs.core.swap_BANG_.call(null,cljs.reader._STAR_default_data_reader_fn_STAR_,((function (old_parser){ return (function (_){ return f; });})(old_parser)) ); return old_parser; }); cljs.reader.deregister_default_tag_parser_BANG_ = (function cljs$reader$deregister_default_tag_parser_BANG_(){ var old_parser = cljs.core.deref.call(null,cljs.reader._STAR_default_data_reader_fn_STAR_); cljs.core.swap_BANG_.call(null,cljs.reader._STAR_default_data_reader_fn_STAR_,((function (old_parser){ return (function (_){ return null; });})(old_parser)) ); return old_parser; }); //# sourceMappingURL=reader.js.map?rel=1603199202369