Gast
#2341048
Hier [1] ist eine Grammatik der Sprache C. Mit Produktion:
stat : labeled_stat
| exp_stat
| compound_stat
| selection_stat
| iteration_stat
| jump_stat
;
und dem Symbol für eine for-Schleife ('syfor'), kann ich sofort mit der
Produktion iteration_stat weitermachen.
So geht das mit praktisch allen anderen Produktionen auch. Das aktuelle
Symbol führt mich zur nächsten Produktion.
Wenn die Produktionen labeled_stat, compound_stat, selection_stat,
iteration_stat und jump_stat nicht zutreffen, weil ich als Symbol eine
Bezeichner (Variable) habe, dann verwende ich die Produktion exp_stat.
Die Produktion exp_stat führt zu der Produktion:
exp_stat : exp';'
| ';'
;
Die Produktion exp führt zu der Produktion:
exp : assignment_exp
| exp ',' assignment_exp
;
Die Produktion exp führt zu der Produktion:
assignment_exp : conditional_exp
| unary_exp assignment_operator assignment_exp
;
Meine Fragen:
Warum wird zwischen "conditional_exp" und "unary_exp assignment_operator
assignment_exp" und an welchem Symbol auf dieser Ebene erkenne ich das?
Ist es nicht so, dass die Entscheidung welche Produktionen zu verfolgen
sind, nur vom aktuellen Symbol abhängt?
[1 ]http://www.cs.man.ac.uk/~pjj/bnf/c_syntax.bnf