diff options
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -43,8 +43,8 @@ restart: while(!off){ checkmem("main loop"); - Rune *input = prompt(L"\t"); - Datum *result = evalline(input, 1); + print("\t"); + Datum *result = evalline(nil, stdin, 1); if(result == nil) continue; else{ @@ -75,9 +75,16 @@ prompt(Rune *pr) } Datum * -evalline(Rune *line, int toplevel) +evalline(Rune *line, Biobuf *bio, int toplevel) { - Statement *stmts = lexline(line, toplevel); + Statement *stmts; + if(line) + stmts = lexlinestr(line, toplevel); + else if(bio) + stmts = lexlinebio(bio, toplevel); + else + stmts = lexlinebio(stdin, toplevel); + Datum *result = eval(stmts, toplevel); if(result) return result; |