2
我正在嘗試創建一個簡單的解析器。如果「if」條件失敗,則跳過解析語句
cond: T_IF '(' exp ')' '#' stmt_block opt_elseifs opt_else end {if($3 == 0) return;}
opt_elseifs : /* Nothing */
| opt_elseifs T_ELSIF '(' exp ')' '#' stmt_block '#'
;
opt_else : /* Nothing */
| T_ELSE '#' stmt_block '#'
;
end : '#'
;
例如
a = 0;
if(a) #
c = 10 + 20;
#
我不想的C滌棉值,但這是打印C的值。 我在這裏做錯了什麼?
爲什麼不在'cond'規則中放置''#''而不是'end'? –
謝謝Basile ..但我想這不是真正的問題 – WordsWorth
我不明白這個問題。 「c」如何打印?你的詞法分析器是什麼?誰在印刷'c'? –