我试图创建一个可以处理if语句的解析器。我目前为我的bison.y文件提供了以下代码:
ifstate: IF_TOKEN LPARENT compare RPARENT statement ENDIF_TOKEN
| IF_TOKEN LPARENT compare RPARENT statement else
;
else: ELSE_TOKEN statement ENDIF_TOKEN
| ELSEIF_TOKEN LPARENT compare RPARENT statement ENDIF_TOKEN
| ELSEIF_TOKEN LPARENT compare RPARENT statement else
;
这里我比较返回一个true或false的字符串。和语句是任何语句(从添加到更多if语句的赋值)。但是,如果是真的话,我不知道如何只做陈述。
答案 0 :(得分:0)
if
语句编译成表格的伪代码:
; set up the condition
TEST
BRANCH FALSE $1
; body of 'if' statement
$1: ; next statement
if/else
声明:
; set up the condition
TEST
BRANCH FALSE $1
; body of 'if' statement
BRANCH $2
$1: ; // body of 'else' statement
$2: ; next statement