diff --git a/beautiful-racket-demo/basic-demo-3/misc.rkt b/beautiful-racket-demo/basic-demo-3/misc.rkt index 00e5b02..dbb2564 100644 --- a/beautiful-racket-demo/basic-demo-3/misc.rkt +++ b/beautiful-racket-demo/basic-demo-3/misc.rkt @@ -1,6 +1,6 @@ #lang br (require "struct.rkt") -(provide b-rem b-print b-let b-input b-require) +(provide b-rem b-print b-let b-input b-statement b-require) (define (b-rem val) (void)) @@ -14,4 +14,6 @@ [num (string->number (string-trim str))]) (or num str)))) +(define-macro (b-statement STMT) #'STMT) + (define-macro (b-require ID) #'(void)) \ No newline at end of file diff --git a/beautiful-racket-demo/basic-demo-3/runtime.rkt b/beautiful-racket-demo/basic-demo-3/runtime.rkt index 229a3d5..45360ad 100644 --- a/beautiful-racket-demo/basic-demo-3/runtime.rkt +++ b/beautiful-racket-demo/basic-demo-3/runtime.rkt @@ -1,12 +1,16 @@ #lang br -(require (prefix-in basic: (submod "main.rkt" reader))) +(require "parser.rkt" "tokenizer.rkt") (provide current-basic-port configure-repl!) (define current-basic-port (make-parameter #f)) (define (configure-repl!) - ;; wrap REPL interactions with pollen expression support - (define racket-read (current-read-interaction)) - (define (basic-read src in) - (basic:read-syntax src in)) - (current-read-interaction basic-read)) \ No newline at end of file + (define statement-parser (make-rule-parser b-statement)) + (define (read-one-line path port) + (define one-line (read-line port)) + (if (eof-object? one-line) + eof + (statement-parser (make-tokenizer (open-input-string one-line))))) + (current-read-interaction read-one-line)) + + diff --git a/beautiful-racket-demo/basic-demo-3/sample-shell.rkt b/beautiful-racket-demo/basic-demo-3/sample-shell.rkt index 33d077f..7742dd5 100644 --- a/beautiful-racket-demo/basic-demo-3/sample-shell.rkt +++ b/beautiful-racket-demo/basic-demo-3/sample-shell.rkt @@ -1,2 +1,4 @@ #lang basic-demo-3 -10 print "got shell arg" : print arg0 : print arg1 \ No newline at end of file +10 print "got shell arg" : print arg0 : print arg1 +20 a = 5 +30 def f(x) = x ^ x \ No newline at end of file