Я работаю на синтаксическом анализаторе для языка, который имеетконтекстного лексический анализ кода
идентификаторов (например, в письме следует ряд буквенно-цифровых символов или подчеркивание),
целых (любое число цифр и, возможно, CARETS
^
),некоторые операторы,
имя файла (количество алфавитно-цифровых символов и, возможно, косой черты и точек)
Видимо имя файла перекрывается целые и идентификаторы, так что в целом я не могу решить, если у меня есть имя файла или, скажем, идентификатор, если имя файла не содержит косой чертой или точкой.
Но имя файла может следовать только за конкретным оператором.
Мой вопрос в том, как эта ситуация обычно обрабатывается во время токенизации? У меня есть токенизатор с таблицей (lexer), но я не уверен, как указать имя файла из целого или идентификатора. Как это делается?
Если имя файла было подмножеством целых чисел и идентификаторов, то я, вероятно, мог бы грамматику производств, которые могли бы справиться с этим, но маркеры перекрывают ...
Лично я бы не использовал токенизатор. – melpomene