diff --git a/beautiful-racket-demo/algebra-demo/main.rkt b/beautiful-racket-demo/algebra-demo/main.rkt index 4772bb9..9f1b4b8 100644 --- a/beautiful-racket-demo/algebra-demo/main.rkt +++ b/beautiful-racket-demo/algebra-demo/main.rkt @@ -8,9 +8,9 @@ (define-lex-abbrev reserved-toks (:or "fun" "(" ")" "=" "+" ",")) -(define lex +(define tokenize (lexer - [whitespace (lex input-port)] + [whitespace (tokenize input-port)] [reserved-toks lexeme] [alphabetic (token 'ID (string->symbol lexeme))] [(:+ (char-set "0123456789")) (token 'INT (string->number lexeme))])) @@ -27,8 +27,7 @@ (define-macro func-app #'#%app) (define (read-syntax src ip) - (define token-thunk (λ () (lex ip))) - (define parse-tree (parse token-thunk)) + (define parse-tree (parse (λ () (tokenize ip)))) (strip-context (with-syntax ([PT parse-tree]) #'(module mod-name algebra-demo diff --git a/beautiful-racket-demo/javascriptlike-demo/grammar.rkt b/beautiful-racket-demo/javascriptlike-demo/grammar.rkt index 1f37164..a1ed89f 100644 --- a/beautiful-racket-demo/javascriptlike-demo/grammar.rkt +++ b/beautiful-racket-demo/javascriptlike-demo/grammar.rkt @@ -6,7 +6,8 @@ assignment : /"var" id /"=" expr @expr : comparison comparison : [comparison ("!=" | "==")] sumlike sumlike : [@sumlike /"+"] value -@value : id | INTEGER | STRING | object | func-def | func-app | increment +@value : id | INTEGER | STRING | object + | func-def | func-app | increment increment : id /"++" object : /"{" @kvs /"}" kvs : [kv (/"," kv)*] diff --git a/beautiful-racket-demo/javascriptlike-demo/main.rkt b/beautiful-racket-demo/javascriptlike-demo/main.rkt index 23f79e1..f0ef3ca 100644 --- a/beautiful-racket-demo/javascriptlike-demo/main.rkt +++ b/beautiful-racket-demo/javascriptlike-demo/main.rkt @@ -9,7 +9,7 @@ ":" "," "(" ")" "//" "/*" "*/" "if" "while" "==" "!=" "function" "return" "++")) -(define lex +(define tokenize (lexer [(:or (from/stop-before "//" "\n") (from/to "/*" "*/")) (token 'COMMENT #:skip? #t)] @@ -26,8 +26,8 @@ [any-char lexeme])) (define (read-syntax src ip) - (define parse-tree (parse (λ () (lex ip)))) + (define parse-tree (parse (λ () (tokenize ip)))) (strip-context (with-syntax ([PT parse-tree]) - #'(module _ javascriptlike-demo/expander + #'(module you-win javascriptlike-demo/expander PT)))) \ No newline at end of file diff --git a/beautiful-racket-demo/precalc-demo/main.rkt b/beautiful-racket-demo/precalc-demo/main.rkt index d871100..5c0308b 100644 --- a/beautiful-racket-demo/precalc-demo/main.rkt +++ b/beautiful-racket-demo/precalc-demo/main.rkt @@ -8,10 +8,10 @@ (define-lex-abbrev reserved-toks (:or "fun" "(" ")" "=" "+" "*" "/" "-" ",")) -(define lex +(define tokenize (lexer [(:or (from/to "//" "\n") (from/to "/*" "*/")) (token 'COMMENT #:skip? #t)] - [whitespace (lex input-port)] + [whitespace (tokenize input-port)] [reserved-toks lexeme] [alphabetic (token 'ID (string->symbol lexeme))] [(:+ (char-set "0123456789")) (token 'INT (string->number lexeme))])) @@ -35,8 +35,7 @@ (define-macro func-app #'#%app) (define (read-syntax src ip) - (define token-thunk (λ () (lex ip))) - (define parse-tree (parse token-thunk)) + (define parse-tree (parse (λ () (tokenize ip)))) (strip-context (with-syntax ([PT parse-tree]) #'(module mod-name precalc-demo diff --git a/beautiful-racket-demo/xmlish-demo/main.rkt b/beautiful-racket-demo/xmlish-demo/main.rkt index f0a2f71..9b663bd 100644 --- a/beautiful-racket-demo/xmlish-demo/main.rkt +++ b/beautiful-racket-demo/xmlish-demo/main.rkt @@ -8,7 +8,7 @@ (define-lex-abbrev xml-reserved (:or "<" "/>" "" "" "=" "\"")) -(define lex +(define tokenize (lexer [(:+ whitespace) (token 'SP " ")] ["&" (token 'AMP "&")] @@ -36,7 +36,7 @@ (string->symbol (apply string strs))) (define (read-syntax src ip) - (define parse-tree (parse (λ () (lex ip)))) + (define parse-tree (parse (λ () (tokenize ip)))) (strip-context (with-syntax ([PT parse-tree]) #'(module mel xmlish-demo