@@ -860,6 +860,29 @@ CompExpr.prototype.evalTrue = function(a, b) {
860860
861861function lispFnOrder ( a , b ) { return cst . compExprArr [ 0 ] . evalTrue ( a , b ) ? - 1 : 1 ; }
862862
863+ function emuprompt ( c ) { // No support (yet) for the two parameters (non-split chars and comment char).
864+ if ( emuEnv ( ) == 'nodejs' ) {
865+ var readlinesync = require ( 'readline-sync' ) ;
866+ readlinesync . setPrompt ( "" ) ;
867+ _stdPrompt = readlinesync . prompt ;
868+ } else {
869+ if ( typeof stdPrompt != "undefined" ) {
870+ var _stdPrompt = stdPrompt ;
871+ } else {
872+ var _stdPrompt = window . prompt ;
873+ }
874+ }
875+ var user_input = _stdPrompt ( ) ;
876+ if ( emuEnv ( ) == 'nodejs' ) {
877+ readlinesync . setPrompt ( ": " ) ;
878+ }
879+ if ( user_input === "" ) {
880+ return NIL ;
881+ } else {
882+ return newTransSymbol ( user_input ) ;
883+ }
884+ }
885+
863886var coreFunctions = {
864887 "and" : function ( c ) { var v = NIL ; while ( c instanceof Cell ) { v = evalLisp ( c . car ) ;
865888 if ( ! aTrue ( v ) ) return NIL ; c = c . cdr ; } return v ;
@@ -1169,6 +1192,7 @@ var coreFunctions = {
11691192 while ( symArr . length > 0 ) { symArr . pop ( ) . popValue ( ) ; }
11701193 return v ;
11711194 } ,
1195+ "line" : emuprompt ,
11721196 "link" : linkc ,
11731197 "list" : function ( c ) { return ( c !== NIL ) ? evalArgs ( c ) : new Cell ( NIL , NIL ) ; } ,
11741198 "load" : function ( c ) { var r = NIL ;
@@ -1319,28 +1343,7 @@ var coreFunctions = {
13191343 var r = new List ( ) ; do { r . link ( n ) ; n = new Number ( n + s ) ; } while ( ( s > 0 ) ? ( n <= n2 ) : ( n >= n2 ) ) ;
13201344 return r . list ;
13211345 } ,
1322- "read" : function ( c ) { // No support (yet) for the two parameters (non-split chars and comment char).
1323- if ( emuEnv ( ) == 'nodejs' ) {
1324- var readlinesync = require ( 'readline-sync' ) ;
1325- readlinesync . setPrompt ( "" ) ;
1326- _stdPrompt = readlinesync . prompt ;
1327- } else {
1328- if ( typeof stdPrompt != "undefined" ) {
1329- var _stdPrompt = stdPrompt ;
1330- } else {
1331- var _stdPrompt = window . prompt ;
1332- }
1333- }
1334- var user_input = _stdPrompt ( ) ;
1335- if ( emuEnv ( ) == 'nodejs' ) {
1336- readlinesync . setPrompt ( ": " ) ;
1337- }
1338- if ( user_input === "" ) {
1339- return NIL ;
1340- } else {
1341- return newTransSymbol ( user_input ) ;
1342- }
1343- } ,
1346+ "read" : emuprompt ,
13441347 "rest" : function ( c ) { return cst . evFrames . car . cdr ; } ,
13451348 "reverse" : function ( c ) { var lst = evalLisp ( c . car ) , r = NIL ;
13461349 if ( ! ( lst instanceof Cell ) ) return NIL ;
0 commit comments