Я смущен между синтаксисом Directed Translation и парсером, написанным с использованием Bison. (Основная путаница заключается в том, состоит ли синтаксический анализатор, написанный в Bison, уже из синтаксического ориентированного переводчика.) Я перефразирую приведенное выше предложение в скобках как (Как Bison реализует синтаксический речевой перевод, связан ли он с помощью Eg $$ = $ 1 + $ 3)Вопросы о синтаксисе с прямым переводом и Bison Parser
Это говорит, что link
код с в действии может относиться к семантическим значениям компонентов подобранных по правилу с конструкцией $ п, которая выступает за значение п-го компоненты. Семантическое значение для строящейся группировки - $$. (Bison переводит обе эти конструкции в ссылки на элементы массива копирует действия в файл анализатора.)
А также в главе 5 (Синтаксис Directed анализа) о book говорит
Грамматика + Семантические правила = Синтаксис Directed Перевод
PRODUCTION SEMANTIC RULE
→1 + {. = 1. ┤| . |′+′}
при взгляде на следующем фрагменте правил перевода для простого парсера из книги Flex and Bison
%%
E: F default $$ = $1
| E ADD F { $$ = $1 + $3; }
| E SUB F { $$ = $1 - $3; }
;
%%
ли .code
equavelent к $$
Я так растерялся. Является ли синтаксический направленный анализ таким же, как семантический анализ? Чем больше я читаю, тем больше смущаюсь. Кто-то, пожалуйста, помогите мне разобраться.
Возможный дубликат [Что означает синтаксис направленного перевода?] (Http://stackoverflow.com/questions/15984605/what-does-syntax-directed-translation-mean) –