| // Compiled by ClojureScript 1.10.597 {:target :nodejs} |
| goog.provide('cljs.tools.reader'); |
| goog.require('cljs.core'); |
| goog.require('cljs.tools.reader.reader_types'); |
| goog.require('cljs.tools.reader.impl.utils'); |
| goog.require('cljs.tools.reader.impl.commons'); |
| goog.require('cljs.tools.reader.impl.errors'); |
| goog.require('goog.array'); |
| goog.require('goog.string'); |
| goog.require('goog.string.StringBuffer'); |
| |
| |
| |
| |
| |
| |
| cljs.tools.reader.macro_terminating_QMARK_ = (function cljs$tools$reader$macro_terminating_QMARK_(ch){ |
| var G__784 = ch; |
| switch (G__784) { |
| case "\"": |
| case ";": |
| case "@": |
| case "^": |
| case "`": |
| case "~": |
| case "(": |
| case ")": |
| case "[": |
| case "]": |
| case "{": |
| case "}": |
| case "\\": |
| return true; |
| |
| break; |
| default: |
| return false; |
| |
| } |
| }); |
| cljs.tools.reader.sb = (new goog.string.StringBuffer()); |
| /** |
| * Read in a single logical token from the reader |
| */ |
| cljs.tools.reader.read_token = (function cljs$tools$reader$read_token(rdr,kind,initch){ |
| if((initch == null)){ |
| return cljs.tools.reader.impl.errors.throw_eof_at_start.call(null,rdr,kind); |
| } else { |
| cljs.tools.reader.sb.clear(); |
| |
| var ch = initch; |
| while(true){ |
| if(((cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,ch)) || (cljs.tools.reader.macro_terminating_QMARK_.call(null,ch)) || ((ch == null)))){ |
| if((ch == null)){ |
| } else { |
| cljs.tools.reader.reader_types.unread.call(null,rdr,ch); |
| } |
| |
| return cljs.tools.reader.sb.toString(); |
| } else { |
| cljs.tools.reader.sb.append(ch); |
| |
| var G__786 = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| ch = G__786; |
| continue; |
| } |
| break; |
| } |
| } |
| }); |
| cljs.tools.reader.read_dispatch = (function cljs$tools$reader$read_dispatch(rdr,_,opts,pending_forms){ |
| var temp__5733__auto__ = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var ch = temp__5733__auto__; |
| var temp__5733__auto____$1 = cljs.tools.reader.dispatch_macros.call(null,ch); |
| if(cljs.core.truth_(temp__5733__auto____$1)){ |
| var dm = temp__5733__auto____$1; |
| return dm.call(null,rdr,ch,opts,pending_forms); |
| } else { |
| return cljs.tools.reader.read_tagged.call(null,(function (){var G__787 = rdr; |
| cljs.tools.reader.reader_types.unread.call(null,G__787,ch); |
| |
| return G__787; |
| })(),ch,opts,pending_forms); |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_eof_at_dispatch.call(null,rdr); |
| } |
| }); |
| cljs.tools.reader.read_unmatched_delimiter = (function cljs$tools$reader$read_unmatched_delimiter(rdr,ch,opts,pending_forms){ |
| return cljs.tools.reader.impl.errors.throw_unmatch_delimiter.call(null,rdr,ch); |
| }); |
| cljs.tools.reader.read_regex = (function cljs$tools$reader$read_regex(rdr,ch,opts,pending_forms){ |
| var sb = (new goog.string.StringBuffer()); |
| var ch__$1 = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| while(true){ |
| if(("\"" === ch__$1)){ |
| return cljs.core.re_pattern.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb)); |
| } else { |
| if((ch__$1 == null)){ |
| return cljs.tools.reader.impl.errors.throw_eof_reading.call(null,rdr,new cljs.core.Keyword(null,"regex","regex",939488856),sb); |
| } else { |
| sb.append(ch__$1); |
| |
| if(("\\" === ch__$1)){ |
| var ch_788__$2 = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| if((ch_788__$2 == null)){ |
| cljs.tools.reader.impl.errors.throw_eof_reading.call(null,rdr,new cljs.core.Keyword(null,"regex","regex",939488856),sb); |
| } else { |
| } |
| |
| sb.append(ch_788__$2); |
| } else { |
| } |
| |
| var G__789 = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| ch__$1 = G__789; |
| continue; |
| } |
| } |
| break; |
| } |
| }); |
| cljs.tools.reader.read_unicode_char = (function cljs$tools$reader$read_unicode_char(var_args){ |
| var G__791 = arguments.length; |
| switch (G__791) { |
| case 4: |
| return cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)])); |
| |
| break; |
| case 5: |
| return cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)])); |
| |
| break; |
| default: |
| throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); |
| |
| } |
| }); |
| |
| (cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4 = (function (token,offset,length,base){ |
| var l = (offset + length); |
| if((cljs.core.count.call(null,token) === l)){ |
| } else { |
| cljs.tools.reader.impl.errors.throw_invalid_unicode_literal.call(null,null,token); |
| } |
| |
| var i = offset; |
| var uc = (0); |
| while(true){ |
| if((i === l)){ |
| return String.fromCharCode(uc); |
| } else { |
| var d = cljs.tools.reader.impl.utils.char_code.call(null,cljs.core.nth.call(null,token,i),base); |
| if((d === (-1))){ |
| return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit_in_token.call(null,null,cljs.core.nth.call(null,token,i),token); |
| } else { |
| var G__793 = (i + (1)); |
| var G__794 = (d + (uc * base)); |
| i = G__793; |
| uc = G__794; |
| continue; |
| } |
| } |
| break; |
| } |
| })); |
| |
| (cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5 = (function (rdr,initch,base,length,exact_QMARK_){ |
| var i = (1); |
| var uc = cljs.tools.reader.impl.utils.char_code.call(null,initch,base); |
| while(true){ |
| if((uc === (-1))){ |
| return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit.call(null,rdr,initch); |
| } else { |
| if((!((i === length)))){ |
| var ch = cljs.tools.reader.reader_types.peek_char.call(null,rdr); |
| if(cljs.core.truth_((function (){var or__4185__auto__ = cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,ch); |
| if(or__4185__auto__){ |
| return or__4185__auto__; |
| } else { |
| var or__4185__auto____$1 = cljs.tools.reader.macros.call(null,ch); |
| if(cljs.core.truth_(or__4185__auto____$1)){ |
| return or__4185__auto____$1; |
| } else { |
| return (ch == null); |
| } |
| } |
| })())){ |
| if(cljs.core.truth_(exact_QMARK_)){ |
| return cljs.tools.reader.impl.errors.throw_invalid_unicode_len.call(null,rdr,i,length); |
| } else { |
| return String.fromCharCode(uc); |
| } |
| } else { |
| var d = cljs.tools.reader.impl.utils.char_code.call(null,ch,base); |
| cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| |
| if((d === (-1))){ |
| return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit.call(null,rdr,ch); |
| } else { |
| var G__795 = (i + (1)); |
| var G__796 = (d + (uc * base)); |
| i = G__795; |
| uc = G__796; |
| continue; |
| } |
| } |
| } else { |
| return String.fromCharCode(uc); |
| } |
| } |
| break; |
| } |
| })); |
| |
| (cljs.tools.reader.read_unicode_char.cljs$lang$maxFixedArity = 5); |
| |
| cljs.tools.reader.upper_limit = "\uD7FF".charCodeAt((0)); |
| cljs.tools.reader.lower_limit = "\uE000".charCodeAt((0)); |
| cljs.tools.reader.valid_octal_QMARK_ = (function cljs$tools$reader$valid_octal_QMARK_(token,base){ |
| return (parseInt(token,base) <= (255)); |
| }); |
| /** |
| * Read in a character literal |
| */ |
| cljs.tools.reader.read_char_STAR_ = (function cljs$tools$reader$read_char_STAR_(rdr,backslash,opts,pending_forms){ |
| var ch = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| if((!((ch == null)))){ |
| var token = ((((cljs.tools.reader.macro_terminating_QMARK_.call(null,ch)) || (cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,ch))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(ch):cljs.tools.reader.read_token.call(null,rdr,new cljs.core.Keyword(null,"character","character",380652989),ch)); |
| var token_len = token.length; |
| if(((1) === token_len)){ |
| return token.charAt((0)); |
| } else { |
| if(cljs.core._EQ_.call(null,token,"newline")){ |
| return "\n"; |
| } else { |
| if(cljs.core._EQ_.call(null,token,"space")){ |
| return " "; |
| } else { |
| if(cljs.core._EQ_.call(null,token,"tab")){ |
| return "\t"; |
| } else { |
| if(cljs.core._EQ_.call(null,token,"backspace")){ |
| return "\b"; |
| } else { |
| if(cljs.core._EQ_.call(null,token,"formfeed")){ |
| return "\f"; |
| } else { |
| if(cljs.core._EQ_.call(null,token,"return")){ |
| return "\r"; |
| } else { |
| if(goog.string.startsWith(token,"u")){ |
| var c = cljs.tools.reader.read_unicode_char.call(null,token,(1),(4),(16)); |
| var ic = c.charCodeAt((0)); |
| if((((ic > cljs.tools.reader.upper_limit)) && ((ic < cljs.tools.reader.lower_limit)))){ |
| return cljs.tools.reader.impl.errors.throw_invalid_character_literal.call(null,rdr,ic.toString((16))); |
| } else { |
| return c; |
| } |
| } else { |
| if(goog.string.startsWith(token,"o")){ |
| var len = (token_len - (1)); |
| if((len > (3))){ |
| return cljs.tools.reader.impl.errors.throw_invalid_octal_len.call(null,rdr,token); |
| } else { |
| var offset = (1); |
| var base = (8); |
| var uc = cljs.tools.reader.read_unicode_char.call(null,token,offset,len,base); |
| if((!(cljs.tools.reader.valid_octal_QMARK_.call(null,cljs.core.subs.call(null,token,offset),base)))){ |
| return cljs.tools.reader.impl.errors.throw_bad_octal_number.call(null,rdr); |
| } else { |
| return uc; |
| } |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_unsupported_character.call(null,rdr,token); |
| |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_eof_in_character.call(null,rdr); |
| } |
| }); |
| cljs.tools.reader.starting_line_col_info = (function cljs$tools$reader$starting_line_col_info(rdr){ |
| if(cljs.tools.reader.reader_types.indexing_reader_QMARK_.call(null,rdr)){ |
| return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.tools.reader.reader_types.get_line_number.call(null,rdr),((cljs.tools.reader.reader_types.get_column_number.call(null,rdr) - (1)) | (0))], null); |
| } else { |
| return null; |
| } |
| }); |
| cljs.tools.reader.ending_line_col_info = (function cljs$tools$reader$ending_line_col_info(rdr){ |
| if(cljs.tools.reader.reader_types.indexing_reader_QMARK_.call(null,rdr)){ |
| return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.tools.reader.reader_types.get_line_number.call(null,rdr),cljs.tools.reader.reader_types.get_column_number.call(null,rdr)], null); |
| } else { |
| return null; |
| } |
| }); |
| if((typeof cljs !== 'undefined') && (typeof cljs.tools !== 'undefined') && (typeof cljs.tools.reader !== 'undefined') && (typeof cljs.tools.reader.READ_EOF !== 'undefined')){ |
| } else { |
| cljs.tools.reader.READ_EOF = (new Object()); |
| } |
| if((typeof cljs !== 'undefined') && (typeof cljs.tools !== 'undefined') && (typeof cljs.tools.reader !== 'undefined') && (typeof cljs.tools.reader.READ_FINISHED !== 'undefined')){ |
| } else { |
| cljs.tools.reader.READ_FINISHED = (new Object()); |
| } |
| cljs.tools.reader._STAR_read_delim_STAR_ = false; |
| cljs.tools.reader.read_delimited_internal = (function cljs$tools$reader$read_delimited_internal(kind,delim,rdr,opts,pending_forms){ |
| var vec__797 = cljs.tools.reader.starting_line_col_info.call(null,rdr); |
| var start_line = cljs.core.nth.call(null,vec__797,(0),null); |
| var start_column = cljs.core.nth.call(null,vec__797,(1),null); |
| var delim__$1 = cljs.tools.reader.impl.utils.char$.call(null,delim); |
| var a = cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY); |
| while(true){ |
| var form = cljs.tools.reader.read_STAR_.call(null,rdr,false,cljs.tools.reader.READ_EOF,delim__$1,opts,pending_forms); |
| if((form === cljs.tools.reader.READ_FINISHED)){ |
| return cljs.core.persistent_BANG_.call(null,a); |
| } else { |
| if((form === cljs.tools.reader.READ_EOF)){ |
| return cljs.tools.reader.impl.errors.throw_eof_delimited.call(null,rdr,kind,start_line,start_column,cljs.core.count.call(null,a)); |
| } else { |
| var G__800 = cljs.core.conj_BANG_.call(null,a,form); |
| a = G__800; |
| continue; |
| } |
| } |
| break; |
| } |
| }); |
| /** |
| * Reads and returns a collection ended with delim |
| */ |
| cljs.tools.reader.read_delimited = (function cljs$tools$reader$read_delimited(kind,delim,rdr,opts,pending_forms){ |
| var _STAR_read_delim_STAR__orig_val__801 = cljs.tools.reader._STAR_read_delim_STAR_; |
| var _STAR_read_delim_STAR__temp_val__802 = true; |
| (cljs.tools.reader._STAR_read_delim_STAR_ = _STAR_read_delim_STAR__temp_val__802); |
| |
| try{return cljs.tools.reader.read_delimited_internal.call(null,kind,delim,rdr,opts,pending_forms); |
| }finally {(cljs.tools.reader._STAR_read_delim_STAR_ = _STAR_read_delim_STAR__orig_val__801); |
| }}); |
| /** |
| * Read in a list, including its location if the reader is an indexing reader |
| */ |
| cljs.tools.reader.read_list = (function cljs$tools$reader$read_list(rdr,_,opts,pending_forms){ |
| var vec__803 = cljs.tools.reader.starting_line_col_info.call(null,rdr); |
| var start_line = cljs.core.nth.call(null,vec__803,(0),null); |
| var start_column = cljs.core.nth.call(null,vec__803,(1),null); |
| var the_list = cljs.tools.reader.read_delimited.call(null,new cljs.core.Keyword(null,"list","list",765357683),")",rdr,opts,pending_forms); |
| var vec__806 = cljs.tools.reader.ending_line_col_info.call(null,rdr); |
| var end_line = cljs.core.nth.call(null,vec__806,(0),null); |
| var end_column = cljs.core.nth.call(null,vec__806,(1),null); |
| return cljs.core.with_meta.call(null,((cljs.core.empty_QMARK_.call(null,the_list))?cljs.core.List.EMPTY:cljs.core.apply.call(null,cljs.core.list,the_list)),(cljs.core.truth_(start_line)?cljs.core.merge.call(null,(function (){var temp__5735__auto__ = cljs.tools.reader.reader_types.get_file_name.call(null,rdr); |
| if(cljs.core.truth_(temp__5735__auto__)){ |
| var file = temp__5735__auto__; |
| return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"file","file",-1269645878),file], null); |
| } else { |
| return null; |
| } |
| })(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"line","line",212345235),start_line,new cljs.core.Keyword(null,"column","column",2078222095),start_column,new cljs.core.Keyword(null,"end-line","end-line",1837326455),end_line,new cljs.core.Keyword(null,"end-column","end-column",1425389514),end_column], null)):null)); |
| }); |
| /** |
| * Read in a vector, including its location if the reader is an indexing reader |
| */ |
| cljs.tools.reader.read_vector = (function cljs$tools$reader$read_vector(rdr,_,opts,pending_forms){ |
| var vec__809 = cljs.tools.reader.starting_line_col_info.call(null,rdr); |
| var start_line = cljs.core.nth.call(null,vec__809,(0),null); |
| var start_column = cljs.core.nth.call(null,vec__809,(1),null); |
| var the_vector = cljs.tools.reader.read_delimited.call(null,new cljs.core.Keyword(null,"vector","vector",1902966158),"]",rdr,opts,pending_forms); |
| var vec__812 = cljs.tools.reader.ending_line_col_info.call(null,rdr); |
| var end_line = cljs.core.nth.call(null,vec__812,(0),null); |
| var end_column = cljs.core.nth.call(null,vec__812,(1),null); |
| return cljs.core.with_meta.call(null,the_vector,(cljs.core.truth_(start_line)?cljs.core.merge.call(null,(function (){var temp__5735__auto__ = cljs.tools.reader.reader_types.get_file_name.call(null,rdr); |
| if(cljs.core.truth_(temp__5735__auto__)){ |
| var file = temp__5735__auto__; |
| return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"file","file",-1269645878),file], null); |
| } else { |
| return null; |
| } |
| })(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"line","line",212345235),start_line,new cljs.core.Keyword(null,"column","column",2078222095),start_column,new cljs.core.Keyword(null,"end-line","end-line",1837326455),end_line,new cljs.core.Keyword(null,"end-column","end-column",1425389514),end_column], null)):null)); |
| }); |
| /** |
| * Read in a map, including its location if the reader is an indexing reader |
| */ |
| cljs.tools.reader.read_map = (function cljs$tools$reader$read_map(rdr,_,opts,pending_forms){ |
| var vec__815 = cljs.tools.reader.starting_line_col_info.call(null,rdr); |
| var start_line = cljs.core.nth.call(null,vec__815,(0),null); |
| var start_column = cljs.core.nth.call(null,vec__815,(1),null); |
| var the_map = cljs.tools.reader.read_delimited.call(null,new cljs.core.Keyword(null,"map","map",1371690461),"}",rdr,opts,pending_forms); |
| var map_count = cljs.core.count.call(null,the_map); |
| var ks = cljs.core.take_nth.call(null,(2),the_map); |
| var key_set = cljs.core.set.call(null,ks); |
| var vec__818 = cljs.tools.reader.ending_line_col_info.call(null,rdr); |
| var end_line = cljs.core.nth.call(null,vec__818,(0),null); |
| var end_column = cljs.core.nth.call(null,vec__818,(1),null); |
| if(cljs.core.odd_QMARK_.call(null,map_count)){ |
| cljs.tools.reader.impl.errors.throw_odd_map.call(null,rdr,start_line,start_column,the_map); |
| } else { |
| } |
| |
| if(cljs.core._EQ_.call(null,cljs.core.count.call(null,key_set),cljs.core.count.call(null,ks))){ |
| } else { |
| cljs.tools.reader.impl.errors.throw_dup_keys.call(null,rdr,new cljs.core.Keyword(null,"map","map",1371690461),ks); |
| } |
| |
| return cljs.core.with_meta.call(null,(((map_count <= ((2) * cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD)))?cljs.core.PersistentArrayMap.fromArray(cljs.core.to_array.call(null,the_map),true,true):cljs.core.PersistentHashMap.fromArray(cljs.core.to_array.call(null,the_map),true)),(cljs.core.truth_(start_line)?cljs.core.merge.call(null,(function (){var temp__5735__auto__ = cljs.tools.reader.reader_types.get_file_name.call(null,rdr); |
| if(cljs.core.truth_(temp__5735__auto__)){ |
| var file = temp__5735__auto__; |
| return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"file","file",-1269645878),file], null); |
| } else { |
| return null; |
| } |
| })(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"line","line",212345235),start_line,new cljs.core.Keyword(null,"column","column",2078222095),start_column,new cljs.core.Keyword(null,"end-line","end-line",1837326455),end_line,new cljs.core.Keyword(null,"end-column","end-column",1425389514),end_column], null)):null)); |
| }); |
| cljs.tools.reader.read_number = (function cljs$tools$reader$read_number(rdr,initch){ |
| var sb = (function (){var G__821 = (new goog.string.StringBuffer()); |
| G__821.append(initch); |
| |
| return G__821; |
| })(); |
| var ch = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| while(true){ |
| if(cljs.core.truth_((function (){var or__4185__auto__ = cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,ch); |
| if(or__4185__auto__){ |
| return or__4185__auto__; |
| } else { |
| var or__4185__auto____$1 = cljs.tools.reader.macros.call(null,ch); |
| if(cljs.core.truth_(or__4185__auto____$1)){ |
| return or__4185__auto____$1; |
| } else { |
| return (ch == null); |
| } |
| } |
| })())){ |
| var s = cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb); |
| cljs.tools.reader.reader_types.unread.call(null,rdr,ch); |
| |
| var or__4185__auto__ = cljs.tools.reader.impl.commons.match_number.call(null,s); |
| if(cljs.core.truth_(or__4185__auto__)){ |
| return or__4185__auto__; |
| } else { |
| return cljs.tools.reader.impl.errors.throw_invalid_number.call(null,rdr,s); |
| } |
| } else { |
| var G__823 = (function (){var G__822 = sb; |
| G__822.append(ch); |
| |
| return G__822; |
| })(); |
| var G__824 = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| sb = G__823; |
| ch = G__824; |
| continue; |
| } |
| break; |
| } |
| }); |
| cljs.tools.reader.escape_char = (function cljs$tools$reader$escape_char(sb,rdr){ |
| var ch = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| var G__825 = ch; |
| switch (G__825) { |
| case "t": |
| return "\t"; |
| |
| break; |
| case "r": |
| return "\r"; |
| |
| break; |
| case "n": |
| return "\n"; |
| |
| break; |
| case "\\": |
| return "\\"; |
| |
| break; |
| case "\"": |
| return "\""; |
| |
| break; |
| case "b": |
| return "\b"; |
| |
| break; |
| case "f": |
| return "\f"; |
| |
| break; |
| case "u": |
| var ch__$1 = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| if(((-1) === parseInt((ch__$1 | (0)),(16)))){ |
| return cljs.tools.reader.impl.errors.throw_invalid_unicode_escape.call(null,rdr,ch__$1); |
| } else { |
| return cljs.tools.reader.read_unicode_char.call(null,rdr,ch__$1,(16),(4),true); |
| } |
| |
| break; |
| default: |
| if(cljs.tools.reader.impl.utils.numeric_QMARK_.call(null,ch)){ |
| var ch__$1 = cljs.tools.reader.read_unicode_char.call(null,rdr,ch,(8),(3),false); |
| if(((ch__$1 | (0)) > (255))){ |
| return cljs.tools.reader.impl.errors.throw_bad_octal_number.call(null,rdr); |
| } else { |
| return ch__$1; |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_bad_escape_char.call(null,rdr,ch); |
| } |
| |
| } |
| }); |
| cljs.tools.reader.read_string_STAR_ = (function cljs$tools$reader$read_string_STAR_(reader,_,opts,pending_forms){ |
| var sb = (new goog.string.StringBuffer()); |
| var ch = cljs.tools.reader.reader_types.read_char.call(null,reader); |
| while(true){ |
| if((ch == null)){ |
| return cljs.tools.reader.impl.errors.throw_eof_reading.call(null,reader,new cljs.core.Keyword(null,"string","string",-1989541586),"\"",sb); |
| } else { |
| var G__827 = ch; |
| switch (G__827) { |
| case "\\": |
| var G__831 = (function (){var G__828 = sb; |
| G__828.append(cljs.tools.reader.escape_char.call(null,sb,reader)); |
| |
| return G__828; |
| })(); |
| var G__832 = cljs.tools.reader.reader_types.read_char.call(null,reader); |
| sb = G__831; |
| ch = G__832; |
| continue; |
| |
| break; |
| case "\"": |
| return cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb); |
| |
| break; |
| default: |
| var G__833 = (function (){var G__829 = sb; |
| G__829.append(ch); |
| |
| return G__829; |
| })(); |
| var G__834 = cljs.tools.reader.reader_types.read_char.call(null,reader); |
| sb = G__833; |
| ch = G__834; |
| continue; |
| |
| } |
| } |
| break; |
| } |
| }); |
| cljs.tools.reader.loc_info = (function cljs$tools$reader$loc_info(rdr,line,column){ |
| if((line == null)){ |
| return null; |
| } else { |
| var file = cljs.tools.reader.reader_types.get_file_name.call(null,rdr); |
| var filem = (((file == null))?null:new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"file","file",-1269645878),file], null)); |
| var vec__835 = cljs.tools.reader.ending_line_col_info.call(null,rdr); |
| var end_line = cljs.core.nth.call(null,vec__835,(0),null); |
| var end_column = cljs.core.nth.call(null,vec__835,(1),null); |
| var lcm = new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"line","line",212345235),line,new cljs.core.Keyword(null,"column","column",2078222095),column,new cljs.core.Keyword(null,"end-line","end-line",1837326455),end_line,new cljs.core.Keyword(null,"end-column","end-column",1425389514),end_column], null); |
| return cljs.core.merge.call(null,filem,lcm); |
| } |
| }); |
| cljs.tools.reader.read_symbol = (function cljs$tools$reader$read_symbol(rdr,initch){ |
| var vec__838 = cljs.tools.reader.starting_line_col_info.call(null,rdr); |
| var line = cljs.core.nth.call(null,vec__838,(0),null); |
| var column = cljs.core.nth.call(null,vec__838,(1),null); |
| var token = cljs.tools.reader.read_token.call(null,rdr,new cljs.core.Keyword(null,"symbol","symbol",-1038572696),initch); |
| if((token == null)){ |
| return null; |
| } else { |
| var G__841 = token; |
| switch (G__841) { |
| case "nil": |
| return null; |
| |
| break; |
| case "true": |
| return true; |
| |
| break; |
| case "false": |
| return false; |
| |
| break; |
| case "/": |
| return new cljs.core.Symbol(null,"/","/",-1371932971,null); |
| |
| break; |
| default: |
| var p = cljs.tools.reader.impl.commons.parse_symbol.call(null,token); |
| if((!((p == null)))){ |
| var sym = cljs.core.symbol.call(null,cljs.core._nth.call(null,p,(0)),cljs.core._nth.call(null,p,(1))); |
| return cljs.core._with_meta.call(null,sym,cljs.tools.reader.loc_info.call(null,rdr,line,column)); |
| } else { |
| return cljs.tools.reader.impl.errors.throw_invalid.call(null,rdr,new cljs.core.Keyword(null,"symbol","symbol",-1038572696),token); |
| } |
| |
| } |
| } |
| }); |
| /** |
| * Map from ns alias to ns, if non-nil, it will be used to resolve read-time |
| * ns aliases. |
| * |
| * Defaults to nil |
| */ |
| cljs.tools.reader._STAR_alias_map_STAR_ = null; |
| cljs.tools.reader.resolve_alias = (function cljs$tools$reader$resolve_alias(sym){ |
| return cljs.core.get.call(null,cljs.tools.reader._STAR_alias_map_STAR_,sym); |
| }); |
| cljs.tools.reader.resolve_ns = (function cljs$tools$reader$resolve_ns(sym){ |
| var or__4185__auto__ = cljs.tools.reader.resolve_alias.call(null,sym); |
| if(cljs.core.truth_(or__4185__auto__)){ |
| return or__4185__auto__; |
| } else { |
| var temp__5735__auto__ = cljs.core.find_ns.call(null,sym); |
| if(cljs.core.truth_(temp__5735__auto__)){ |
| var ns = temp__5735__auto__; |
| return cljs.core.symbol.call(null,cljs.core.ns_name.call(null,ns)); |
| } else { |
| return null; |
| } |
| } |
| }); |
| cljs.tools.reader.read_keyword = (function cljs$tools$reader$read_keyword(reader,initch,opts,pending_forms){ |
| var ch = cljs.tools.reader.reader_types.read_char.call(null,reader); |
| if((!(cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,ch)))){ |
| var token = cljs.tools.reader.read_token.call(null,reader,new cljs.core.Keyword(null,"keyword","keyword",811389747),ch); |
| var s = cljs.tools.reader.impl.commons.parse_symbol.call(null,token); |
| if((!((s == null)))){ |
| var ns = cljs.core._nth.call(null,s,(0)); |
| var name = cljs.core._nth.call(null,s,(1)); |
| if((":" === token.charAt((0)))){ |
| if((!((ns == null)))){ |
| var temp__5733__auto__ = cljs.tools.reader.resolve_alias.call(null,cljs.core.symbol.call(null,cljs.core.subs.call(null,ns,(1)))); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var ns__$1 = temp__5733__auto__; |
| return cljs.core.keyword.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),name); |
| } else { |
| return cljs.tools.reader.impl.errors.throw_invalid.call(null,reader,new cljs.core.Keyword(null,"keyword","keyword",811389747),[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(token)].join('')); |
| } |
| } else { |
| var temp__5733__auto__ = cljs.core._STAR_ns_STAR_; |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var ns__$1 = temp__5733__auto__; |
| return cljs.core.keyword.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns__$1),cljs.core.subs.call(null,name,(1))); |
| } else { |
| return cljs.tools.reader.impl.errors.reader_error.call(null,reader,"Invalid token: :",token); |
| } |
| } |
| } else { |
| return cljs.core.keyword.call(null,ns,name); |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_invalid.call(null,reader,new cljs.core.Keyword(null,"keyword","keyword",811389747),[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(token)].join('')); |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_single_colon.call(null,reader); |
| } |
| }); |
| /** |
| * Returns a function which wraps a reader in a call to sym |
| */ |
| cljs.tools.reader.wrapping_reader = (function cljs$tools$reader$wrapping_reader(sym){ |
| return (function (rdr,_,opts,pending_forms){ |
| return (new cljs.core.List(null,sym,(new cljs.core.List(null,cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms),null,(1),null)),(2),null)); |
| }); |
| }); |
| /** |
| * Read metadata and return the following object with the metadata applied |
| */ |
| cljs.tools.reader.read_meta = (function cljs$tools$reader$read_meta(rdr,_,opts,pending_forms){ |
| if(((cljs.tools.reader.reader_types.source_logging_reader_QMARK_.call(null,rdr)) && ((!(cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,cljs.tools.reader.reader_types.peek_char.call(null,rdr))))))){ |
| return cljs.tools.reader.reader_types.log_source_STAR_.call(null,rdr,(function (){ |
| var vec__843 = cljs.tools.reader.starting_line_col_info.call(null,rdr); |
| var line = cljs.core.nth.call(null,vec__843,(0),null); |
| var column = cljs.core.nth.call(null,vec__843,(1),null); |
| var m = cljs.tools.reader.impl.utils.desugar_meta.call(null,cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)); |
| if(cljs.core.map_QMARK_.call(null,m)){ |
| } else { |
| cljs.tools.reader.impl.errors.throw_bad_metadata.call(null,rdr,m); |
| } |
| |
| var o = cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms); |
| if((((!((o == null))))?(((((o.cljs$lang$protocol_mask$partition0$ & (131072))) || ((cljs.core.PROTOCOL_SENTINEL === o.cljs$core$IMeta$))))?true:false):false)){ |
| var m__$1 = (cljs.core.truth_((function (){var and__4174__auto__ = line; |
| if(cljs.core.truth_(and__4174__auto__)){ |
| return cljs.core.seq_QMARK_.call(null,o); |
| } else { |
| return and__4174__auto__; |
| } |
| })())?cljs.core.assoc.call(null,m,new cljs.core.Keyword(null,"line","line",212345235),line,new cljs.core.Keyword(null,"column","column",2078222095),column):m); |
| if((((!((o == null))))?(((((o.cljs$lang$protocol_mask$partition0$ & (262144))) || ((cljs.core.PROTOCOL_SENTINEL === o.cljs$core$IWithMeta$))))?true:false):false)){ |
| return cljs.core.with_meta.call(null,o,cljs.core.merge.call(null,cljs.core.meta.call(null,o),m__$1)); |
| } else { |
| return cljs.core.reset_meta_BANG_.call(null,o,m__$1); |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_bad_metadata_target.call(null,rdr,o); |
| } |
| })); |
| } else { |
| var vec__848 = cljs.tools.reader.starting_line_col_info.call(null,rdr); |
| var line = cljs.core.nth.call(null,vec__848,(0),null); |
| var column = cljs.core.nth.call(null,vec__848,(1),null); |
| var m = cljs.tools.reader.impl.utils.desugar_meta.call(null,cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)); |
| if(cljs.core.map_QMARK_.call(null,m)){ |
| } else { |
| cljs.tools.reader.impl.errors.throw_bad_metadata.call(null,rdr,m); |
| } |
| |
| var o = cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms); |
| if((((!((o == null))))?(((((o.cljs$lang$protocol_mask$partition0$ & (131072))) || ((cljs.core.PROTOCOL_SENTINEL === o.cljs$core$IMeta$))))?true:false):false)){ |
| var m__$1 = (cljs.core.truth_((function (){var and__4174__auto__ = line; |
| if(cljs.core.truth_(and__4174__auto__)){ |
| return cljs.core.seq_QMARK_.call(null,o); |
| } else { |
| return and__4174__auto__; |
| } |
| })())?cljs.core.assoc.call(null,m,new cljs.core.Keyword(null,"line","line",212345235),line,new cljs.core.Keyword(null,"column","column",2078222095),column):m); |
| if((((!((o == null))))?(((((o.cljs$lang$protocol_mask$partition0$ & (262144))) || ((cljs.core.PROTOCOL_SENTINEL === o.cljs$core$IWithMeta$))))?true:false):false)){ |
| return cljs.core.with_meta.call(null,o,cljs.core.merge.call(null,cljs.core.meta.call(null,o),m__$1)); |
| } else { |
| return cljs.core.reset_meta_BANG_.call(null,o,m__$1); |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_bad_metadata_target.call(null,rdr,o); |
| } |
| } |
| }); |
| cljs.tools.reader.read_set = (function cljs$tools$reader$read_set(rdr,_,opts,pending_forms){ |
| var vec__853 = cljs.tools.reader.starting_line_col_info.call(null,rdr); |
| var start_line = cljs.core.nth.call(null,vec__853,(0),null); |
| var start_column = cljs.core.nth.call(null,vec__853,(1),null); |
| var start_column__$1 = (cljs.core.truth_(start_column)?((start_column - (1)) | (0)):null); |
| var coll = cljs.tools.reader.read_delimited.call(null,new cljs.core.Keyword(null,"set","set",304602554),"}",rdr,opts,pending_forms); |
| var the_set = cljs.core.set.call(null,coll); |
| var vec__856 = cljs.tools.reader.ending_line_col_info.call(null,rdr); |
| var end_line = cljs.core.nth.call(null,vec__856,(0),null); |
| var end_column = cljs.core.nth.call(null,vec__856,(1),null); |
| if(cljs.core._EQ_.call(null,cljs.core.count.call(null,coll),cljs.core.count.call(null,the_set))){ |
| } else { |
| cljs.tools.reader.impl.errors.reader_error.call(null,rdr,cljs.tools.reader.impl.errors.throw_dup_keys.call(null,rdr,new cljs.core.Keyword(null,"set","set",304602554),coll)); |
| } |
| |
| return cljs.core.with_meta.call(null,the_set,(cljs.core.truth_(start_line)?cljs.core.merge.call(null,(function (){var temp__5735__auto__ = cljs.tools.reader.reader_types.get_file_name.call(null,rdr); |
| if(cljs.core.truth_(temp__5735__auto__)){ |
| var file = temp__5735__auto__; |
| return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"file","file",-1269645878),file], null); |
| } else { |
| return null; |
| } |
| })(),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"line","line",212345235),start_line,new cljs.core.Keyword(null,"column","column",2078222095),start_column__$1,new cljs.core.Keyword(null,"end-line","end-line",1837326455),end_line,new cljs.core.Keyword(null,"end-column","end-column",1425389514),end_column], null)):null)); |
| }); |
| /** |
| * Read and discard the first object from rdr |
| */ |
| cljs.tools.reader.read_discard = (function cljs$tools$reader$read_discard(rdr,_,opts,pending_forms){ |
| var G__859 = rdr; |
| cljs.tools.reader.read_STAR_.call(null,G__859,true,null,opts,pending_forms); |
| |
| return G__859; |
| }); |
| cljs.tools.reader.read_symbolic_value = (function cljs$tools$reader$read_symbolic_value(rdr,_,opts,pending_forms){ |
| var sym = cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms); |
| var G__860 = sym; |
| if(cljs.core._EQ_.call(null,new cljs.core.Symbol(null,"NaN","NaN",666918153,null),G__860)){ |
| return Number.NaN; |
| } else { |
| if(cljs.core._EQ_.call(null,new cljs.core.Symbol(null,"-Inf","-Inf",-2123243689,null),G__860)){ |
| return Number.NEGATIVE_INFINITY; |
| } else { |
| if(cljs.core._EQ_.call(null,new cljs.core.Symbol(null,"Inf","Inf",647172781,null),G__860)){ |
| return Number.POSITIVE_INFINITY; |
| } else { |
| return cljs.tools.reader.impl.errors.reader_error.call(null,rdr,["Invalid token: ##",cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym)].join('')); |
| |
| } |
| } |
| } |
| }); |
| cljs.tools.reader.RESERVED_FEATURES = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"else","else",-1508377146),null,new cljs.core.Keyword(null,"none","none",1333468478),null], null), null); |
| cljs.tools.reader.has_feature_QMARK_ = (function cljs$tools$reader$has_feature_QMARK_(rdr,feature,opts){ |
| if((feature instanceof cljs.core.Keyword)){ |
| return ((cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"default","default",-1987822328),feature)) || (cljs.core.contains_QMARK_.call(null,cljs.core.get.call(null,opts,new cljs.core.Keyword(null,"features","features",-1146962336)),feature))); |
| } else { |
| return cljs.tools.reader.impl.errors.reader_error.call(null,rdr,"Feature should be a keyword: ",feature); |
| } |
| }); |
| cljs.tools.reader.check_eof_error = (function cljs$tools$reader$check_eof_error(form,rdr,first_line){ |
| if((form === cljs.tools.reader.READ_EOF)){ |
| return cljs.tools.reader.impl.errors.throw_eof_error.call(null,rdr,(((first_line < (0)))?first_line:false)); |
| } else { |
| return null; |
| } |
| }); |
| cljs.tools.reader.check_reserved_features = (function cljs$tools$reader$check_reserved_features(rdr,form){ |
| if(cljs.core.truth_(cljs.core.get.call(null,cljs.tools.reader.RESERVED_FEATURES,form))){ |
| return cljs.tools.reader.impl.errors.reader_error.call(null,rdr,"Feature name ",form," is reserved"); |
| } else { |
| return null; |
| } |
| }); |
| cljs.tools.reader.check_invalid_read_cond = (function cljs$tools$reader$check_invalid_read_cond(form,rdr,first_line){ |
| if((form === cljs.tools.reader.READ_FINISHED)){ |
| if((first_line < (0))){ |
| return cljs.tools.reader.impl.errors.reader_error.call(null,rdr,"read-cond requires an even number of forms"); |
| } else { |
| return cljs.tools.reader.impl.errors.reader_error.call(null,rdr,"read-cond starting on line ",first_line," requires an even number of forms"); |
| } |
| } else { |
| return null; |
| } |
| }); |
| /** |
| * Read next form and suppress. Return nil or READ_FINISHED. |
| */ |
| cljs.tools.reader.read_suppress = (function cljs$tools$reader$read_suppress(first_line,rdr,opts,pending_forms){ |
| var _STAR_suppress_read_STAR__orig_val__861 = cljs.tools.reader._STAR_suppress_read_STAR_; |
| var _STAR_suppress_read_STAR__temp_val__862 = true; |
| (cljs.tools.reader._STAR_suppress_read_STAR_ = _STAR_suppress_read_STAR__temp_val__862); |
| |
| try{var form = cljs.tools.reader.read_STAR_.call(null,rdr,false,cljs.tools.reader.READ_EOF,")",opts,pending_forms); |
| cljs.tools.reader.check_eof_error.call(null,form,rdr,first_line); |
| |
| if((form === cljs.tools.reader.READ_FINISHED)){ |
| return cljs.tools.reader.READ_FINISHED; |
| } else { |
| return null; |
| } |
| }finally {(cljs.tools.reader._STAR_suppress_read_STAR_ = _STAR_suppress_read_STAR__orig_val__861); |
| }}); |
| if((typeof cljs !== 'undefined') && (typeof cljs.tools !== 'undefined') && (typeof cljs.tools.reader !== 'undefined') && (typeof cljs.tools.reader.NO_MATCH !== 'undefined')){ |
| } else { |
| cljs.tools.reader.NO_MATCH = (new Object()); |
| } |
| /** |
| * Read next feature. If matched, read next form and return. |
| * Otherwise, read and skip next form, returning READ_FINISHED or nil. |
| */ |
| cljs.tools.reader.match_feature = (function cljs$tools$reader$match_feature(first_line,rdr,opts,pending_forms){ |
| var feature = cljs.tools.reader.read_STAR_.call(null,rdr,false,cljs.tools.reader.READ_EOF,")",opts,pending_forms); |
| cljs.tools.reader.check_eof_error.call(null,feature,rdr,first_line); |
| |
| if(cljs.core._EQ_.call(null,feature,cljs.tools.reader.READ_FINISHED)){ |
| return cljs.tools.reader.READ_FINISHED; |
| } else { |
| cljs.tools.reader.check_reserved_features.call(null,rdr,feature); |
| |
| if(cljs.tools.reader.has_feature_QMARK_.call(null,rdr,feature,opts)){ |
| var G__863 = cljs.tools.reader.read_STAR_.call(null,rdr,false,cljs.tools.reader.READ_EOF,")",opts,pending_forms); |
| cljs.tools.reader.check_eof_error.call(null,G__863,rdr,first_line); |
| |
| cljs.tools.reader.check_invalid_read_cond.call(null,G__863,rdr,first_line); |
| |
| return G__863; |
| } else { |
| var or__4185__auto__ = cljs.tools.reader.read_suppress.call(null,first_line,rdr,opts,pending_forms); |
| if(cljs.core.truth_(or__4185__auto__)){ |
| return or__4185__auto__; |
| } else { |
| return cljs.tools.reader.NO_MATCH; |
| } |
| } |
| } |
| }); |
| cljs.tools.reader.read_cond_delimited = (function cljs$tools$reader$read_cond_delimited(rdr,splicing,opts,pending_forms){ |
| var first_line = ((cljs.tools.reader.reader_types.indexing_reader_QMARK_.call(null,rdr))?cljs.tools.reader.reader_types.get_line_number.call(null,rdr):(-1)); |
| var result = (function (){var matched = cljs.tools.reader.NO_MATCH; |
| var finished = null; |
| while(true){ |
| if((matched === cljs.tools.reader.NO_MATCH)){ |
| var match = cljs.tools.reader.match_feature.call(null,first_line,rdr,opts,pending_forms); |
| if((match === cljs.tools.reader.READ_FINISHED)){ |
| return cljs.tools.reader.READ_FINISHED; |
| } else { |
| var G__865 = match; |
| var G__866 = null; |
| matched = G__865; |
| finished = G__866; |
| continue; |
| } |
| } else { |
| if((!((finished === cljs.tools.reader.READ_FINISHED)))){ |
| var G__867 = matched; |
| var G__868 = cljs.tools.reader.read_suppress.call(null,first_line,rdr,opts,pending_forms); |
| matched = G__867; |
| finished = G__868; |
| continue; |
| } else { |
| return matched; |
| |
| } |
| } |
| break; |
| } |
| })(); |
| if((result === cljs.tools.reader.READ_FINISHED)){ |
| return rdr; |
| } else { |
| if(cljs.core.truth_(splicing)){ |
| if((((!((result == null))))?(((((result.cljs$lang$protocol_mask$partition0$ & (16777216))) || ((cljs.core.PROTOCOL_SENTINEL === result.cljs$core$ISequential$))))?true:false):false)){ |
| goog.array.insertArrayAt(pending_forms,cljs.core.to_array.call(null,result),(0)); |
| |
| return rdr; |
| } else { |
| return cljs.tools.reader.impl.errors.reader_error.call(null,rdr,"Spliced form list in read-cond-splicing must implement ISequential"); |
| } |
| } else { |
| return result; |
| } |
| } |
| }); |
| cljs.tools.reader.read_cond = (function cljs$tools$reader$read_cond(rdr,_,opts,pending_forms){ |
| if(cljs.core.not.call(null,(function (){var and__4174__auto__ = opts; |
| if(cljs.core.truth_(and__4174__auto__)){ |
| return new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"preserve","preserve",1276846509),null,new cljs.core.Keyword(null,"allow","allow",-1857325745),null], null), null).call(null,new cljs.core.Keyword(null,"read-cond","read-cond",1056899244).cljs$core$IFn$_invoke$arity$1(opts)); |
| } else { |
| return and__4174__auto__; |
| } |
| })())){ |
| throw cljs.core.ex_info.call(null,"Conditional read not allowed",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"runtime-exception","runtime-exception",-1495664514)], null)); |
| } else { |
| } |
| |
| var temp__5733__auto__ = cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var ch = temp__5733__auto__; |
| var splicing = cljs.core._EQ_.call(null,ch,"@"); |
| var ch__$1 = ((splicing)?cljs.tools.reader.reader_types.read_char.call(null,rdr):ch); |
| if(splicing){ |
| if(cljs.core.truth_(cljs.tools.reader._STAR_read_delim_STAR_)){ |
| } else { |
| cljs.tools.reader.impl.errors.reader_error.call(null,rdr,"cond-splice not in list"); |
| } |
| } else { |
| } |
| |
| var temp__5733__auto____$1 = ((cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,ch__$1))?cljs.tools.reader.impl.commons.read_past.call(null,cljs.tools.reader.impl.utils.whitespace_QMARK_,rdr):ch__$1); |
| if(cljs.core.truth_(temp__5733__auto____$1)){ |
| var ch__$2 = temp__5733__auto____$1; |
| if(cljs.core.not_EQ_.call(null,ch__$2,"(")){ |
| throw cljs.core.ex_info.call(null,"read-cond body must be a list",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"runtime-exception","runtime-exception",-1495664514)], null)); |
| } else { |
| var _STAR_suppress_read_STAR__orig_val__869 = cljs.tools.reader._STAR_suppress_read_STAR_; |
| var _STAR_suppress_read_STAR__temp_val__870 = (function (){var or__4185__auto__ = cljs.tools.reader._STAR_suppress_read_STAR_; |
| if(cljs.core.truth_(or__4185__auto__)){ |
| return or__4185__auto__; |
| } else { |
| return cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"preserve","preserve",1276846509),new cljs.core.Keyword(null,"read-cond","read-cond",1056899244).cljs$core$IFn$_invoke$arity$1(opts)); |
| } |
| })(); |
| (cljs.tools.reader._STAR_suppress_read_STAR_ = _STAR_suppress_read_STAR__temp_val__870); |
| |
| try{if(cljs.core.truth_(cljs.tools.reader._STAR_suppress_read_STAR_)){ |
| return cljs.tools.reader.impl.utils.reader_conditional.call(null,cljs.tools.reader.read_list.call(null,rdr,ch__$2,opts,pending_forms),splicing); |
| } else { |
| return cljs.tools.reader.read_cond_delimited.call(null,rdr,splicing,opts,pending_forms); |
| } |
| }finally {(cljs.tools.reader._STAR_suppress_read_STAR_ = _STAR_suppress_read_STAR__orig_val__869); |
| }} |
| } else { |
| return cljs.tools.reader.impl.errors.throw_eof_in_character.call(null,rdr); |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_eof_in_character.call(null,rdr); |
| } |
| }); |
| cljs.tools.reader.arg_env = null; |
| /** |
| * Get a symbol for an anonymous ?argument? |
| */ |
| cljs.tools.reader.garg = (function cljs$tools$reader$garg(n){ |
| return cljs.core.symbol.call(null,[((((-1) === n))?"rest":["p",cljs.core.str.cljs$core$IFn$_invoke$arity$1(n)].join('')),"__",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.impl.utils.next_id.call(null)),"#"].join('')); |
| }); |
| cljs.tools.reader.read_fn = (function cljs$tools$reader$read_fn(rdr,_,opts,pending_forms){ |
| if(cljs.core.truth_(cljs.tools.reader.arg_env)){ |
| throw cljs.core.ex_info.call(null,"Nested #()s are not allowed",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"illegal-state","illegal-state",-1519851182)], null)); |
| } else { |
| } |
| |
| var arg_env_orig_val__871 = cljs.tools.reader.arg_env; |
| var arg_env_temp_val__872 = cljs.core.sorted_map.call(null); |
| (cljs.tools.reader.arg_env = arg_env_temp_val__872); |
| |
| try{var form = cljs.tools.reader.read_STAR_.call(null,(function (){var G__873 = rdr; |
| cljs.tools.reader.reader_types.unread.call(null,G__873,"("); |
| |
| return G__873; |
| })(),true,null,opts,pending_forms); |
| var rargs = cljs.core.rseq.call(null,cljs.tools.reader.arg_env); |
| var args = ((rargs)?(function (){var higharg = cljs.core.key.call(null,cljs.core.first.call(null,rargs)); |
| var args = (function (){var i = (1); |
| var args = cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY); |
| while(true){ |
| if((i > higharg)){ |
| return cljs.core.persistent_BANG_.call(null,args); |
| } else { |
| var G__874 = (i + (1)); |
| var G__875 = cljs.core.conj_BANG_.call(null,args,(function (){var or__4185__auto__ = cljs.core.get.call(null,cljs.tools.reader.arg_env,i); |
| if(cljs.core.truth_(or__4185__auto__)){ |
| return or__4185__auto__; |
| } else { |
| return cljs.tools.reader.garg.call(null,i); |
| } |
| })()); |
| i = G__874; |
| args = G__875; |
| continue; |
| } |
| break; |
| } |
| })(); |
| var args__$1 = (cljs.core.truth_(cljs.tools.reader.arg_env.call(null,(-1)))?cljs.core.conj.call(null,args,new cljs.core.Symbol(null,"&","&",-2144855648,null),cljs.tools.reader.arg_env.call(null,(-1))):args); |
| return args__$1; |
| })():cljs.core.PersistentVector.EMPTY); |
| return (new cljs.core.List(null,new cljs.core.Symbol(null,"fn*","fn*",-752876845,null),(new cljs.core.List(null,args,(new cljs.core.List(null,form,null,(1),null)),(2),null)),(3),null)); |
| }finally {(cljs.tools.reader.arg_env = arg_env_orig_val__871); |
| }}); |
| /** |
| * Registers an argument to the arg-env |
| */ |
| cljs.tools.reader.register_arg = (function cljs$tools$reader$register_arg(n){ |
| if(cljs.core.truth_(cljs.tools.reader.arg_env)){ |
| var temp__5733__auto__ = cljs.tools.reader.arg_env.call(null,n); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var ret = temp__5733__auto__; |
| return ret; |
| } else { |
| var g = cljs.tools.reader.garg.call(null,n); |
| (cljs.tools.reader.arg_env = cljs.core.assoc.call(null,cljs.tools.reader.arg_env,n,g)); |
| |
| return g; |
| } |
| } else { |
| throw cljs.core.ex_info.call(null,"Arg literal not in #()",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"illegal-state","illegal-state",-1519851182)], null)); |
| } |
| }); |
| cljs.tools.reader.read_arg = (function cljs$tools$reader$read_arg(rdr,pct,opts,pending_forms){ |
| if((cljs.tools.reader.arg_env == null)){ |
| return cljs.tools.reader.read_symbol.call(null,rdr,pct); |
| } else { |
| var ch = cljs.tools.reader.reader_types.peek_char.call(null,rdr); |
| if(((cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,ch)) || (cljs.tools.reader.macro_terminating_QMARK_.call(null,ch)) || ((ch == null)))){ |
| return cljs.tools.reader.register_arg.call(null,(1)); |
| } else { |
| if(cljs.core._EQ_.call(null,ch,"&")){ |
| cljs.tools.reader.reader_types.read_char.call(null,rdr); |
| |
| return cljs.tools.reader.register_arg.call(null,(-1)); |
| } else { |
| var n = cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms); |
| if((!(cljs.core.integer_QMARK_.call(null,n)))){ |
| throw cljs.core.ex_info.call(null,"Arg literal must be %, %& or %integer",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"illegal-state","illegal-state",-1519851182)], null)); |
| } else { |
| return cljs.tools.reader.register_arg.call(null,n); |
| } |
| |
| } |
| } |
| } |
| }); |
| cljs.tools.reader.gensym_env = null; |
| cljs.tools.reader.read_unquote = (function cljs$tools$reader$read_unquote(rdr,comma,opts,pending_forms){ |
| var temp__5733__auto__ = cljs.tools.reader.reader_types.peek_char.call(null,rdr); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var ch = temp__5733__auto__; |
| if(cljs.core._EQ_.call(null,"@",ch)){ |
| return cljs.tools.reader.wrapping_reader.call(null,new cljs.core.Symbol("clojure.core","unquote-splicing","clojure.core/unquote-splicing",-552003150,null)).call(null,(function (){var G__876 = rdr; |
| cljs.tools.reader.reader_types.read_char.call(null,G__876); |
| |
| return G__876; |
| })(),"@",opts,pending_forms); |
| } else { |
| return cljs.tools.reader.wrapping_reader.call(null,new cljs.core.Symbol("clojure.core","unquote","clojure.core/unquote",843087510,null)).call(null,rdr,"~",opts,pending_forms); |
| } |
| } else { |
| return null; |
| } |
| }); |
| cljs.tools.reader.unquote_splicing_QMARK_ = (function cljs$tools$reader$unquote_splicing_QMARK_(form){ |
| return ((cljs.core.seq_QMARK_.call(null,form)) && (cljs.core._EQ_.call(null,cljs.core.first.call(null,form),new cljs.core.Symbol("clojure.core","unquote-splicing","clojure.core/unquote-splicing",-552003150,null)))); |
| }); |
| cljs.tools.reader.unquote_QMARK_ = (function cljs$tools$reader$unquote_QMARK_(form){ |
| return ((cljs.core.seq_QMARK_.call(null,form)) && (cljs.core._EQ_.call(null,cljs.core.first.call(null,form),new cljs.core.Symbol("clojure.core","unquote","clojure.core/unquote",843087510,null)))); |
| }); |
| /** |
| * Expand a list by resolving its syntax quotes and unquotes |
| */ |
| cljs.tools.reader.expand_list = (function cljs$tools$reader$expand_list(s){ |
| var s__$1 = cljs.core.seq.call(null,s); |
| var r = cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY); |
| while(true){ |
| if(s__$1){ |
| var item = cljs.core.first.call(null,s__$1); |
| var ret = cljs.core.conj_BANG_.call(null,r,((cljs.tools.reader.unquote_QMARK_.call(null,item))?(new cljs.core.List(null,new cljs.core.Symbol("clojure.core","list","clojure.core/list",-1119203325,null),(new cljs.core.List(null,cljs.core.second.call(null,item),null,(1),null)),(2),null)):((cljs.tools.reader.unquote_splicing_QMARK_.call(null,item))?cljs.core.second.call(null,item):(new cljs.core.List(null,new cljs.core.Symbol("clojure.core","list","clojure.core/list",-1119203325,null),(new cljs.core.List(null,cljs.tools.reader.syntax_quote_STAR_.call(null,item),null,(1),null)),(2),null)) |
| ))); |
| var G__877 = cljs.core.next.call(null,s__$1); |
| var G__878 = ret; |
| s__$1 = G__877; |
| r = G__878; |
| continue; |
| } else { |
| return cljs.core.seq.call(null,cljs.core.persistent_BANG_.call(null,r)); |
| } |
| break; |
| } |
| }); |
| /** |
| * Flatten a map into a seq of alternate keys and values |
| */ |
| cljs.tools.reader.flatten_map = (function cljs$tools$reader$flatten_map(form){ |
| var s = cljs.core.seq.call(null,form); |
| var key_vals = cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY); |
| while(true){ |
| if(s){ |
| var e = cljs.core.first.call(null,s); |
| var G__879 = cljs.core.next.call(null,s); |
| var G__880 = cljs.core.conj_BANG_.call(null,cljs.core.conj_BANG_.call(null,key_vals,cljs.core.key.call(null,e)),cljs.core.val.call(null,e)); |
| s = G__879; |
| key_vals = G__880; |
| continue; |
| } else { |
| return cljs.core.seq.call(null,cljs.core.persistent_BANG_.call(null,key_vals)); |
| } |
| break; |
| } |
| }); |
| cljs.tools.reader.register_gensym = (function cljs$tools$reader$register_gensym(sym){ |
| if(cljs.core.not.call(null,cljs.tools.reader.gensym_env)){ |
| throw cljs.core.ex_info.call(null,"Gensym literal not in syntax-quote",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"illegal-state","illegal-state",-1519851182)], null)); |
| } else { |
| } |
| |
| var or__4185__auto__ = cljs.core.get.call(null,cljs.tools.reader.gensym_env,sym); |
| if(cljs.core.truth_(or__4185__auto__)){ |
| return or__4185__auto__; |
| } else { |
| var gs = cljs.core.symbol.call(null,[cljs.core.subs.call(null,cljs.core.name.call(null,sym),(0),(((cljs.core.name.call(null,sym)).length) - (1))),"__",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.impl.utils.next_id.call(null)),"__auto__"].join('')); |
| (cljs.tools.reader.gensym_env = cljs.core.assoc.call(null,cljs.tools.reader.gensym_env,sym,gs)); |
| |
| return gs; |
| } |
| }); |
| cljs.tools.reader.add_meta = (function cljs$tools$reader$add_meta(form,ret){ |
| if((((((!((form == null))))?(((((form.cljs$lang$protocol_mask$partition0$ & (262144))) || ((cljs.core.PROTOCOL_SENTINEL === form.cljs$core$IWithMeta$))))?true:false):false))?cljs.core.seq.call(null,cljs.core.dissoc.call(null,cljs.core.meta.call(null,form),new cljs.core.Keyword(null,"line","line",212345235),new cljs.core.Keyword(null,"column","column",2078222095),new cljs.core.Keyword(null,"end-line","end-line",1837326455),new cljs.core.Keyword(null,"end-column","end-column",1425389514),new cljs.core.Keyword(null,"file","file",-1269645878),new cljs.core.Keyword(null,"source","source",-433931539))):false)){ |
| return (new cljs.core.List(null,new cljs.core.Symbol("cljs.core","with-meta","cljs.core/with-meta",749126446,null),(new cljs.core.List(null,ret,(new cljs.core.List(null,cljs.tools.reader.syntax_quote_STAR_.call(null,cljs.core.meta.call(null,form)),null,(1),null)),(2),null)),(3),null)); |
| } else { |
| return ret; |
| } |
| }); |
| cljs.tools.reader.syntax_quote_coll = (function cljs$tools$reader$syntax_quote_coll(type,coll){ |
| var res = (new cljs.core.List(null,new cljs.core.Symbol("cljs.core","sequence","cljs.core/sequence",1908459032,null),(new cljs.core.List(null,cljs.core.cons.call(null,new cljs.core.Symbol("cljs.core","concat","cljs.core/concat",-1133584918,null),cljs.tools.reader.expand_list.call(null,coll)),null,(1),null)),(2),null)); |
| if(cljs.core.truth_(type)){ |
| return (new cljs.core.List(null,new cljs.core.Symbol("cljs.core","apply","cljs.core/apply",1757277831,null),(new cljs.core.List(null,type,(new cljs.core.List(null,res,null,(1),null)),(2),null)),(3),null)); |
| } else { |
| return res; |
| } |
| }); |
| /** |
| * Decide which map type to use, array-map if less than 16 elements |
| */ |
| cljs.tools.reader.map_func = (function cljs$tools$reader$map_func(coll){ |
| if((cljs.core.count.call(null,coll) >= (16))){ |
| return new cljs.core.Symbol("cljs.core","hash-map","cljs.core/hash-map",303385767,null); |
| } else { |
| return new cljs.core.Symbol("cljs.core","array-map","cljs.core/array-map",-1519210683,null); |
| } |
| }); |
| cljs.tools.reader.bool_QMARK_ = (function cljs$tools$reader$bool_QMARK_(x){ |
| return (((x instanceof Boolean)) || (x === true) || (x === false)); |
| }); |
| /** |
| * Resolve a symbol s into its fully qualified namespace version |
| */ |
| cljs.tools.reader.resolve_symbol = (function cljs$tools$reader$resolve_symbol(s){ |
| throw cljs.core.ex_info.call(null,"resolve-symbol is not implemented",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"sym","sym",-1444860305),s], null)); |
| }); |
| cljs.tools.reader.syntax_quote_STAR_ = (function cljs$tools$reader$syntax_quote_STAR_(form){ |
| return cljs.tools.reader.add_meta.call(null,form,((cljs.core.special_symbol_QMARK_.call(null,form))?(new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),(new cljs.core.List(null,form,null,(1),null)),(2),null)):(((form instanceof cljs.core.Symbol))?(new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),(new cljs.core.List(null,((((cljs.core.not.call(null,cljs.core.namespace.call(null,form))) && (goog.string.endsWith(cljs.core.name.call(null,form),"#"))))?cljs.tools.reader.register_gensym.call(null,form):(function (){var sym = cljs.core.str.cljs$core$IFn$_invoke$arity$1(form); |
| if(goog.string.endsWith(sym,".")){ |
| var csym = cljs.core.symbol.call(null,cljs.core.subs.call(null,sym,(0),(((sym).length) - (1)))); |
| return cljs.core.symbol.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.resolve_symbol.call(null,csym)),"."].join('')); |
| } else { |
| return cljs.tools.reader.resolve_symbol.call(null,form); |
| } |
| })()),null,(1),null)),(2),null)):((cljs.tools.reader.unquote_QMARK_.call(null,form))?cljs.core.second.call(null,form):((cljs.tools.reader.unquote_splicing_QMARK_.call(null,form))?(function(){throw cljs.core.ex_info.call(null,"unquote-splice not in list",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"illegal-state","illegal-state",-1519851182)], null))})():((cljs.core.coll_QMARK_.call(null,form))?(((((!((form == null))))?(((((form.cljs$lang$protocol_mask$partition0$ & (67108864))) || ((cljs.core.PROTOCOL_SENTINEL === form.cljs$core$IRecord$))))?true:false):false))?form:((cljs.core.map_QMARK_.call(null,form))?cljs.tools.reader.syntax_quote_coll.call(null,cljs.tools.reader.map_func.call(null,form),cljs.tools.reader.flatten_map.call(null,form)):((cljs.core.vector_QMARK_.call(null,form))?(new cljs.core.List(null,new cljs.core.Symbol("cljs.core","vec","cljs.core/vec",307622519,null),(new cljs.core.List(null,cljs.tools.reader.syntax_quote_coll.call(null,null,form),null,(1),null)),(2),null)):((cljs.core.set_QMARK_.call(null,form))?cljs.tools.reader.syntax_quote_coll.call(null,new cljs.core.Symbol("cljs.core","hash-set","cljs.core/hash-set",1130426749,null),form):((((cljs.core.seq_QMARK_.call(null,form)) || (cljs.core.list_QMARK_.call(null,form))))?(function (){var seq = cljs.core.seq.call(null,form); |
| if(seq){ |
| return cljs.tools.reader.syntax_quote_coll.call(null,null,seq); |
| } else { |
| return cljs.core.list(new cljs.core.Symbol("cljs.core","list","cljs.core/list",-1331406371,null)); |
| } |
| })():(function(){throw cljs.core.ex_info.call(null,"Unknown Collection type",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"unsupported-operation","unsupported-operation",1890540953)], null))})() |
| ))))):(((((form instanceof cljs.core.Keyword)) || (typeof form === 'number') || (typeof form === 'string') || ((form == null)) || (cljs.tools.reader.bool_QMARK_.call(null,form)) || ((form instanceof RegExp))))?form:(new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),(new cljs.core.List(null,form,null,(1),null)),(2),null)) |
| ))))))); |
| }); |
| cljs.tools.reader.read_syntax_quote = (function cljs$tools$reader$read_syntax_quote(rdr,backquote,opts,pending_forms){ |
| var gensym_env_orig_val__885 = cljs.tools.reader.gensym_env; |
| var gensym_env_temp_val__886 = cljs.core.PersistentArrayMap.EMPTY; |
| (cljs.tools.reader.gensym_env = gensym_env_temp_val__886); |
| |
| try{return cljs.tools.reader.syntax_quote_STAR_.call(null,cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)); |
| }finally {(cljs.tools.reader.gensym_env = gensym_env_orig_val__885); |
| }}); |
| cljs.tools.reader.read_namespaced_map = (function cljs$tools$reader$read_namespaced_map(rdr,_,opts,pending_forms){ |
| var token = cljs.tools.reader.read_token.call(null,rdr,new cljs.core.Keyword(null,"namespaced-map","namespaced-map",1235665380),cljs.tools.reader.reader_types.read_char.call(null,rdr)); |
| var temp__5733__auto__ = ((cljs.core._EQ_.call(null,token,":"))?cljs.core.ns_name.call(null,cljs.core._STAR_ns_STAR_):((cljs.core._EQ_.call(null,":",cljs.core.first.call(null,token)))?(function (){var G__887 = token; |
| var G__887__$1 = (((G__887 == null))?null:cljs.core.subs.call(null,G__887,(1))); |
| var G__887__$2 = (((G__887__$1 == null))?null:cljs.tools.reader.impl.commons.parse_symbol.call(null,G__887__$1)); |
| var G__887__$3 = (((G__887__$2 == null))?null:cljs.tools.reader.impl.utils.second_SINGLEQUOTE_.call(null,G__887__$2)); |
| var G__887__$4 = (((G__887__$3 == null))?null:cljs.core.symbol.call(null,G__887__$3)); |
| if((G__887__$4 == null)){ |
| return null; |
| } else { |
| return cljs.tools.reader.resolve_ns.call(null,G__887__$4); |
| } |
| })():(function (){var G__888 = token; |
| var G__888__$1 = (((G__888 == null))?null:cljs.tools.reader.impl.commons.parse_symbol.call(null,G__888)); |
| if((G__888__$1 == null)){ |
| return null; |
| } else { |
| return cljs.tools.reader.impl.utils.second_SINGLEQUOTE_.call(null,G__888__$1); |
| } |
| })() |
| )); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var ns = temp__5733__auto__; |
| var ch = cljs.tools.reader.impl.commons.read_past.call(null,cljs.tools.reader.impl.utils.whitespace_QMARK_,rdr); |
| if((ch === "{")){ |
| var items = cljs.tools.reader.read_delimited.call(null,new cljs.core.Keyword(null,"namespaced-map","namespaced-map",1235665380),"}",rdr,opts,pending_forms); |
| if(cljs.core.odd_QMARK_.call(null,cljs.core.count.call(null,items))){ |
| cljs.tools.reader.impl.errors.throw_odd_map.call(null,rdr,null,null,items); |
| } else { |
| } |
| |
| var keys = cljs.tools.reader.impl.utils.namespace_keys.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.take_nth.call(null,(2),items)); |
| var vals = cljs.core.take_nth.call(null,(2),cljs.core.rest.call(null,items)); |
| if(cljs.core._EQ_.call(null,cljs.core.count.call(null,cljs.core.set.call(null,keys)),cljs.core.count.call(null,keys))){ |
| } else { |
| cljs.tools.reader.impl.errors.throw_dup_keys.call(null,rdr,new cljs.core.Keyword(null,"namespaced-map","namespaced-map",1235665380),keys); |
| } |
| |
| return cljs.core.zipmap.call(null,keys,vals); |
| } else { |
| return cljs.tools.reader.impl.errors.throw_ns_map_no_map.call(null,rdr,token); |
| } |
| } else { |
| return cljs.tools.reader.impl.errors.throw_bad_ns.call(null,rdr,token); |
| } |
| }); |
| cljs.tools.reader.macros = (function cljs$tools$reader$macros(ch){ |
| var G__889 = ch; |
| switch (G__889) { |
| case "\"": |
| return cljs.tools.reader.read_string_STAR_; |
| |
| break; |
| case ":": |
| return cljs.tools.reader.read_keyword; |
| |
| break; |
| case ";": |
| return cljs.tools.reader.impl.commons.read_comment; |
| |
| break; |
| case "'": |
| return cljs.tools.reader.wrapping_reader.call(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null)); |
| |
| break; |
| case "@": |
| return cljs.tools.reader.wrapping_reader.call(null,new cljs.core.Symbol("clojure.core","deref","clojure.core/deref",188719157,null)); |
| |
| break; |
| case "^": |
| return cljs.tools.reader.read_meta; |
| |
| break; |
| case "`": |
| return cljs.tools.reader.read_syntax_quote; |
| |
| break; |
| case "~": |
| return cljs.tools.reader.read_unquote; |
| |
| break; |
| case "(": |
| return cljs.tools.reader.read_list; |
| |
| break; |
| case ")": |
| return cljs.tools.reader.read_unmatched_delimiter; |
| |
| break; |
| case "[": |
| return cljs.tools.reader.read_vector; |
| |
| break; |
| case "]": |
| return cljs.tools.reader.read_unmatched_delimiter; |
| |
| break; |
| case "{": |
| return cljs.tools.reader.read_map; |
| |
| break; |
| case "}": |
| return cljs.tools.reader.read_unmatched_delimiter; |
| |
| break; |
| case "\\": |
| return cljs.tools.reader.read_char_STAR_; |
| |
| break; |
| case "%": |
| return cljs.tools.reader.read_arg; |
| |
| break; |
| case "#": |
| return cljs.tools.reader.read_dispatch; |
| |
| break; |
| default: |
| return null; |
| |
| } |
| }); |
| cljs.tools.reader.dispatch_macros = (function cljs$tools$reader$dispatch_macros(ch){ |
| var G__891 = ch; |
| switch (G__891) { |
| case "^": |
| return cljs.tools.reader.read_meta; |
| |
| break; |
| case "'": |
| return cljs.tools.reader.wrapping_reader.call(null,new cljs.core.Symbol(null,"var","var",870848730,null)); |
| |
| break; |
| case "(": |
| return cljs.tools.reader.read_fn; |
| |
| break; |
| case "{": |
| return cljs.tools.reader.read_set; |
| |
| break; |
| case "<": |
| return cljs.tools.reader.impl.commons.throwing_reader.call(null,"Unreadable form"); |
| |
| break; |
| case "=": |
| return cljs.tools.reader.impl.commons.throwing_reader.call(null,"read-eval not supported"); |
| |
| break; |
| case "\"": |
| return cljs.tools.reader.read_regex; |
| |
| break; |
| case "!": |
| return cljs.tools.reader.impl.commons.read_comment; |
| |
| break; |
| case "_": |
| return cljs.tools.reader.read_discard; |
| |
| break; |
| case "?": |
| return cljs.tools.reader.read_cond; |
| |
| break; |
| case ":": |
| return cljs.tools.reader.read_namespaced_map; |
| |
| break; |
| case "#": |
| return cljs.tools.reader.read_symbolic_value; |
| |
| break; |
| default: |
| return null; |
| |
| } |
| }); |
| cljs.tools.reader.read_tagged = (function cljs$tools$reader$read_tagged(rdr,initch,opts,pending_forms){ |
| var tag = cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms); |
| if((!((tag instanceof cljs.core.Symbol)))){ |
| cljs.tools.reader.impl.errors.throw_bad_reader_tag.call(null,rdr,tag); |
| } else { |
| } |
| |
| if(cljs.core.truth_(cljs.tools.reader._STAR_suppress_read_STAR_)){ |
| return cljs.core.tagged_literal.call(null,tag,cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)); |
| } else { |
| var temp__5733__auto__ = (function (){var or__4185__auto__ = cljs.tools.reader._STAR_data_readers_STAR_.call(null,tag); |
| if(cljs.core.truth_(or__4185__auto__)){ |
| return or__4185__auto__; |
| } else { |
| return cljs.tools.reader.default_data_readers.call(null,tag); |
| } |
| })(); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var f = temp__5733__auto__; |
| return f.call(null,cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)); |
| } else { |
| var temp__5733__auto____$1 = cljs.tools.reader._STAR_default_data_reader_fn_STAR_; |
| if(cljs.core.truth_(temp__5733__auto____$1)){ |
| var f = temp__5733__auto____$1; |
| return f.call(null,tag,cljs.tools.reader.read_STAR_.call(null,rdr,true,null,opts,pending_forms)); |
| } else { |
| return cljs.tools.reader.impl.errors.throw_unknown_reader_tag.call(null,rdr,tag); |
| } |
| } |
| } |
| }); |
| /** |
| * Map from reader tag symbols to data reader Vars. |
| * Reader tags without namespace qualifiers are reserved for Clojure. |
| * This light version of tools.reader has no implementation for default |
| * reader tags such as #inst and #uuid. |
| */ |
| cljs.tools.reader._STAR_data_readers_STAR_ = cljs.core.PersistentArrayMap.EMPTY; |
| /** |
| * When no data reader is found for a tag and *default-data-reader-fn* |
| * is non-nil, it will be called with two arguments, the tag and the value. |
| * If *default-data-reader-fn* is nil (the default value), an exception |
| * will be thrown for the unknown tag. |
| */ |
| cljs.tools.reader._STAR_default_data_reader_fn_STAR_ = null; |
| cljs.tools.reader._STAR_suppress_read_STAR_ = false; |
| /** |
| * Default map of data reader functions provided by Clojure. |
| * May be overridden by binding *data-readers* |
| */ |
| cljs.tools.reader.default_data_readers = cljs.core.PersistentArrayMap.EMPTY; |
| cljs.tools.reader.read_STAR__internal = (function cljs$tools$reader$read_STAR__internal(reader,eof_error_QMARK_,sentinel,return_on,opts,pending_forms){ |
| while(true){ |
| if(((cljs.tools.reader.reader_types.source_logging_reader_QMARK_.call(null,reader)) && ((!(cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,cljs.tools.reader.reader_types.peek_char.call(null,reader))))))){ |
| return cljs.tools.reader.reader_types.log_source_STAR_.call(null,reader,(function (){ |
| while(true){ |
| if((!(goog.array.isEmpty(pending_forms)))){ |
| var form = (pending_forms[(0)]); |
| goog.array.removeAt(pending_forms,(0)); |
| |
| return form; |
| } else { |
| var ch = cljs.tools.reader.reader_types.read_char.call(null,reader); |
| if(cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,ch)){ |
| continue; |
| } else { |
| if((ch == null)){ |
| if(eof_error_QMARK_){ |
| return cljs.tools.reader.impl.errors.throw_eof_error.call(null,reader,null); |
| } else { |
| return sentinel; |
| } |
| } else { |
| if((ch === return_on)){ |
| return cljs.tools.reader.READ_FINISHED; |
| } else { |
| if(cljs.tools.reader.impl.commons.number_literal_QMARK_.call(null,reader,ch)){ |
| return cljs.tools.reader.read_number.call(null,reader,ch); |
| } else { |
| var f = cljs.tools.reader.macros.call(null,ch); |
| if((!((f == null)))){ |
| var res = f.call(null,reader,ch,opts,pending_forms); |
| if((res === reader)){ |
| continue; |
| } else { |
| return res; |
| } |
| } else { |
| return cljs.tools.reader.read_symbol.call(null,reader,ch); |
| } |
| |
| } |
| } |
| } |
| } |
| } |
| break; |
| } |
| })); |
| } else { |
| if((!(goog.array.isEmpty(pending_forms)))){ |
| var form = (pending_forms[(0)]); |
| goog.array.removeAt(pending_forms,(0)); |
| |
| return form; |
| } else { |
| var ch = cljs.tools.reader.reader_types.read_char.call(null,reader); |
| if(cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,ch)){ |
| continue; |
| } else { |
| if((ch == null)){ |
| if(eof_error_QMARK_){ |
| return cljs.tools.reader.impl.errors.throw_eof_error.call(null,reader,null); |
| } else { |
| return sentinel; |
| } |
| } else { |
| if((ch === return_on)){ |
| return cljs.tools.reader.READ_FINISHED; |
| } else { |
| if(cljs.tools.reader.impl.commons.number_literal_QMARK_.call(null,reader,ch)){ |
| return cljs.tools.reader.read_number.call(null,reader,ch); |
| } else { |
| var f = cljs.tools.reader.macros.call(null,ch); |
| if((!((f == null)))){ |
| var res = f.call(null,reader,ch,opts,pending_forms); |
| if((res === reader)){ |
| continue; |
| } else { |
| return res; |
| } |
| } else { |
| return cljs.tools.reader.read_symbol.call(null,reader,ch); |
| } |
| |
| } |
| } |
| } |
| } |
| } |
| } |
| break; |
| } |
| }); |
| cljs.tools.reader.read_STAR_ = (function cljs$tools$reader$read_STAR_(var_args){ |
| var G__894 = arguments.length; |
| switch (G__894) { |
| case 5: |
| return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)])); |
| |
| break; |
| case 6: |
| return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)])); |
| |
| break; |
| default: |
| throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); |
| |
| } |
| }); |
| |
| (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5 = (function (reader,eof_error_QMARK_,sentinel,opts,pending_forms){ |
| return cljs.tools.reader.read_STAR_.call(null,reader,eof_error_QMARK_,sentinel,null,opts,pending_forms); |
| })); |
| |
| (cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6 = (function (reader,eof_error_QMARK_,sentinel,return_on,opts,pending_forms){ |
| try{return cljs.tools.reader.read_STAR__internal.call(null,reader,eof_error_QMARK_,sentinel,return_on,opts,pending_forms); |
| }catch (e895){if((e895 instanceof Error)){ |
| var e = e895; |
| if(cljs.tools.reader.impl.utils.ex_info_QMARK_.call(null,e)){ |
| var d = cljs.core.ex_data.call(null,e); |
| if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"reader-exception","reader-exception",-1938323098),new cljs.core.Keyword(null,"type","type",1174270348).cljs$core$IFn$_invoke$arity$1(d))){ |
| throw e; |
| } else { |
| throw cljs.core.ex_info.call(null,e.message,cljs.core.merge.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"reader-exception","reader-exception",-1938323098)], null),d,((cljs.tools.reader.reader_types.indexing_reader_QMARK_.call(null,reader))?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"line","line",212345235),cljs.tools.reader.reader_types.get_line_number.call(null,reader),new cljs.core.Keyword(null,"column","column",2078222095),cljs.tools.reader.reader_types.get_column_number.call(null,reader),new cljs.core.Keyword(null,"file","file",-1269645878),cljs.tools.reader.reader_types.get_file_name.call(null,reader)], null):null)),e); |
| } |
| } else { |
| throw cljs.core.ex_info.call(null,e.message,cljs.core.merge.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"reader-exception","reader-exception",-1938323098)], null),((cljs.tools.reader.reader_types.indexing_reader_QMARK_.call(null,reader))?new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"line","line",212345235),cljs.tools.reader.reader_types.get_line_number.call(null,reader),new cljs.core.Keyword(null,"column","column",2078222095),cljs.tools.reader.reader_types.get_column_number.call(null,reader),new cljs.core.Keyword(null,"file","file",-1269645878),cljs.tools.reader.reader_types.get_file_name.call(null,reader)], null):null)),e); |
| } |
| } else { |
| throw e895; |
| |
| } |
| }})); |
| |
| (cljs.tools.reader.read_STAR_.cljs$lang$maxFixedArity = 6); |
| |
| /** |
| * Reads the first object from an IPushbackReader. |
| * Returns the object read. If EOF, throws if eof-error? is true. |
| * Otherwise returns sentinel. If no stream is provided, *in* will be used. |
| * |
| * Opts is a persistent map with valid keys: |
| * :read-cond - :allow to process reader conditionals, or |
| * :preserve to keep all branches |
| * :features - persistent set of feature keywords for reader conditionals |
| * :eof - on eof, return value unless :eofthrow, then throw. |
| * if not specified, will throw |
| * |
| * To read data structures only, use clojure.tools.reader.edn/read |
| * |
| * Note that the function signature of clojure.tools.reader/read and |
| * clojure.tools.reader.edn/read is not the same for eof-handling |
| */ |
| cljs.tools.reader.read = (function cljs$tools$reader$read(var_args){ |
| var G__898 = arguments.length; |
| switch (G__898) { |
| case 1: |
| return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); |
| |
| break; |
| case 2: |
| return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); |
| |
| break; |
| case 3: |
| return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); |
| |
| break; |
| default: |
| throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); |
| |
| } |
| }); |
| |
| (cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$1 = (function (reader){ |
| return cljs.tools.reader.read.call(null,reader,true,null); |
| })); |
| |
| (cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2 = (function (p__899,reader){ |
| var map__900 = p__899; |
| var map__900__$1 = (((((!((map__900 == null))))?(((((map__900.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__900.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__900):map__900); |
| var opts = map__900__$1; |
| var eof = cljs.core.get.call(null,map__900__$1,new cljs.core.Keyword(null,"eof","eof",-489063237),new cljs.core.Keyword(null,"eofthrow","eofthrow",-334166531)); |
| return cljs.tools.reader.read_STAR_.call(null,reader,cljs.core._EQ_.call(null,eof,new cljs.core.Keyword(null,"eofthrow","eofthrow",-334166531)),eof,null,opts,cljs.core.to_array.call(null,cljs.core.PersistentVector.EMPTY)); |
| })); |
| |
| (cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3 = (function (reader,eof_error_QMARK_,sentinel){ |
| return cljs.tools.reader.read_STAR_.call(null,reader,eof_error_QMARK_,sentinel,null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.to_array.call(null,cljs.core.PersistentVector.EMPTY)); |
| })); |
| |
| (cljs.tools.reader.read.cljs$lang$maxFixedArity = 3); |
| |
| /** |
| * Reads one object from the string s. |
| * Returns nil when s is nil or empty. |
| * |
| * To read data structures only, use clojure.tools.reader.edn/read-string |
| * |
| * Note that the function signature of clojure.tools.reader/read-string and |
| * clojure.tools.reader.edn/read-string is not the same for eof-handling |
| */ |
| cljs.tools.reader.read_string = (function cljs$tools$reader$read_string(var_args){ |
| var G__904 = arguments.length; |
| switch (G__904) { |
| case 1: |
| return cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); |
| |
| break; |
| case 2: |
| return cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); |
| |
| break; |
| default: |
| throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); |
| |
| } |
| }); |
| |
| (cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$1 = (function (s){ |
| return cljs.tools.reader.read_string.call(null,cljs.core.PersistentArrayMap.EMPTY,s); |
| })); |
| |
| (cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2 = (function (opts,s){ |
| if(cljs.core.truth_((function (){var and__4174__auto__ = s; |
| if(cljs.core.truth_(and__4174__auto__)){ |
| return (!((s === ""))); |
| } else { |
| return and__4174__auto__; |
| } |
| })())){ |
| return cljs.tools.reader.read.call(null,opts,cljs.tools.reader.reader_types.string_push_back_reader.call(null,s)); |
| } else { |
| return null; |
| } |
| })); |
| |
| (cljs.tools.reader.read_string.cljs$lang$maxFixedArity = 2); |
| |
| /** |
| * Like read, and taking the same args. reader must be a SourceLoggingPushbackReader. |
| * Returns a vector containing the object read and the (whitespace-trimmed) string read. |
| */ |
| cljs.tools.reader.read_PLUS_string = (function cljs$tools$reader$read_PLUS_string(var_args){ |
| var G__907 = arguments.length; |
| switch (G__907) { |
| case 1: |
| return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); |
| |
| break; |
| case 3: |
| return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); |
| |
| break; |
| case 2: |
| return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); |
| |
| break; |
| default: |
| throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); |
| |
| } |
| }); |
| |
| (cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$1 = (function (stream){ |
| return cljs.tools.reader.read_PLUS_string.call(null,stream,true,null); |
| })); |
| |
| (cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3 = (function (stream,eof_error_QMARK_,eof_value){ |
| var buf = (function (reader){ |
| return cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"buffer","buffer",617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,stream.frames))); |
| }); |
| var offset = ((buf.call(null,stream)).length); |
| var o = ((((cljs.tools.reader.reader_types.source_logging_reader_QMARK_.call(null,stream)) && ((!(cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,cljs.tools.reader.reader_types.peek_char.call(null,stream)))))))?cljs.tools.reader.reader_types.log_source_STAR_.call(null,stream,(function (){ |
| return cljs.tools.reader.read.call(null,stream,eof_error_QMARK_,eof_value); |
| })):cljs.tools.reader.read.call(null,stream,eof_error_QMARK_,eof_value)); |
| var s = cljs.core.subs.call(null,buf.call(null,stream),offset).trim(); |
| return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [o,s], null); |
| })); |
| |
| (cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$2 = (function (opts,stream){ |
| var buf = (function (reader){ |
| return cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"buffer","buffer",617295198).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,stream.frames))); |
| }); |
| var offset = ((buf.call(null,stream)).length); |
| var o = ((((cljs.tools.reader.reader_types.source_logging_reader_QMARK_.call(null,stream)) && ((!(cljs.tools.reader.impl.utils.whitespace_QMARK_.call(null,cljs.tools.reader.reader_types.peek_char.call(null,stream)))))))?cljs.tools.reader.reader_types.log_source_STAR_.call(null,stream,(function (){ |
| return cljs.tools.reader.read.call(null,opts,stream); |
| })):cljs.tools.reader.read.call(null,opts,stream)); |
| var s = cljs.core.subs.call(null,buf.call(null,stream),offset).trim(); |
| return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [o,s], null); |
| })); |
| |
| (cljs.tools.reader.read_PLUS_string.cljs$lang$maxFixedArity = 3); |
| |
| |
| //# sourceMappingURL=reader.js.map |