picolisp

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/picolisp.git/
Log | Files | Refs | README | LICENSE

commit 6d3ef2e1af24e486c7aca4f5535f37a3e995beee
parent 06b224de9347a530209448d01d2874104dae2797
Author: Commit-Bot <unknown>
Date:   Fri, 12 Nov 2010 09:01:24 +0000

Automatic commit from picoLisp.tgz, From: Fri, 12 Nov 2010 09:01:24 GMT
Diffstat:
Mersatz/PicoLisp.java | 1158++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mersatz/fun.src | 13++++++++++++-
Mersatz/picolisp.jar | 0
3 files changed, 596 insertions(+), 575 deletions(-)

diff --git a/ersatz/PicoLisp.java b/ersatz/PicoLisp.java @@ -182,199 +182,200 @@ public class PicoLisp { mkSymbol(new Number("116"), "====", Intern); mkSymbol(new Number("117"), "box?", Intern); mkSymbol(new Number("118"), "str?", Intern); - mkSymbol(new Number("119"), "zap", Intern); - mkSymbol(new Number("120"), "chop", Intern); - mkSymbol(new Number("121"), "pack", Intern); - mkSymbol(new Number("122"), "glue", Intern); - mkSymbol(new Number("123"), "text", Intern); - mkSymbol(new Number("124"), "pre?", Intern); - mkSymbol(new Number("125"), "sub?", Intern); - mkSymbol(new Number("126"), "val", Intern); - mkSymbol(new Number("127"), "set", Intern); - mkSymbol(new Number("128"), "setq", Intern); - mkSymbol(new Number("129"), "xchg", Intern); - mkSymbol(new Number("130"), "on", Intern); - mkSymbol(new Number("131"), "off", Intern); - mkSymbol(new Number("132"), "onOff", Intern); - mkSymbol(new Number("133"), "zero", Intern); - mkSymbol(new Number("134"), "one", Intern); - mkSymbol(new Number("135"), "default", Intern); - mkSymbol(new Number("136"), "push", Intern); - mkSymbol(new Number("137"), "push1", Intern); - mkSymbol(new Number("138"), "pop", Intern); - mkSymbol(new Number("139"), "cut", Intern); - mkSymbol(new Number("140"), "del", Intern); - mkSymbol(new Number("141"), "queue", Intern); - mkSymbol(new Number("142"), "fifo", Intern); - mkSymbol(new Number("143"), "idx", Intern); - mkSymbol(new Number("144"), "lup", Intern); - mkSymbol(new Number("145"), "put", Intern); - mkSymbol(new Number("146"), "get", Intern); - mkSymbol(new Number("147"), "prop", Intern); - mkSymbol(new Number("148"), ";", Intern); - mkSymbol(new Number("149"), "=:", Intern); - mkSymbol(new Number("150"), ":", Intern); - mkSymbol(new Number("151"), "::", Intern); - mkSymbol(new Number("152"), "putl", Intern); - mkSymbol(new Number("153"), "getl", Intern); - mkSymbol(new Number("154"), "meta", Intern); - mkSymbol(new Number("155"), "low?", Intern); - mkSymbol(new Number("156"), "upp?", Intern); - mkSymbol(new Number("157"), "lowc", Intern); - mkSymbol(new Number("158"), "uppc", Intern); - mkSymbol(new Number("159"), "fold", Intern); - mkSymbol(new Number("160"), "car", Intern); - mkSymbol(new Number("161"), "cdr", Intern); - mkSymbol(new Number("162"), "caar", Intern); - mkSymbol(new Number("163"), "cadr", Intern); - mkSymbol(new Number("164"), "cdar", Intern); - mkSymbol(new Number("165"), "cddr", Intern); - mkSymbol(new Number("166"), "caaar", Intern); - mkSymbol(new Number("167"), "caadr", Intern); - mkSymbol(new Number("168"), "cadar", Intern); - mkSymbol(new Number("169"), "caddr", Intern); - mkSymbol(new Number("170"), "cdaar", Intern); - mkSymbol(new Number("171"), "cdadr", Intern); - mkSymbol(new Number("172"), "cddar", Intern); - mkSymbol(new Number("173"), "cdddr", Intern); - mkSymbol(new Number("174"), "caaaar", Intern); - mkSymbol(new Number("175"), "caaadr", Intern); - mkSymbol(new Number("176"), "caadar", Intern); - mkSymbol(new Number("177"), "caaddr", Intern); - mkSymbol(new Number("178"), "cadaar", Intern); - mkSymbol(new Number("179"), "cadadr", Intern); - mkSymbol(new Number("180"), "caddar", Intern); - mkSymbol(new Number("181"), "cadddr", Intern); - mkSymbol(new Number("182"), "cdaaar", Intern); - mkSymbol(new Number("183"), "cdaadr", Intern); - mkSymbol(new Number("184"), "cdadar", Intern); - mkSymbol(new Number("185"), "cdaddr", Intern); - mkSymbol(new Number("186"), "cddaar", Intern); - mkSymbol(new Number("187"), "cddadr", Intern); - mkSymbol(new Number("188"), "cdddar", Intern); - mkSymbol(new Number("189"), "cddddr", Intern); - mkSymbol(new Number("190"), "nth", Intern); - mkSymbol(new Number("191"), "con", Intern); - mkSymbol(new Number("192"), "cons", Intern); - mkSymbol(new Number("193"), "conc", Intern); - mkSymbol(new Number("194"), "circ", Intern); - mkSymbol(new Number("195"), "rot", Intern); - mkSymbol(new Number("196"), "list", Intern); - mkSymbol(new Number("197"), "need", Intern); - mkSymbol(new Number("198"), "range", Intern); - mkSymbol(new Number("199"), "full", Intern); - mkSymbol(new Number("200"), "make", Intern); - mkSymbol(new Number("201"), "made", Intern); - mkSymbol(new Number("202"), "chain", Intern); - mkSymbol(new Number("203"), "link", Intern); - mkSymbol(new Number("204"), "yoke", Intern); - mkSymbol(new Number("205"), "copy", Intern); - mkSymbol(new Number("206"), "mix", Intern); - mkSymbol(new Number("207"), "append", Intern); - mkSymbol(new Number("208"), "delete", Intern); - mkSymbol(new Number("209"), "delq", Intern); - mkSymbol(new Number("210"), "replace", Intern); - mkSymbol(new Number("211"), "strip", Intern); - mkSymbol(new Number("212"), "split", Intern); - mkSymbol(new Number("213"), "reverse", Intern); - mkSymbol(new Number("214"), "flip", Intern); - mkSymbol(new Number("215"), "trim", Intern); - mkSymbol(new Number("216"), "clip", Intern); - mkSymbol(new Number("217"), "head", Intern); - mkSymbol(new Number("218"), "tail", Intern); - mkSymbol(new Number("219"), "stem", Intern); - mkSymbol(new Number("220"), "fin", Intern); - mkSymbol(new Number("221"), "last", Intern); - mkSymbol(new Number("222"), "==", Intern); - mkSymbol(new Number("223"), "n==", Intern); - mkSymbol(new Number("224"), "=", Intern); - mkSymbol(new Number("225"), "<>", Intern); - mkSymbol(new Number("226"), "=0", Intern); - mkSymbol(new Number("227"), "=T", Intern); - mkSymbol(new Number("228"), "n0", Intern); - mkSymbol(new Number("229"), "nT", Intern); - mkSymbol(new Number("230"), "<", Intern); - mkSymbol(new Number("231"), "<=", Intern); - mkSymbol(new Number("232"), ">", Intern); - mkSymbol(new Number("233"), ">=", Intern); - mkSymbol(new Number("234"), "max", Intern); - mkSymbol(new Number("235"), "min", Intern); - mkSymbol(new Number("236"), "atom", Intern); - mkSymbol(new Number("237"), "pair", Intern); - mkSymbol(new Number("238"), "lst?", Intern); - mkSymbol(new Number("239"), "num?", Intern); - mkSymbol(new Number("240"), "sym?", Intern); - mkSymbol(new Number("241"), "flg?", Intern); - mkSymbol(new Number("242"), "member", Intern); - mkSymbol(new Number("243"), "memq", Intern); - mkSymbol(new Number("244"), "mmeq", Intern); - mkSymbol(new Number("245"), "sect", Intern); - mkSymbol(new Number("246"), "diff", Intern); - mkSymbol(new Number("247"), "index", Intern); - mkSymbol(new Number("248"), "offset", Intern); - mkSymbol(new Number("249"), "length", Intern); - mkSymbol(new Number("250"), "size", Intern); - mkSymbol(new Number("251"), "assoc", Intern); - mkSymbol(new Number("252"), "asoq", Intern); - mkSymbol(new Number("253"), "rank", Intern); - mkSymbol(new Number("254"), "match", Intern); - mkSymbol(new Number("255"), "fill", Intern); - mkSymbol(new Number("256"), "prove", Intern); - mkSymbol(new Number("257"), "->", Intern); - mkSymbol(new Number("258"), "unify", Intern); - mkSymbol(new Number("259"), "sort", Intern); - mkSymbol(new Number("260"), "format", Intern); - mkSymbol(new Number("261"), "+", Intern); - mkSymbol(new Number("262"), "-", Intern); - mkSymbol(new Number("263"), "inc", Intern); - mkSymbol(new Number("264"), "dec", Intern); - mkSymbol(new Number("265"), "*", Intern); - mkSymbol(new Number("266"), "*/", Intern); - mkSymbol(new Number("267"), "/", Intern); - mkSymbol(new Number("268"), "%", Intern); - mkSymbol(new Number("269"), ">>", Intern); - mkSymbol(new Number("270"), "lt0", Intern); - mkSymbol(new Number("271"), "ge0", Intern); - mkSymbol(new Number("272"), "gt0", Intern); - mkSymbol(new Number("273"), "abs", Intern); - mkSymbol(new Number("274"), "bit?", Intern); - mkSymbol(new Number("275"), "&", Intern); - mkSymbol(new Number("276"), "|", Intern); - mkSymbol(new Number("277"), "x|", Intern); - mkSymbol(new Number("278"), "seed", Intern); - mkSymbol(new Number("279"), "rand", Intern); - mkSymbol(new Number("280"), "path", Intern); - mkSymbol(new Number("281"), "read", Intern); - mkSymbol(new Number("282"), "wait", Intern); - mkSymbol(new Number("283"), "poll", Intern); - mkSymbol(new Number("284"), "peek", Intern); - mkSymbol(new Number("285"), "char", Intern); - mkSymbol(new Number("286"), "skip", Intern); - mkSymbol(new Number("287"), "eol", Intern); - mkSymbol(new Number("288"), "eof", Intern); - mkSymbol(new Number("289"), "from", Intern); - mkSymbol(new Number("290"), "till", Intern); - mkSymbol(new Number("291"), "line", Intern); - mkSymbol(new Number("292"), "any", Intern); - mkSymbol(new Number("293"), "sym", Intern); - mkSymbol(new Number("294"), "str", Intern); - mkSymbol(new Number("295"), "load", Intern); - mkSymbol(new Number("296"), "in", Intern); - mkSymbol(new Number("297"), "out", Intern); - mkSymbol(new Number("298"), "open", Intern); - mkSymbol(new Number("299"), "close", Intern); - mkSymbol(new Number("300"), "echo", Intern); - mkSymbol(new Number("301"), "prin", Intern); - mkSymbol(new Number("302"), "prinl", Intern); - mkSymbol(new Number("303"), "space", Intern); - mkSymbol(new Number("304"), "print", Intern); - mkSymbol(new Number("305"), "printsp", Intern); - mkSymbol(new Number("306"), "println", Intern); - mkSymbol(new Number("307"), "flush", Intern); - mkSymbol(new Number("308"), "port", Intern); - mkSymbol(new Number("309"), "accept", Intern); - mkSymbol(new Number("310"), "connect", Intern); - MaxFun = 310; + mkSymbol(new Number("119"), "ext?", Intern); + mkSymbol(new Number("120"), "zap", Intern); + mkSymbol(new Number("121"), "chop", Intern); + mkSymbol(new Number("122"), "pack", Intern); + mkSymbol(new Number("123"), "glue", Intern); + mkSymbol(new Number("124"), "text", Intern); + mkSymbol(new Number("125"), "pre?", Intern); + mkSymbol(new Number("126"), "sub?", Intern); + mkSymbol(new Number("127"), "val", Intern); + mkSymbol(new Number("128"), "set", Intern); + mkSymbol(new Number("129"), "setq", Intern); + mkSymbol(new Number("130"), "xchg", Intern); + mkSymbol(new Number("131"), "on", Intern); + mkSymbol(new Number("132"), "off", Intern); + mkSymbol(new Number("133"), "onOff", Intern); + mkSymbol(new Number("134"), "zero", Intern); + mkSymbol(new Number("135"), "one", Intern); + mkSymbol(new Number("136"), "default", Intern); + mkSymbol(new Number("137"), "push", Intern); + mkSymbol(new Number("138"), "push1", Intern); + mkSymbol(new Number("139"), "pop", Intern); + mkSymbol(new Number("140"), "cut", Intern); + mkSymbol(new Number("141"), "del", Intern); + mkSymbol(new Number("142"), "queue", Intern); + mkSymbol(new Number("143"), "fifo", Intern); + mkSymbol(new Number("144"), "idx", Intern); + mkSymbol(new Number("145"), "lup", Intern); + mkSymbol(new Number("146"), "put", Intern); + mkSymbol(new Number("147"), "get", Intern); + mkSymbol(new Number("148"), "prop", Intern); + mkSymbol(new Number("149"), ";", Intern); + mkSymbol(new Number("150"), "=:", Intern); + mkSymbol(new Number("151"), ":", Intern); + mkSymbol(new Number("152"), "::", Intern); + mkSymbol(new Number("153"), "putl", Intern); + mkSymbol(new Number("154"), "getl", Intern); + mkSymbol(new Number("155"), "meta", Intern); + mkSymbol(new Number("156"), "low?", Intern); + mkSymbol(new Number("157"), "upp?", Intern); + mkSymbol(new Number("158"), "lowc", Intern); + mkSymbol(new Number("159"), "uppc", Intern); + mkSymbol(new Number("160"), "fold", Intern); + mkSymbol(new Number("161"), "car", Intern); + mkSymbol(new Number("162"), "cdr", Intern); + mkSymbol(new Number("163"), "caar", Intern); + mkSymbol(new Number("164"), "cadr", Intern); + mkSymbol(new Number("165"), "cdar", Intern); + mkSymbol(new Number("166"), "cddr", Intern); + mkSymbol(new Number("167"), "caaar", Intern); + mkSymbol(new Number("168"), "caadr", Intern); + mkSymbol(new Number("169"), "cadar", Intern); + mkSymbol(new Number("170"), "caddr", Intern); + mkSymbol(new Number("171"), "cdaar", Intern); + mkSymbol(new Number("172"), "cdadr", Intern); + mkSymbol(new Number("173"), "cddar", Intern); + mkSymbol(new Number("174"), "cdddr", Intern); + mkSymbol(new Number("175"), "caaaar", Intern); + mkSymbol(new Number("176"), "caaadr", Intern); + mkSymbol(new Number("177"), "caadar", Intern); + mkSymbol(new Number("178"), "caaddr", Intern); + mkSymbol(new Number("179"), "cadaar", Intern); + mkSymbol(new Number("180"), "cadadr", Intern); + mkSymbol(new Number("181"), "caddar", Intern); + mkSymbol(new Number("182"), "cadddr", Intern); + mkSymbol(new Number("183"), "cdaaar", Intern); + mkSymbol(new Number("184"), "cdaadr", Intern); + mkSymbol(new Number("185"), "cdadar", Intern); + mkSymbol(new Number("186"), "cdaddr", Intern); + mkSymbol(new Number("187"), "cddaar", Intern); + mkSymbol(new Number("188"), "cddadr", Intern); + mkSymbol(new Number("189"), "cdddar", Intern); + mkSymbol(new Number("190"), "cddddr", Intern); + mkSymbol(new Number("191"), "nth", Intern); + mkSymbol(new Number("192"), "con", Intern); + mkSymbol(new Number("193"), "cons", Intern); + mkSymbol(new Number("194"), "conc", Intern); + mkSymbol(new Number("195"), "circ", Intern); + mkSymbol(new Number("196"), "rot", Intern); + mkSymbol(new Number("197"), "list", Intern); + mkSymbol(new Number("198"), "need", Intern); + mkSymbol(new Number("199"), "range", Intern); + mkSymbol(new Number("200"), "full", Intern); + mkSymbol(new Number("201"), "make", Intern); + mkSymbol(new Number("202"), "made", Intern); + mkSymbol(new Number("203"), "chain", Intern); + mkSymbol(new Number("204"), "link", Intern); + mkSymbol(new Number("205"), "yoke", Intern); + mkSymbol(new Number("206"), "copy", Intern); + mkSymbol(new Number("207"), "mix", Intern); + mkSymbol(new Number("208"), "append", Intern); + mkSymbol(new Number("209"), "delete", Intern); + mkSymbol(new Number("210"), "delq", Intern); + mkSymbol(new Number("211"), "replace", Intern); + mkSymbol(new Number("212"), "strip", Intern); + mkSymbol(new Number("213"), "split", Intern); + mkSymbol(new Number("214"), "reverse", Intern); + mkSymbol(new Number("215"), "flip", Intern); + mkSymbol(new Number("216"), "trim", Intern); + mkSymbol(new Number("217"), "clip", Intern); + mkSymbol(new Number("218"), "head", Intern); + mkSymbol(new Number("219"), "tail", Intern); + mkSymbol(new Number("220"), "stem", Intern); + mkSymbol(new Number("221"), "fin", Intern); + mkSymbol(new Number("222"), "last", Intern); + mkSymbol(new Number("223"), "==", Intern); + mkSymbol(new Number("224"), "n==", Intern); + mkSymbol(new Number("225"), "=", Intern); + mkSymbol(new Number("226"), "<>", Intern); + mkSymbol(new Number("227"), "=0", Intern); + mkSymbol(new Number("228"), "=T", Intern); + mkSymbol(new Number("229"), "n0", Intern); + mkSymbol(new Number("230"), "nT", Intern); + mkSymbol(new Number("231"), "<", Intern); + mkSymbol(new Number("232"), "<=", Intern); + mkSymbol(new Number("233"), ">", Intern); + mkSymbol(new Number("234"), ">=", Intern); + mkSymbol(new Number("235"), "max", Intern); + mkSymbol(new Number("236"), "min", Intern); + mkSymbol(new Number("237"), "atom", Intern); + mkSymbol(new Number("238"), "pair", Intern); + mkSymbol(new Number("239"), "lst?", Intern); + mkSymbol(new Number("240"), "num?", Intern); + mkSymbol(new Number("241"), "sym?", Intern); + mkSymbol(new Number("242"), "flg?", Intern); + mkSymbol(new Number("243"), "member", Intern); + mkSymbol(new Number("244"), "memq", Intern); + mkSymbol(new Number("245"), "mmeq", Intern); + mkSymbol(new Number("246"), "sect", Intern); + mkSymbol(new Number("247"), "diff", Intern); + mkSymbol(new Number("248"), "index", Intern); + mkSymbol(new Number("249"), "offset", Intern); + mkSymbol(new Number("250"), "length", Intern); + mkSymbol(new Number("251"), "size", Intern); + mkSymbol(new Number("252"), "assoc", Intern); + mkSymbol(new Number("253"), "asoq", Intern); + mkSymbol(new Number("254"), "rank", Intern); + mkSymbol(new Number("255"), "match", Intern); + mkSymbol(new Number("256"), "fill", Intern); + mkSymbol(new Number("257"), "prove", Intern); + mkSymbol(new Number("258"), "->", Intern); + mkSymbol(new Number("259"), "unify", Intern); + mkSymbol(new Number("260"), "sort", Intern); + mkSymbol(new Number("261"), "format", Intern); + mkSymbol(new Number("262"), "+", Intern); + mkSymbol(new Number("263"), "-", Intern); + mkSymbol(new Number("264"), "inc", Intern); + mkSymbol(new Number("265"), "dec", Intern); + mkSymbol(new Number("266"), "*", Intern); + mkSymbol(new Number("267"), "*/", Intern); + mkSymbol(new Number("268"), "/", Intern); + mkSymbol(new Number("269"), "%", Intern); + mkSymbol(new Number("270"), ">>", Intern); + mkSymbol(new Number("271"), "lt0", Intern); + mkSymbol(new Number("272"), "ge0", Intern); + mkSymbol(new Number("273"), "gt0", Intern); + mkSymbol(new Number("274"), "abs", Intern); + mkSymbol(new Number("275"), "bit?", Intern); + mkSymbol(new Number("276"), "&", Intern); + mkSymbol(new Number("277"), "|", Intern); + mkSymbol(new Number("278"), "x|", Intern); + mkSymbol(new Number("279"), "seed", Intern); + mkSymbol(new Number("280"), "rand", Intern); + mkSymbol(new Number("281"), "path", Intern); + mkSymbol(new Number("282"), "read", Intern); + mkSymbol(new Number("283"), "wait", Intern); + mkSymbol(new Number("284"), "poll", Intern); + mkSymbol(new Number("285"), "peek", Intern); + mkSymbol(new Number("286"), "char", Intern); + mkSymbol(new Number("287"), "skip", Intern); + mkSymbol(new Number("288"), "eol", Intern); + mkSymbol(new Number("289"), "eof", Intern); + mkSymbol(new Number("290"), "from", Intern); + mkSymbol(new Number("291"), "till", Intern); + mkSymbol(new Number("292"), "line", Intern); + mkSymbol(new Number("293"), "any", Intern); + mkSymbol(new Number("294"), "sym", Intern); + mkSymbol(new Number("295"), "str", Intern); + mkSymbol(new Number("296"), "load", Intern); + mkSymbol(new Number("297"), "in", Intern); + mkSymbol(new Number("298"), "out", Intern); + mkSymbol(new Number("299"), "open", Intern); + mkSymbol(new Number("300"), "close", Intern); + mkSymbol(new Number("301"), "echo", Intern); + mkSymbol(new Number("302"), "prin", Intern); + mkSymbol(new Number("303"), "prinl", Intern); + mkSymbol(new Number("304"), "space", Intern); + mkSymbol(new Number("305"), "print", Intern); + mkSymbol(new Number("306"), "printsp", Intern); + mkSymbol(new Number("307"), "println", Intern); + mkSymbol(new Number("308"), "flush", Intern); + mkSymbol(new Number("309"), "port", Intern); + mkSymbol(new Number("310"), "accept", Intern); + mkSymbol(new Number("311"), "connect", Intern); + MaxFun = 311; init(); for (boolean first = true; ; first = false) { try { @@ -2329,390 +2330,392 @@ public class PicoLisp { return do117(ex); case 118: // str? return do118(ex); - case 119: // zap - return do119(ex); - case 120: // chop + case 119: // ext? + return Nil; + case 120: // zap return do120(ex); - case 121: // pack + case 121: // chop return do121(ex); - case 122: // glue + case 122: // pack return do122(ex); - case 123: // text + case 123: // glue return do123(ex); - case 124: // pre? + case 124: // text return do124(ex); - case 125: // sub? + case 125: // pre? return do125(ex); - case 126: // val + case 126: // sub? + return do126(ex); + case 127: // val return ex.Cdr.Car.eval().Car; - case 127: // set - return do127(ex); - case 128: // setq + case 128: // set return do128(ex); - case 129: // xchg + case 129: // setq return do129(ex); - case 130: // on + case 130: // xchg return do130(ex); - case 131: // off + case 131: // on return do131(ex); - case 132: // onOff + case 132: // off return do132(ex); - case 133: // zero + case 133: // onOff return do133(ex); - case 134: // one + case 134: // zero return do134(ex); - case 135: // default + case 135: // one return do135(ex); - case 136: // push + case 136: // default return do136(ex); - case 137: // push1 + case 137: // push return do137(ex); - case 138: // pop + case 138: // push1 return do138(ex); - case 139: // cut + case 139: // pop return do139(ex); - case 140: // del + case 140: // cut return do140(ex); - case 141: // queue + case 141: // del return do141(ex); - case 142: // fifo + case 142: // queue return do142(ex); - case 143: // idx + case 143: // fifo return do143(ex); - case 144: // lup + case 144: // idx return do144(ex); - case 145: // put + case 145: // lup return do145(ex); - case 146: // get + case 146: // put return do146(ex); - case 147: // prop + case 147: // get return do147(ex); - case 148: // ; + case 148: // prop return do148(ex); - case 149: // =: + case 149: // ; return do149(ex); - case 150: // : + case 150: // =: return do150(ex); - case 151: // :: + case 151: // : return do151(ex); - case 152: // putl + case 152: // :: return do152(ex); - case 153: // getl + case 153: // putl return do153(ex); - case 154: // meta + case 154: // getl return do154(ex); - case 155: // low? + case 155: // meta return do155(ex); - case 156: // upp? + case 156: // low? return do156(ex); - case 157: // lowc + case 157: // upp? return do157(ex); - case 158: // uppc + case 158: // lowc return do158(ex); - case 159: // fold + case 159: // uppc return do159(ex); - case 160: // car + case 160: // fold + return do160(ex); + case 161: // car return ex.Cdr.Car.eval().Car; - case 161: // cdr + case 162: // cdr return ex.Cdr.Car.eval().Cdr; - case 162: // caar + case 163: // caar return ex.Cdr.Car.eval().Car.Car; - case 163: // cadr + case 164: // cadr return ex.Cdr.Car.eval().Cdr.Car; - case 164: // cdar + case 165: // cdar return ex.Cdr.Car.eval().Car.Cdr; - case 165: // cddr + case 166: // cddr return ex.Cdr.Car.eval().Cdr.Cdr; - case 166: // caaar - return do166(ex); - case 167: // caadr + case 167: // caaar return do167(ex); - case 168: // cadar + case 168: // caadr return do168(ex); - case 169: // caddr + case 169: // cadar return do169(ex); - case 170: // cdaar + case 170: // caddr return do170(ex); - case 171: // cdadr + case 171: // cdaar return do171(ex); - case 172: // cddar + case 172: // cdadr return do172(ex); - case 173: // cdddr + case 173: // cddar return do173(ex); - case 174: // caaaar + case 174: // cdddr return do174(ex); - case 175: // caaadr + case 175: // caaaar return do175(ex); - case 176: // caadar + case 176: // caaadr return do176(ex); - case 177: // caaddr + case 177: // caadar return do177(ex); - case 178: // cadaar + case 178: // caaddr return do178(ex); - case 179: // cadadr + case 179: // cadaar return do179(ex); - case 180: // caddar + case 180: // cadadr return do180(ex); - case 181: // cadddr + case 181: // caddar return do181(ex); - case 182: // cdaaar + case 182: // cadddr return do182(ex); - case 183: // cdaadr + case 183: // cdaaar return do183(ex); - case 184: // cdadar + case 184: // cdaadr return do184(ex); - case 185: // cdaddr + case 185: // cdadar return do185(ex); - case 186: // cddaar + case 186: // cdaddr return do186(ex); - case 187: // cddadr + case 187: // cddaar return do187(ex); - case 188: // cdddar + case 188: // cddadr return do188(ex); - case 189: // cddddr + case 189: // cdddar return do189(ex); - case 190: // nth + case 190: // cddddr return do190(ex); - case 191: // con + case 191: // nth return do191(ex); - case 192: // cons + case 192: // con return do192(ex); - case 193: // conc + case 193: // cons return do193(ex); - case 194: // circ + case 194: // conc return do194(ex); - case 195: // rot + case 195: // circ return do195(ex); - case 196: // list + case 196: // rot return do196(ex); - case 197: // need + case 197: // list return do197(ex); - case 198: // range + case 198: // need return do198(ex); - case 199: // full + case 199: // range return do199(ex); - case 200: // make + case 200: // full return do200(ex); - case 201: // made + case 201: // make return do201(ex); - case 202: // chain + case 202: // made return do202(ex); - case 203: // link + case 203: // chain return do203(ex); - case 204: // yoke + case 204: // link return do204(ex); - case 205: // copy + case 205: // yoke return do205(ex); - case 206: // mix + case 206: // copy return do206(ex); - case 207: // append + case 207: // mix return do207(ex); - case 208: // delete + case 208: // append return do208(ex); - case 209: // delq + case 209: // delete return do209(ex); - case 210: // replace + case 210: // delq return do210(ex); - case 211: // strip + case 211: // replace return do211(ex); - case 212: // split + case 212: // strip return do212(ex); - case 213: // reverse + case 213: // split return do213(ex); - case 214: // flip + case 214: // reverse return do214(ex); - case 215: // trim + case 215: // flip return do215(ex); - case 216: // clip + case 216: // trim return do216(ex); - case 217: // head + case 217: // clip return do217(ex); - case 218: // tail + case 218: // head return do218(ex); - case 219: // stem + case 219: // tail return do219(ex); - case 220: // fin + case 220: // stem return do220(ex); - case 221: // last + case 221: // fin return do221(ex); - case 222: // == + case 222: // last return do222(ex); - case 223: // n== + case 223: // == return do223(ex); - case 224: // = + case 224: // n== return do224(ex); - case 225: // <> + case 225: // = return do225(ex); - case 226: // =0 + case 226: // <> return do226(ex); - case 227: // =T + case 227: // =0 return do227(ex); - case 228: // n0 + case 228: // =T return do228(ex); - case 229: // nT + case 229: // n0 return do229(ex); - case 230: // < + case 230: // nT return do230(ex); - case 231: // <= + case 231: // < return do231(ex); - case 232: // > + case 232: // <= return do232(ex); - case 233: // >= + case 233: // > return do233(ex); - case 234: // max + case 234: // >= return do234(ex); - case 235: // min + case 235: // max return do235(ex); - case 236: // atom + case 236: // min return do236(ex); - case 237: // pair + case 237: // atom return do237(ex); - case 238: // lst? + case 238: // pair return do238(ex); - case 239: // num? + case 239: // lst? return do239(ex); - case 240: // sym? + case 240: // num? return do240(ex); - case 241: // flg? + case 241: // sym? return do241(ex); - case 242: // member + case 242: // flg? return do242(ex); - case 243: // memq + case 243: // member return do243(ex); - case 244: // mmeq + case 244: // memq return do244(ex); - case 245: // sect + case 245: // mmeq return do245(ex); - case 246: // diff + case 246: // sect return do246(ex); - case 247: // index + case 247: // diff return do247(ex); - case 248: // offset + case 248: // index return do248(ex); - case 249: // length + case 249: // offset return do249(ex); - case 250: // size + case 250: // length return do250(ex); - case 251: // assoc + case 251: // size return do251(ex); - case 252: // asoq + case 252: // assoc return do252(ex); - case 253: // rank + case 253: // asoq return do253(ex); - case 254: // match + case 254: // rank return do254(ex); - case 255: // fill + case 255: // match return do255(ex); - case 256: // prove + case 256: // fill return do256(ex); - case 257: // -> + case 257: // prove return do257(ex); - case 258: // unify + case 258: // -> return do258(ex); - case 259: // sort + case 259: // unify return do259(ex); - case 260: // format + case 260: // sort return do260(ex); - case 261: // + + case 261: // format return do261(ex); - case 262: // - + case 262: // + return do262(ex); - case 263: // inc + case 263: // - return do263(ex); - case 264: // dec + case 264: // inc return do264(ex); - case 265: // * + case 265: // dec return do265(ex); - case 266: // */ + case 266: // * return do266(ex); - case 267: // / + case 267: // */ return do267(ex); - case 268: // % + case 268: // / return do268(ex); - case 269: // >> + case 269: // % return do269(ex); - case 270: // lt0 + case 270: // >> return do270(ex); - case 271: // ge0 + case 271: // lt0 return do271(ex); - case 272: // gt0 + case 272: // ge0 return do272(ex); - case 273: // abs + case 273: // gt0 return do273(ex); - case 274: // bit? + case 274: // abs return do274(ex); - case 275: // & + case 275: // bit? return do275(ex); - case 276: // | + case 276: // & return do276(ex); - case 277: // x| + case 277: // | return do277(ex); - case 278: // seed + case 278: // x| return do278(ex); - case 279: // rand + case 279: // seed return do279(ex); - case 280: // path + case 280: // rand return do280(ex); - case 281: // read + case 281: // path return do281(ex); - case 282: // wait + case 282: // read return do282(ex); - case 283: // poll + case 283: // wait return do283(ex); - case 284: // peek + case 284: // poll return do284(ex); - case 285: // char + case 285: // peek return do285(ex); - case 286: // skip + case 286: // char return do286(ex); - case 287: // eol + case 287: // skip return do287(ex); - case 288: // eof + case 288: // eol return do288(ex); - case 289: // from + case 289: // eof return do289(ex); - case 290: // till + case 290: // from return do290(ex); - case 291: // line + case 291: // till return do291(ex); - case 292: // any + case 292: // line return do292(ex); - case 293: // sym + case 293: // any return do293(ex); - case 294: // str + case 294: // sym return do294(ex); - case 295: // load + case 295: // str return do295(ex); - case 296: // in + case 296: // load return do296(ex); - case 297: // out + case 297: // in return do297(ex); - case 298: // open + case 298: // out return do298(ex); - case 299: // close + case 299: // open return do299(ex); - case 300: // echo + case 300: // close return do300(ex); - case 301: // prin + case 301: // echo return do301(ex); - case 302: // prinl + case 302: // prin return do302(ex); - case 303: // space + case 303: // prinl return do303(ex); - case 304: // print + case 304: // space return do304(ex); - case 305: // printsp + case 305: // print return do305(ex); - case 306: // println + case 306: // printsp return do306(ex); - case 307: // flush + case 307: // println return do307(ex); - case 308: // port + case 308: // flush return do308(ex); - case 309: // accept + case 309: // port return do309(ex); - case 310: // connect + case 310: // accept return do310(ex); + case 311: // connect + return do311(ex); default: return undefined(this, ex); } @@ -4420,7 +4423,14 @@ public class PicoLisp { cmd[i] = x.Car.eval().name(); x = x.Cdr; } - try {i = Runtime.getRuntime().exec(cmd).waitFor();} + try { + Process p = Runtime.getRuntime().exec(cmd); + BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); + String line; + while ((line = in.readLine()) != null) + System.out.println(line); + i = p.waitFor(); + } catch (IOException e) {System.err.println(cmd[0] + ": Can't exec");} catch (InterruptedException e) {} //#! sighandler() return i == 0? T : Nil; @@ -4518,14 +4528,14 @@ public class PicoLisp { return ((x = ex.Cdr.Car.eval()) instanceof Symbol) && Intern.get(x.name()) == null? x : Nil; } - final static Any do119(Any ex) { // zap + final static Any do120(Any ex) { // zap Symbol s; s = (Symbol)ex.Cdr.Car.eval(); Intern.remove(s.name()); return s; } - final static Any do120(Any ex) { // chop + final static Any do121(Any ex) { // chop Any x, y; String str; x = ex.Cdr.Car.eval(); @@ -4540,7 +4550,7 @@ public class PicoLisp { return x; } - final static Any do121(Any ex) { // pack + final static Any do122(Any ex) { // pack StringBuilder sb; sb = new StringBuilder(); for (ex = ex.Cdr; ex instanceof Cell; ex = ex.Cdr) @@ -4548,7 +4558,7 @@ public class PicoLisp { return mkStr(sb); } - final static Any do122(Any ex) { // glue + final static Any do123(Any ex) { // glue Any x, y; StringBuilder sb; x = ex.Cdr.Car.eval(); @@ -4561,7 +4571,7 @@ public class PicoLisp { return mkStr(sb); } - final static Any do123(Any ex) { // text + final static Any do124(Any ex) { // text int i, j, k; char c; String str; @@ -4590,21 +4600,21 @@ public class PicoLisp { return mkStr(sb); } - final static Any do124(Any ex) { // pre? + final static Any do125(Any ex) { // pre? Any x; String str; str = evString(ex = ex.Cdr); return (x = ex.Cdr.Car.eval()).name().startsWith(str)? x : Nil; } - final static Any do125(Any ex) { // sub? + final static Any do126(Any ex) { // sub? Any x; String str; str = evString(ex = ex.Cdr); return (x = ex.Cdr.Car.eval()).name().indexOf(str) >= 0? x : Nil; } - final static Any do127(Any ex) { // set + final static Any do128(Any ex) { // set Any x, y; x = ex.Cdr; do { @@ -4615,7 +4625,7 @@ public class PicoLisp { return y.Car; } - final static Any do128(Any ex) { // setq + final static Any do129(Any ex) { // setq Any x, y; x = ex.Cdr; do { @@ -4626,7 +4636,7 @@ public class PicoLisp { return y.Car; } - final static Any do129(Any ex) { // xchg + final static Any do130(Any ex) { // xchg Any w, x, y, z; x = ex.Cdr; do { @@ -4637,7 +4647,7 @@ public class PicoLisp { return w; } - final static Any do130(Any ex) { // on + final static Any do131(Any ex) { // on Any x; x = ex.Cdr; do @@ -4646,7 +4656,7 @@ public class PicoLisp { return T; } - final static Any do131(Any ex) { // off + final static Any do132(Any ex) { // off Any x; x = ex.Cdr; do @@ -4655,7 +4665,7 @@ public class PicoLisp { return Nil; } - final static Any do132(Any ex) { // onOff + final static Any do133(Any ex) { // onOff Any x, y; x = ex.Cdr; do @@ -4664,7 +4674,7 @@ public class PicoLisp { return y; } - final static Any do133(Any ex) { // zero + final static Any do134(Any ex) { // zero Any x; x = ex.Cdr; do @@ -4673,7 +4683,7 @@ public class PicoLisp { return Zero; } - final static Any do134(Any ex) { // one + final static Any do135(Any ex) { // one Any x; x = ex.Cdr; do @@ -4682,7 +4692,7 @@ public class PicoLisp { return One; } - final static Any do135(Any ex) { // default + final static Any do136(Any ex) { // default Any x, y; x = ex.Cdr; do { @@ -4695,7 +4705,7 @@ public class PicoLisp { return y.Car; } - final static Any do136(Any ex) { // push + final static Any do137(Any ex) { // push Any x, y, z; needVar(ex, y = (x = ex.Cdr).Car.eval()); do @@ -4704,7 +4714,7 @@ public class PicoLisp { return z; } - final static Any do137(Any ex) { // push1 + final static Any do138(Any ex) { // push1 Any x, y, z; needVar(ex, y = (x = ex.Cdr).Car.eval()); do @@ -4714,7 +4724,7 @@ public class PicoLisp { return z; } - final static Any do138(Any ex) { // pop + final static Any do139(Any ex) { // pop Any x, y; needVar(ex, x = ex.Cdr.Car.eval()); if ((y = x.Car) instanceof Cell) { @@ -4724,7 +4734,7 @@ public class PicoLisp { return y; } - final static Any do139(Any ex) { // cut + final static Any do140(Any ex) { // cut long n; Any x, y, z; if ((n = evLong(ex.Cdr)) <= 0) @@ -4739,7 +4749,7 @@ public class PicoLisp { return x.Car; } - final static Any do140(Any ex) { // del + final static Any do141(Any ex) { // del Any w, lst, x, y, z; w = ex.Cdr.Car.eval(); needVar(ex, x = ex.Cdr.Cdr.Car.eval()); @@ -4755,7 +4765,7 @@ public class PicoLisp { return x.Car; } - final static Any do141(Any ex) { // queue + final static Any do142(Any ex) { // queue Any x, y; needVar(ex, x = ex.Cdr.Car.eval()); y = ex.Cdr.Cdr.Car.eval(); @@ -4768,7 +4778,7 @@ public class PicoLisp { return y; } - final static Any do142(Any ex) { // fifo + final static Any do143(Any ex) { // fifo Any x, y, z, lst; needVar(ex, y = (x = ex.Cdr).Car.eval()); if ((x = x.Cdr) instanceof Cell) { @@ -4796,7 +4806,7 @@ public class PicoLisp { return z; } - final static Any do143(Any ex) { // idx + final static Any do144(Any ex) { // idx Any x, y; needVar(ex, x = (ex = ex.Cdr).Car.eval()); if (!((ex = ex.Cdr) instanceof Cell)) @@ -4805,7 +4815,7 @@ public class PicoLisp { return idx(x, y, ex.Cdr instanceof Cell? (ex.Cdr.Car.eval() == Nil? -1 : +1) : 0); } - final static Any do144(Any ex) { // lup + final static Any do145(Any ex) { // lup int i; Any x, y, z; x = (ex = ex.Cdr).Car.eval(); @@ -4825,7 +4835,7 @@ public class PicoLisp { return Nil; } - final static Any do145(Any ex) { // put + final static Any do146(Any ex) { // put Any x, y; x = (ex = ex.Cdr).Car.eval(); for (;;) { @@ -4836,7 +4846,7 @@ public class PicoLisp { } } - final static Any do146(Any ex) { // get + final static Any do147(Any ex) { // get Any x; x = (ex = ex.Cdr).Car.eval(); while ((ex = ex.Cdr) instanceof Cell) @@ -4844,7 +4854,7 @@ public class PicoLisp { return x; } - final static Any do147(Any ex) { // prop + final static Any do148(Any ex) { // prop Any x; x = (ex = ex.Cdr).Car.eval(); while ((ex = ex.Cdr).Cdr instanceof Cell) @@ -4852,7 +4862,7 @@ public class PicoLisp { return x.prop(ex.Car.eval()); } - final static Any do148(Any ex) { // ; + final static Any do149(Any ex) { // ; Any x; x = (ex = ex.Cdr).Car.eval(); while ((ex = ex.Cdr) instanceof Cell) @@ -4860,7 +4870,7 @@ public class PicoLisp { return x; } - final static Any do149(Any ex) { // =: + final static Any do150(Any ex) { // =: Any x, y; for (x = This.Car;;) { y = (ex = ex.Cdr).Car; @@ -4870,7 +4880,7 @@ public class PicoLisp { } } - final static Any do150(Any ex) { // : + final static Any do151(Any ex) { // : Any x; x = This.Car; do @@ -4879,7 +4889,7 @@ public class PicoLisp { return x; } - final static Any do151(Any ex) { // :: + final static Any do152(Any ex) { // :: Any x; x = This.Car; while ((ex = ex.Cdr).Cdr instanceof Cell) @@ -4887,7 +4897,7 @@ public class PicoLisp { return x.prop(ex.Car); } - final static Any do152(Any ex) { // putl + final static Any do153(Any ex) { // putl Any x; x = (ex = ex.Cdr).Car.eval(); while ((ex = ex.Cdr).Cdr instanceof Cell) @@ -4895,7 +4905,7 @@ public class PicoLisp { return x.putl(ex.Car.eval()); } - final static Any do153(Any ex) { // getl + final static Any do154(Any ex) { // getl Any x; x = (ex = ex.Cdr).Car.eval(); while ((ex = ex.Cdr) instanceof Cell) @@ -4903,7 +4913,7 @@ public class PicoLisp { return x.getl(); } - final static Any do154(Any ex) { // meta + final static Any do155(Any ex) { // meta Any x, y; if ((x = (ex = ex.Cdr).Car.eval()) instanceof Symbol) x = x.Car; @@ -4912,17 +4922,17 @@ public class PicoLisp { return x; } - final static Any do155(Any ex) { // low? + final static Any do156(Any ex) { // low? Any x; return (x = ex.Cdr.Car.eval()) instanceof Symbol && Character.isLowerCase(firstChar(x))? x : Nil; } - final static Any do156(Any ex) { // upp? + final static Any do157(Any ex) { // upp? Any x; return (x = ex.Cdr.Car.eval()) instanceof Symbol && Character.isUpperCase(firstChar(x))? x : Nil; } - final static Any do157(Any ex) { // lowc + final static Any do158(Any ex) { // lowc int i, j; Any x; String str; @@ -4935,7 +4945,7 @@ public class PicoLisp { return mkStr(sb); } - final static Any do158(Any ex) { // uppc + final static Any do159(Any ex) { // uppc int i, j; Any x; String str; @@ -4948,7 +4958,7 @@ public class PicoLisp { return mkStr(sb); } - final static Any do159(Any ex) { // fold + final static Any do160(Any ex) { // fold int i, j, k; char c; Any x; @@ -4971,103 +4981,103 @@ public class PicoLisp { return mkStr(sb); } - final static Any do166(Any ex) { // caaar + final static Any do167(Any ex) { // caaar return ex.Cdr.Car.eval().Car.Car.Car; } - final static Any do167(Any ex) { // caadr + final static Any do168(Any ex) { // caadr return ex.Cdr.Car.eval().Cdr.Car.Car; } - final static Any do168(Any ex) { // cadar + final static Any do169(Any ex) { // cadar return ex.Cdr.Car.eval().Car.Cdr.Car; } - final static Any do169(Any ex) { // caddr + final static Any do170(Any ex) { // caddr return ex.Cdr.Car.eval().Cdr.Cdr.Car; } - final static Any do170(Any ex) { // cdaar + final static Any do171(Any ex) { // cdaar return ex.Cdr.Car.eval().Car.Car.Cdr; } - final static Any do171(Any ex) { // cdadr + final static Any do172(Any ex) { // cdadr return ex.Cdr.Car.eval().Cdr.Car.Cdr; } - final static Any do172(Any ex) { // cddar + final static Any do173(Any ex) { // cddar return ex.Cdr.Car.eval().Car.Cdr.Cdr; } - final static Any do173(Any ex) { // cdddr + final static Any do174(Any ex) { // cdddr return ex.Cdr.Car.eval().Cdr.Cdr.Cdr; } - final static Any do174(Any ex) { // caaaar + final static Any do175(Any ex) { // caaaar return ex.Cdr.Car.eval().Car.Car.Car.Car; } - final static Any do175(Any ex) { // caaadr + final static Any do176(Any ex) { // caaadr return ex.Cdr.Car.eval().Cdr.Car.Car.Car; } - final static Any do176(Any ex) { // caadar + final static Any do177(Any ex) { // caadar return ex.Cdr.Car.eval().Car.Cdr.Car.Car; } - final static Any do177(Any ex) { // caaddr + final static Any do178(Any ex) { // caaddr return ex.Cdr.Car.eval().Cdr.Cdr.Car.Car; } - final static Any do178(Any ex) { // cadaar + final static Any do179(Any ex) { // cadaar return ex.Cdr.Car.eval().Car.Car.Cdr.Car; } - final static Any do179(Any ex) { // cadadr + final static Any do180(Any ex) { // cadadr return ex.Cdr.Car.eval().Cdr.Car.Cdr.Car; } - final static Any do180(Any ex) { // caddar + final static Any do181(Any ex) { // caddar return ex.Cdr.Car.eval().Car.Cdr.Cdr.Car; } - final static Any do181(Any ex) { // cadddr + final static Any do182(Any ex) { // cadddr return ex.Cdr.Car.eval().Cdr.Cdr.Cdr.Car; } - final static Any do182(Any ex) { // cdaaar + final static Any do183(Any ex) { // cdaaar return ex.Cdr.Car.eval().Car.Car.Car.Cdr; } - final static Any do183(Any ex) { // cdaadr + final static Any do184(Any ex) { // cdaadr return ex.Cdr.Car.eval().Cdr.Car.Car.Cdr; } - final static Any do184(Any ex) { // cdadar + final static Any do185(Any ex) { // cdadar return ex.Cdr.Car.eval().Car.Cdr.Car.Cdr; } - final static Any do185(Any ex) { // cdaddr + final static Any do186(Any ex) { // cdaddr return ex.Cdr.Car.eval().Cdr.Cdr.Car.Cdr; } - final static Any do186(Any ex) { // cddaar + final static Any do187(Any ex) { // cddaar return ex.Cdr.Car.eval().Car.Car.Cdr.Cdr; } - final static Any do187(Any ex) { // cddadr + final static Any do188(Any ex) { // cddadr return ex.Cdr.Car.eval().Cdr.Car.Cdr.Cdr; } - final static Any do188(Any ex) { // cdddar + final static Any do189(Any ex) { // cdddar return ex.Cdr.Car.eval().Car.Cdr.Cdr.Cdr; } - final static Any do189(Any ex) { // cddddr + final static Any do190(Any ex) { // cddddr return ex.Cdr.Car.eval().Cdr.Cdr.Cdr.Cdr; } - final static Any do190(Any ex) { // nth + final static Any do191(Any ex) { // nth Any x; x = (ex = ex.Cdr).Car.eval(); for (;;) { @@ -5080,13 +5090,13 @@ public class PicoLisp { } } - final static Any do191(Any ex) { // con + final static Any do192(Any ex) { // con Any x; x = ex.Cdr.Car.eval(); return x.Cdr = ex.Cdr.Cdr.Car.eval(); } - final static Any do192(Any ex) { // cons + final static Any do193(Any ex) { // cons Any x, y; y = x = new Cell((ex = ex.Cdr).Car.eval(), Nil); while ((ex = ex.Cdr).Cdr instanceof Cell) @@ -5095,7 +5105,7 @@ public class PicoLisp { return y; } - final static Any do193(Any ex) { // conc + final static Any do194(Any ex) { // conc Any x, y, z; z = x = (ex = ex.Cdr).Car.eval(); while ((ex = ex.Cdr) instanceof Cell) { @@ -5110,7 +5120,7 @@ public class PicoLisp { return z; } - final static Any do194(Any ex) { // circ + final static Any do195(Any ex) { // circ Any x, y; y = x = new Cell((ex = ex.Cdr).Car.eval(), Nil); while ((ex = ex.Cdr) instanceof Cell) @@ -5119,7 +5129,7 @@ public class PicoLisp { return y; } - final static Any do195(Any ex) { // rot + final static Any do196(Any ex) { // rot int i; Any w, x, y, z; w = y = (ex = ex.Cdr).Car.eval(); @@ -5134,7 +5144,7 @@ public class PicoLisp { return w; } - final static Any do196(Any ex) { // list + final static Any do197(Any ex) { // list Any x, y; x = y = new Cell((ex = ex.Cdr).Car.eval(), Nil); while ((ex = ex.Cdr) instanceof Cell) @@ -5142,7 +5152,7 @@ public class PicoLisp { return y; } - final static Any do197(Any ex) { // need + final static Any do198(Any ex) { // need long n; Any x, y, z; n = evLong(ex = ex.Cdr); @@ -5165,7 +5175,7 @@ public class PicoLisp { return z; } - final static Any do198(Any ex) { // range + final static Any do199(Any ex) { // range Any x, y; Number num; num = (Number)(y = (x = ex.Cdr).Car.eval()); @@ -5181,7 +5191,7 @@ public class PicoLisp { return y; } - final static Any do199(Any ex) { // full + final static Any do200(Any ex) { // full Any x; for (x = ex.Cdr.Car.eval(); x instanceof Cell; x = x.Cdr) if (x.Car == Nil) @@ -5189,7 +5199,7 @@ public class PicoLisp { return T; } - final static Any do200(Any ex) { // make + final static Any do201(Any ex) { // make Any x, y, z; x = Env.Make; Env.Make = Nil; y = Env.Yoke; Env.Yoke = Nil; @@ -5200,7 +5210,7 @@ public class PicoLisp { return z; } - final static Any do201(Any ex) { // made + final static Any do202(Any ex) { // made Any x; if ((x = ex.Cdr) instanceof Cell) { Env.Yoke = x.Car.eval(); @@ -5212,7 +5222,7 @@ public class PicoLisp { return Env.Yoke; } - final static Any do202(Any ex) { // chain + final static Any do203(Any ex) { // chain Any x, y; ex = ex.Cdr; do { @@ -5227,7 +5237,7 @@ public class PicoLisp { return x; } - final static Any do203(Any ex) { // link + final static Any do204(Any ex) { // link Any x; ex = ex.Cdr; do { @@ -5240,7 +5250,7 @@ public class PicoLisp { return x; } - final static Any do204(Any ex) { // yoke + final static Any do205(Any ex) { // yoke Any x; ex = ex.Cdr; do { @@ -5252,7 +5262,7 @@ public class PicoLisp { return x; } - final static Any do205(Any ex) { // copy + final static Any do206(Any ex) { // copy Any w, x, y, z; if (!((x = ex.Cdr.Car.eval()) instanceof Cell)) return x; @@ -5264,7 +5274,7 @@ public class PicoLisp { return w; } - final static Any do206(Any ex) { // mix + final static Any do207(Any ex) { // mix Any x, y, z; if (!((y = (ex = ex.Cdr).Car.eval()) instanceof Cell) && y != Nil) return y; @@ -5276,7 +5286,7 @@ public class PicoLisp { return z; } - final static Any do207(Any ex) { // append + final static Any do208(Any ex) { // append Any x, y, z; for (ex = ex.Cdr; (z = ex.Cdr) instanceof Cell; ex = z) { if ((x = ex.Car.eval()) instanceof Cell) { @@ -5295,7 +5305,7 @@ public class PicoLisp { return ex.Car.eval(); } - final static Any do208(Any ex) { // delete + final static Any do209(Any ex) { // delete Any w, x, y, z; y = (x = ex.Cdr).Car.eval(); if (!((x = x.Cdr.Car.eval()) instanceof Cell)) @@ -5314,7 +5324,7 @@ public class PicoLisp { return w; } - final static Any do209(Any ex) { // delq + final static Any do210(Any ex) { // delq Any w, x, y, z; y = (x = ex.Cdr).Car.eval(); if (!((x = x.Cdr.Car.eval()) instanceof Cell)) @@ -5333,7 +5343,7 @@ public class PicoLisp { return w; } - final static Any do210(Any ex) { // replace + final static Any do211(Any ex) { // replace int i, j; Any w, x, y, z; Any[] v; @@ -5356,13 +5366,13 @@ public class PicoLisp { return w; } - final static Any do211(Any ex) { // strip + final static Any do212(Any ex) { // strip Any x; for (x = ex.Cdr.Car.eval(); x instanceof Cell && x.Car == Quote && x != x.Cdr; x = x.Cdr); return x; } - final static Any do212(Any ex) { // split + final static Any do213(Any ex) { // split int i, j; Any x, y, z; Any[] v; @@ -5396,7 +5406,7 @@ public class PicoLisp { return res; } - final static Any do213(Any ex) { // reverse + final static Any do214(Any ex) { // reverse Any x, y; x = ex.Cdr.Car.eval(); for (y = Nil; x instanceof Cell; x = x.Cdr) @@ -5404,7 +5414,7 @@ public class PicoLisp { return y; } - final static Any do214(Any ex) { // flip + final static Any do215(Any ex) { // flip int i; Any x, y, z; if (!((y = (ex = ex.Cdr).Car.eval()) instanceof Cell) || !((z = y.Cdr) instanceof Cell)) @@ -5427,17 +5437,17 @@ public class PicoLisp { return z; } - final static Any do215(Any ex) { // trim + final static Any do216(Any ex) { // trim return trim(ex.Cdr.Car.eval()); } - final static Any do216(Any ex) { // clip + final static Any do217(Any ex) { // clip Any x; for (x = ex.Cdr.Car.eval(); x instanceof Cell && isBlank(x.Car); x = x.Cdr); return trim(x); } - final static Any do217(Any ex) { // head + final static Any do218(Any ex) { // head int i; Any x, y, z; if ((z = (x = ex.Cdr).Car.eval()) == Nil) @@ -5463,7 +5473,7 @@ public class PicoLisp { return z; } - final static Any do218(Any ex) { // tail + final static Any do219(Any ex) { // tail int i; Any x, y, z; if ((z = (x = ex.Cdr).Car.eval()) == Nil) @@ -5493,7 +5503,7 @@ public class PicoLisp { return x; } - final static Any do219(Any ex) { // stem + final static Any do220(Any ex) { // stem int i, j; Any x, y; Any[] v; @@ -5509,13 +5519,13 @@ public class PicoLisp { return y; } - final static Any do220(Any ex) { // fin + final static Any do221(Any ex) { // fin Any x; for (x = ex.Cdr.Car.eval(); x instanceof Cell; x = x.Cdr); return x; } - final static Any do221(Any ex) { // last + final static Any do222(Any ex) { // last Any x; if (!((x = ex.Cdr.Car.eval()) instanceof Cell)) return x; @@ -5524,7 +5534,7 @@ public class PicoLisp { return x.Car; } - final static Any do222(Any ex) { // == + final static Any do223(Any ex) { // == Any x, y; y = (x = ex.Cdr).Car.eval(); while ((x = x.Cdr) instanceof Cell) @@ -5533,7 +5543,7 @@ public class PicoLisp { return T; } - final static Any do223(Any ex) { // n== + final static Any do224(Any ex) { // n== Any x, y; y = (x = ex.Cdr).Car.eval(); while ((x = x.Cdr) instanceof Cell) @@ -5542,7 +5552,7 @@ public class PicoLisp { return Nil; } - final static Any do224(Any ex) { // = + final static Any do225(Any ex) { // = Any x, y; y = (x = ex.Cdr).Car.eval(); while ((x = x.Cdr) instanceof Cell) @@ -5551,7 +5561,7 @@ public class PicoLisp { return T; } - final static Any do225(Any ex) { // <> + final static Any do226(Any ex) { // <> Any x, y; y = (x = ex.Cdr).Car.eval(); while ((x = x.Cdr) instanceof Cell) @@ -5560,24 +5570,24 @@ public class PicoLisp { return Nil; } - final static Any do226(Any ex) { // =0 + final static Any do227(Any ex) { // =0 Any x; return ex.Cdr.Car.eval().equal(Zero)? Zero : Nil; } - final static Any do227(Any ex) { // =T + final static Any do228(Any ex) { // =T return T == ex.Cdr.Car.eval()? T : Nil; } - final static Any do228(Any ex) { // n0 + final static Any do229(Any ex) { // n0 return ex.Cdr.Car.eval().equal(Zero)? Nil : T; } - final static Any do229(Any ex) { // nT + final static Any do230(Any ex) { // nT return T == ex.Cdr.Car.eval()? Nil : T; } - final static Any do230(Any ex) { // < + final static Any do231(Any ex) { // < Any x, y, z; y = (x = ex.Cdr).Car.eval(); while ((x = x.Cdr) instanceof Cell) { @@ -5589,7 +5599,7 @@ public class PicoLisp { return T; } - final static Any do231(Any ex) { // <= + final static Any do232(Any ex) { // <= Any x, y, z; y = (x = ex.Cdr).Car.eval(); while ((x = x.Cdr) instanceof Cell) { @@ -5601,7 +5611,7 @@ public class PicoLisp { return T; } - final static Any do232(Any ex) { // > + final static Any do233(Any ex) { // > Any x, y; x = (ex = ex.Cdr).Car.eval(); while (ex.Cdr instanceof Cell) { @@ -5613,7 +5623,7 @@ public class PicoLisp { return T; } - final static Any do233(Any ex) { // >= + final static Any do234(Any ex) { // >= Any x, y, z; y = (x = ex.Cdr).Car.eval(); while ((x = x.Cdr) instanceof Cell) { @@ -5625,7 +5635,7 @@ public class PicoLisp { return T; } - final static Any do234(Any ex) { // max + final static Any do235(Any ex) { // max Any x, y; for (y = (ex = ex.Cdr).Car.eval(); (ex = ex.Cdr) instanceof Cell;) if ((x = ex.Car.eval()).compare(y) > 0) @@ -5633,7 +5643,7 @@ public class PicoLisp { return y; } - final static Any do235(Any ex) { // min + final static Any do236(Any ex) { // min Any x, y; for (y = (ex = ex.Cdr).Car.eval(); (ex = ex.Cdr) instanceof Cell;) if ((x = ex.Car.eval()).compare(y) < 0) @@ -5641,48 +5651,48 @@ public class PicoLisp { return y; } - final static Any do236(Any ex) { // atom + final static Any do237(Any ex) { // atom return ex.Cdr.Car.eval() instanceof Cell? Nil : T; } - final static Any do237(Any ex) { // pair + final static Any do238(Any ex) { // pair Any x; return (x = ex.Cdr.Car.eval()) instanceof Cell? x : Nil; } - final static Any do238(Any ex) { // lst? + final static Any do239(Any ex) { // lst? Any x; return (x = ex.Cdr.Car.eval()) instanceof Cell || x == Nil? T : Nil; } - final static Any do239(Any ex) { // num? + final static Any do240(Any ex) { // num? Any x; return (x = ex.Cdr.Car.eval()) instanceof Number? x : Nil; } - final static Any do240(Any ex) { // sym? + final static Any do241(Any ex) { // sym? Any x; return (x = ex.Cdr.Car.eval()) instanceof Symbol || x == Nil? T : Nil; } - final static Any do241(Any ex) { // flg? + final static Any do242(Any ex) { // flg? Any x; return (x = ex.Cdr.Car.eval()) == Nil || x == T? T : Nil; } - final static Any do242(Any ex) { // member + final static Any do243(Any ex) { // member Any x; x = (ex = ex.Cdr).Car.eval(); return (x = member(x, ex.Cdr.Car.eval())) == null? Nil : x; } - final static Any do243(Any ex) { // memq + final static Any do244(Any ex) { // memq Any x; x = (ex = ex.Cdr).Car.eval(); return (x = memq(x, ex.Cdr.Car.eval())) == null? Nil : x; } - final static Any do244(Any ex) { // mmeq + final static Any do245(Any ex) { // mmeq Any x, y, z; x = (ex = ex.Cdr).Car.eval(); for (y = (ex = ex.Cdr).Car.eval(); x instanceof Cell; x = x.Cdr) @@ -5691,7 +5701,7 @@ public class PicoLisp { return Nil; } - final static Any do245(Any ex) { // sect + final static Any do246(Any ex) { // sect Any w, x, y, z; y = (x = ex.Cdr).Car.eval(); z = x.Cdr.Car.eval(); @@ -5707,7 +5717,7 @@ public class PicoLisp { return w; } - final static Any do246(Any ex) { // diff + final static Any do247(Any ex) { // diff Any w, x, y, z; y = (x = ex.Cdr).Car.eval(); z = x.Cdr.Car.eval(); @@ -5723,14 +5733,14 @@ public class PicoLisp { return w; } - final static Any do247(Any ex) { // index + final static Any do248(Any ex) { // index int i; Any x, y; y = (x = ex.Cdr).Car.eval(); return (i = indx(y, x.Cdr.Car.eval())) == 0? Nil : new Number(i); } - final static Any do248(Any ex) { // offset + final static Any do249(Any ex) { // offset int i; Any x, y; y = (x = ex.Cdr).Car.eval(); @@ -5741,16 +5751,16 @@ public class PicoLisp { return Nil; } - final static Any do249(Any ex) { // length + final static Any do250(Any ex) { // length long n; return (n = ex.Cdr.Car.eval().length()) >= 0? new Number(n) : T; } - final static Any do250(Any ex) { // size + final static Any do251(Any ex) { // size return new Number(ex.Cdr.Car.eval().size()); } - final static Any do251(Any ex) { // assoc + final static Any do252(Any ex) { // assoc Any x, y, z; y = (x = ex.Cdr).Car.eval(); x = x.Cdr.Car.eval(); @@ -5760,7 +5770,7 @@ public class PicoLisp { return Nil; } - final static Any do252(Any ex) { // asoq + final static Any do253(Any ex) { // asoq Any x, y, z; y = (x = ex.Cdr).Car.eval(); x = x.Cdr.Car.eval(); @@ -5770,7 +5780,7 @@ public class PicoLisp { return Nil; } - final static Any do253(Any ex) { // rank + final static Any do254(Any ex) { // rank Any w, x, y, z; w = (x = ex.Cdr).Car.eval(); y = (x = x.Cdr).Car.eval(); @@ -5790,19 +5800,19 @@ public class PicoLisp { return z.Car; } - final static Any do254(Any ex) { // match + final static Any do255(Any ex) { // match Any x, y; y = (x = ex.Cdr).Car.eval(); return match(y, x.Cdr.Car.eval())? T : Nil; } - final static Any do255(Any ex) { // fill + final static Any do256(Any ex) { // fill Any x, y; y = (x = ex.Cdr).Car.eval(); return (x = fill(y, x.Cdr.Car.eval())) == null? y : x; } - final static Any do256(Any ex) { // prove + final static Any do257(Any ex) { // prove int i; Any x, y; if (!((y = (ex = ex.Cdr).Car.eval()) instanceof Cell)) @@ -5898,7 +5908,7 @@ public class PicoLisp { return x; } - final static Any do257(Any ex) { // -> + final static Any do258(Any ex) { // -> int i; Any x; if (!(ex.Cdr.Cdr.Car instanceof Number)) @@ -5908,18 +5918,18 @@ public class PicoLisp { return lookup((Number)x.Car, ex.Cdr.Car); } - final static Any do258(Any ex) { // unify + final static Any do259(Any ex) { // unify Any x; x = ex.Cdr.Car.eval(); return unify((Number)Pnl.Cdr.Car, x, (Number)Pnl.Car, x)? Penv : Nil; } - final static Any do259(Any ex) { // sort + final static Any do260(Any ex) { // sort Any x; return (x = ex.Cdr.Car.eval()) instanceof Cell && x.Cdr instanceof Cell? sort(ex, x, ex.Cdr.Cdr.Car.eval()) : x; } - final static Any do260(Any ex) { // format + final static Any do261(Any ex) { // format int i; Any x, y; x = (ex = ex.Cdr).Car.eval(); @@ -5927,7 +5937,7 @@ public class PicoLisp { return format(x, i, ex.Cdr); } - final static Any do261(Any ex) { // + + final static Any do262(Any ex) { // + Any x; Number num; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -5938,7 +5948,7 @@ public class PicoLisp { return num; } - final static Any do262(Any ex) { // - + final static Any do263(Any ex) { // - Any x; Number num; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -5954,7 +5964,7 @@ public class PicoLisp { return num; } - final static Any do263(Any ex) { // inc + final static Any do264(Any ex) { // inc Any x, y; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) return Nil; @@ -5974,7 +5984,7 @@ public class PicoLisp { return y; } - final static Any do264(Any ex) { // dec + final static Any do265(Any ex) { // dec Any x, y; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) return Nil; @@ -5994,7 +6004,7 @@ public class PicoLisp { return y; } - final static Any do265(Any ex) { // * + final static Any do266(Any ex) { // * Any x; Number num; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -6005,7 +6015,7 @@ public class PicoLisp { return num; } - final static Any do266(Any ex) { // */ + final static Any do267(Any ex) { // */ Any x; Number num; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -6018,7 +6028,7 @@ public class PicoLisp { } } - final static Any do267(Any ex) { // / + final static Any do268(Any ex) { // / Any x; Number num; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -6029,7 +6039,7 @@ public class PicoLisp { return num; } - final static Any do268(Any ex) { // % + final static Any do269(Any ex) { // % Any x; Number num; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -6040,7 +6050,7 @@ public class PicoLisp { return num; } - final static Any do269(Any ex) { // >> + final static Any do270(Any ex) { // >> int i; Any x; i = evInt(ex = ex.Cdr); @@ -6049,26 +6059,26 @@ public class PicoLisp { return ((Number)x).shift(i); } - final static Any do270(Any ex) { // lt0 + final static Any do271(Any ex) { // lt0 Any x; return (x = ex.Cdr.Car.eval()) instanceof Number && x.compare(Zero) < 0? x : Nil; } - final static Any do271(Any ex) { // ge0 + final static Any do272(Any ex) { // ge0 Any x; return (x = ex.Cdr.Car.eval()) instanceof Number && x.compare(Zero) >= 0? x : Nil; } - final static Any do272(Any ex) { // gt0 + final static Any do273(Any ex) { // gt0 Any x; return (x = ex.Cdr.Car.eval()) instanceof Number && x.compare(Zero) > 0? x : Nil; } - final static Any do273(Any ex) { // abs + final static Any do274(Any ex) { // abs return ((Number)ex.Cdr.Car.eval()).abs(); } - final static Any do274(Any ex) { // bit? + final static Any do275(Any ex) { // bit? Any x; Number num; num = (Number)(ex = ex.Cdr).Car.eval(); @@ -6078,7 +6088,7 @@ public class PicoLisp { return num; } - final static Any do275(Any ex) { // & + final static Any do276(Any ex) { // & Any x; Number num; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -6089,7 +6099,7 @@ public class PicoLisp { return num; } - final static Any do276(Any ex) { // | + final static Any do277(Any ex) { // | Any x; Number num; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -6100,7 +6110,7 @@ public class PicoLisp { return num; } - final static Any do277(Any ex) { // x| + final static Any do278(Any ex) { // x| Any x; Number num; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -6111,13 +6121,13 @@ public class PicoLisp { return num; } - final static Any do278(Any ex) { // seed + final static Any do279(Any ex) { // seed long n; n = initSeed(ex.Cdr.Car.eval()) * 6364136223846793005L + 1; return new Number(Seed = n); } - final static Any do279(Any ex) { // rand + final static Any do280(Any ex) { // rand Any x; Seed = Seed * 6364136223846793005L + 1; if ((x = (ex = ex.Cdr).Car.eval()) == Nil) @@ -6127,11 +6137,11 @@ public class PicoLisp { return new Number(((Number)x).Cnt + (int)(Seed >>> 33) % (evInt(ex.Cdr) + 1 - ((Number)x).Cnt)); } - final static Any do280(Any ex) { // path + final static Any do281(Any ex) { // path return mkStr(path(evString(ex.Cdr))); } - final static Any do281(Any ex) { // read + final static Any do282(Any ex) { // read Any x, y; if (!((x = ex.Cdr) instanceof Cell)) x = InFile.read('\0'); @@ -6145,7 +6155,7 @@ public class PicoLisp { return x; } - final static Any do282(Any ex) { // wait + final static Any do283(Any ex) { // wait int i; Any x, y; i = (y = (x = ex.Cdr).Car.eval()) == Nil? -1 : xInt(y); @@ -6155,7 +6165,7 @@ public class PicoLisp { return y; } - final static Any do283(Any ex) { // poll + final static Any do284(Any ex) { // poll int i; Any x; if ((i = xInt(x = ex.Cdr.Car.eval())) < 0 || i >= InFiles.length) @@ -6175,13 +6185,13 @@ public class PicoLisp { return Nil; } - final static Any do284(Any ex) { // peek + final static Any do285(Any ex) { // peek if (InFile.Chr == 0) InFile.get(); return InFile.Chr<0? Nil : mkChar((char)InFile.Chr); } - final static Any do285(Any ex) { // char + final static Any do286(Any ex) { // char Any x; if (!((ex = ex.Cdr) instanceof Cell)) { if (InFile.Chr == 0) @@ -6195,17 +6205,17 @@ public class PicoLisp { return x == T? mkChar((char)0x10000) : new Number(firstChar(x)); } - final static Any do286(Any ex) { // skip + final static Any do287(Any ex) { // skip char c; c = firstChar(ex.Cdr.Car.eval()); return InFile.skip(c) < 0? Nil : mkChar(c); } - final static Any do287(Any ex) { // eol + final static Any do288(Any ex) { // eol return InFile.Chr=='\n' || InFile.Chr<=0? T : Nil; } - final static Any do288(Any ex) { // eof + final static Any do289(Any ex) { // eof if (ex.Cdr.Car.eval() != Nil) { InFile.Chr = -1; return T; @@ -6215,7 +6225,7 @@ public class PicoLisp { return InFile.Chr < 0? T : Nil; } - final static Any do289(Any ex) { // from + final static Any do290(Any ex) { // from int i, j, k; Any x; Any[] v; @@ -6248,7 +6258,7 @@ public class PicoLisp { return Nil; } - final static Any do290(Any ex) { // till + final static Any do291(Any ex) { // till Any x, y; String str; StringBuilder sb; @@ -6270,7 +6280,7 @@ public class PicoLisp { return mkStr(sb); } - final static Any do291(Any ex) { // line + final static Any do292(Any ex) { // line int i; Any x, y, z; StringBuilder sb; @@ -6294,7 +6304,7 @@ public class PicoLisp { } } - final static Any do292(Any ex) { // any + final static Any do293(Any ex) { // any Any x; if ((x = ex.Cdr.Car.eval()) == Nil) return Nil; @@ -6303,14 +6313,14 @@ public class PicoLisp { return rd.read0(true); } - final static Any do293(Any ex) { // sym + final static Any do294(Any ex) { // sym StringWriter sw = new StringWriter(); PrintWriter wr = new PrintWriter(sw); wr.print(ex.Cdr.Car.eval().toString()); return mkStr(sw.toString()); } - final static Any do294(Any ex) { // str + final static Any do295(Any ex) { // str Any x, y; if ((y = (x = ex.Cdr).Car.eval()) == Nil) return Nil; @@ -6329,7 +6339,7 @@ public class PicoLisp { return mkStr(sw.toString()); } - final static Any do295(Any ex) { // load + final static Any do296(Any ex) { // load Any x, y; x = ex.Cdr; do { @@ -6341,7 +6351,7 @@ public class PicoLisp { return y; } - final static Any do296(Any ex) { // in + final static Any do297(Any ex) { // in Any x; Env.pushInFile((x = ex.Cdr).Car.eval().rdOpen(ex)); x = x.Cdr.prog(); @@ -6349,7 +6359,7 @@ public class PicoLisp { return x; } - final static Any do297(Any ex) { // out + final static Any do298(Any ex) { // out Any x; Env.pushOutFile((x = ex.Cdr).Car.eval().wrOpen(ex)); x = x.Cdr.prog(); @@ -6357,7 +6367,7 @@ public class PicoLisp { return x; } - final static Any do298(Any ex) { // open + final static Any do299(Any ex) { // open String str; str = evString(ex.Cdr); try {return new Number(new PicoLispReader(new FileReader(str), str, allocFd(), null, 0).Fd);} @@ -6365,7 +6375,7 @@ public class PicoLisp { return Nil; } - final static Any do299(Any ex) { // close + final static Any do300(Any ex) { // close int i; Any x; if ((i = xInt(x = ex.Cdr.Car.eval())) >= 0 && i < InFiles.length) { @@ -6383,7 +6393,7 @@ public class PicoLisp { return Nil; } - final static Any do300(Any ex) { // echo + final static Any do301(Any ex) { // echo int i, j, k; long n; Any x, y; @@ -6465,20 +6475,20 @@ public class PicoLisp { return T; } - final static Any do301(Any ex) { // prin + final static Any do302(Any ex) { // prin Any x, y; for (y = Nil; (ex = ex.Cdr) instanceof Cell; OutFile.Wr.print((y = ex.Car.eval()).name())); return y; } - final static Any do302(Any ex) { // prinl + final static Any do303(Any ex) { // prinl Any x, y; for (y = Nil; (ex = ex.Cdr) instanceof Cell; OutFile.Wr.print((y = ex.Car.eval()).name())); OutFile.newline(); return y; } - final static Any do303(Any ex) { // space + final static Any do304(Any ex) { // space int i; Any x; if ((x = ex.Cdr.Car.eval()) == Nil) { @@ -6490,7 +6500,7 @@ public class PicoLisp { return x; } - final static Any do304(Any ex) { // print + final static Any do305(Any ex) { // print Any x, y; OutFile.print(y = (x = ex.Cdr).Car.eval()); while ((x = x.Cdr) instanceof Cell) { @@ -6500,7 +6510,7 @@ public class PicoLisp { return y; } - final static Any do305(Any ex) { // printsp + final static Any do306(Any ex) { // printsp Any x, y; x = ex.Cdr; do { @@ -6510,7 +6520,7 @@ public class PicoLisp { return y; } - final static Any do306(Any ex) { // println + final static Any do307(Any ex) { // println Any x, y; OutFile.print(y = (x = ex.Cdr).Car.eval()); while ((x = x.Cdr) instanceof Cell) { @@ -6521,11 +6531,11 @@ public class PicoLisp { return y; } - final static Any do307(Any ex) { // flush + final static Any do308(Any ex) { // flush return OutFile.Wr.checkError()? Nil : T; } - final static Any do308(Any ex) { // port + final static Any do309(Any ex) { // port ex = ex.Cdr; // ... try { ServerSocketChannel chan = ServerSocketChannel.open();; @@ -6536,7 +6546,7 @@ public class PicoLisp { return Nil; } - final static Any do309(Any ex) { // accept + final static Any do310(Any ex) { // accept int i; Any x; if ((i = xInt(x = ex.Cdr.Car.eval())) < 0 || i >= InFiles.length || InFiles[i] == null || InFiles[i].Chan == null) @@ -6546,7 +6556,7 @@ public class PicoLisp { return Nil; } - final static Any do310(Any ex) { // connect + final static Any do311(Any ex) { // connect int i; try { SocketChannel chan = SocketChannel.open(); diff --git a/ersatz/fun.src b/ersatz/fun.src @@ -1557,7 +1557,14 @@ call (i j x) cmd[i] = x.Car.eval().name(); x = x.Cdr; } - try {i = Runtime.getRuntime().exec(cmd).waitFor();} + try { + Process p = Runtime.getRuntime().exec(cmd); + BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); + String line; + while ((line = in.readLine()) != null) + System.out.println(line); + i = p.waitFor(); + } catch (IOException e) {System.err.println(cmd[0] + ": Can't exec");} catch (InterruptedException e) {} //#! sighandler() return i == 0? T : Nil; @@ -1644,6 +1651,10 @@ box? (x) str? (x) return ((x = ex.Cdr.Car.eval()) instanceof Symbol) && Intern.get(x.name()) == null? x : Nil; +# (ext? 'any) -> sym | NIL +ext? T + return Nil; + # (zap 'sym) -> sym zap (s) s = (Symbol)ex.Cdr.Car.eval(); diff --git a/ersatz/picolisp.jar b/ersatz/picolisp.jar Binary files differ.