Я очень новичок в Flex / Bison, так что это очень наиве вопрос.
Простите меня, если так. Может выглядеть как домашнее задание, но мне нужно реализовать проект на основе приведенной ниже концепции.
Мой вопрос связан с двумя частями,
Вопрос 1
В парсере Bison, Как мне предоставить правила для необязательного ввода.
Мол, мне нужно разобрать запись
Пример:
-country='USA' -state='INDIANA' -population='100' -ratio='0.5' -comment='Census study for Indiana'
Здесь токен отношения может быть необязательным. Точно так же, если у меня есть много необязательных токенов, то как я могу предоставить грамматику в парсере для того же самого?
Мой код выглядит так,
% запуска программы
программа: TK_COUNTRY TK_IDENTIFIER TK_STATE TK_IDENTIFIER TK_POPULATION TK_IDENTIFIER ...
где все токены определены в лексере. Поскольку есть много токенов, которые являются необязательными, если я использую "|" тогда будет много разных способов ввода.
Вопрос 2
Есть большая вероятность, что комментарий может содержать кавычки как часть ввода, поэтому я добавил токен -tag, который пользователь может предоставить для интерпретации того же самого,
Пример:
-country='USA' -state='INDIANA' -population='100' -ratio='0.5' -comment='Census study for Indiana$'s population' -tag=$
Теперь мне нужно переосмыслить Индиану как Индиану с -tag=$
.
Пожалуйста, предоставьте любые материалы или материалы для понимания этой темы.