Ich bin verwirrt zwischen Syntax Directed Translation und Parser mit Bison geschrieben. (Die Hauptverwirrung besteht darin, ob der in Bison geschriebene Parser bereits aus syntaxgesteuertem Übersetzer besteht.) Ich umformuliere den obigen Satz in Klammern als (Wie implementiert Bison Syntax Directed Translation, indem er für Eg $$ = $ 1 + $ 3 anfügt)Fragen über Syntax gerichtete Übersetzung und Bison Parser
Diese link sagt, dass
der C-Code in einer Aktion der semantischen Werte der Komponenten abgestimmt durch die Regel mit dem Konstrukt $ n beziehen kann, die für den Wert der n-ten Komponente steht. Der semantische Wert für die zu konstruierende Gruppierung ist $$. (Bison übersetzt beide dieser Konstrukte in Feldelement Referenzen, wenn es kopiert die Aktionen in den Parser-Datei.)
Und auch in Kapitel 5 (Syntax Directed Analysis) der book sagt
Grammatik + semantische Regeln = Syntax Directed Translation
PRODUCTION SEMANTIC RULE
→1 + {. = 1. ┤| . |′+′}
Wenn im folgenden Ausschnitt von Übersetzungsregeln für einen einfachen Parser aus dem Buch suchst Flex and Bison
%%
E: F default $$ = $1
| E ADD F { $$ = $1 + $3; }
| E SUB F { $$ = $1 - $3; }
;
%%
Ist .code
equavelent zu $$
ich so verwirrt bin. Ist syntaxgesteuerte Analyse dasselbe wie semantische Analyse? Je mehr ich lese, desto verwirrter bin ich. Jemand bitte hilf mir das zu klären.
Mögliche Duplikate von [Was bedeutet syntaxgesteuerte Übersetzung?] (Http://stackoverflow.com/questions/15984605/what-does-syntax-directed-translation-mean) –