Как исправить ошибку несвязанного идентификатора в моем парсере хвастовства? - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь сделать парсер в ракетке, используя хвастовство.У меня была намного большая идея, но я не могу заставить мой парсер работать.В настоящее время мой файл "parser.rkt" имеет следующее простое правило:

#lang brag
entry-date : @digit{1,2} "-" @digit{1,2} "-" @digit{4}
digit : "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "0"

Когда я тестирую свой парсер, я получаю корректный вывод:

(parse-to-datum "01-02-1920")
>'(entry-date "0" "1" "-" "0" "2" "-" "1" "9" "2" "0")

Однако, когда я пытаюсьзапустив его, я получаю эту ошибку:

#lang reader "accounting_reader.rkt"
01-02-1920
> *entry-date: unbound identifier in: entry-date

Это мой токенизатор в моем файле считывателя:

(require brag/support)
(define (make-tokenizer port)
  (define (next-token)
    (define ac-lexer
      (lexer
       [(char-set "-1234567890") lexeme]
       [any-char (next-token)]))
    (ac-lexer port))  
  next-token)

Есть идеи, почему он не хочет работать?

1 Ответ

0 голосов
/ 13 марта 2019

У меня была ошибка в моей функции module-start в моем расширителе (отсутствует ').Я не осознавал, что ошибка зашла так далеко в мои файлы.Если ваш расширитель неверен, не имеет значения, что читается.

...