1
私は組み込みeval関数を呼び出すことなく、ラケットで評価関数を複製しようとしています。私は現在、私はパーサーの乗算を実装する方法をわからないんだけど、現時点では、単純な数学のレクサーとパーサ評価関数を再作成する
$(define simple-math-lexer
(lexer
((re-+ number10) (token-NUM (string->number lexeme)))
("-" (token--))
("+" (token-+))
;; recursively calls the lexer which effectively skips whitespace
(whitespace (simple-math-lexer input-port))
((eof) (token-EOF))))
(define simple-math-parser
(parser
(start exp)
(end EOF)
(error void)
(tokens a b)
(precs (left - +))
(grammar
(exp ((NUM) $1)
((+ exp exp) (+ $2 $3))
((- exp exp) (- $2 $3))))))
を使用しています。 助言への提案やリンクがあれば幸いです。