#lang br/quicklang (require "tmUtils.rkt") (define-macro (tA-module-begin PARSE-TREE) #'(#%module-begin PARSE-TREE (display-result '(a a a a a)))) (provide (rename-out [tA-module-begin #%module-begin])) (define-macro (tA-program START-ARG BLANK-ARG ACCEPT-ARG STATE-SET-ARG) #'(void START-ARG BLANK-ARG ACCEPT-ARG STATE-SET-ARG)) (provide tA-program) (define-macro (tA-start "@" START-ARG) #'(set-start! START-ARG)) (provide tA-start) (define-macro (tA-blank "%" BLANK-ARG) #'(set-def! BLANK-ARG)) (provide tA-blank) (define-macro (tA-accept "!" ACCEPT-ARG) #'(void)) (provide tA-accept) (define-macro (tA-state-set STATE-ARG ...) #'(begin STATE-ARG ...)) (provide tA-state-set) (define-macro (tA-tran CURRENT "~" NEW DIR NEXT) #'(lambda (i) (hash-set! trans-map `(,i ,CURRENT) `(,NEW ,DIR ,NEXT)))) (provide tA-tran) (define-macro (tA-tran-set TRAN ...) #'(lambda (i) (begin (TRAN i) ...))) (provide tA-tran-set) (define-macro (tA-state ":" ID TRAN-SET) #'(TRAN-SET ID)) (provide tA-state) (define-macro (tA-state-id ID) #'(string->symbol ID)) (provide tA-state-id) (define-macro (tA-symbol SYM) #'(string->symbol SYM)) (provide tA-symbol) (define-macro (tA-dir DIR) #'(begin (if (equal? "<" DIR) 'L 'R))) (provide tA-dir)