首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bison/Flex If语句

Bison/Flex If语句
EN

Stack Overflow用户
提问于 2015-12-07 08:44:50
回答 1查看 718关注 0票数 0

我正在尝试制作一个可以处理if else语句的解析器。我目前为我的bison.y文件编写了以下代码:

代码语言:javascript
复制
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字符串。and语句是任何语句(从赋值到更多的if语句)。然而,当if为真时,我不知道如何只做语句。

EN

回答 1

Stack Overflow用户

发布于 2015-12-07 09:28:00

if语句被编译成如下形式的伪代码:

代码语言:javascript
复制
    ; set up the condition 
    TEST
    BRANCH FALSE $1
    ; body of 'if' statement
$1: ; next statement

一条if/else语句:

代码语言:javascript
复制
    ; set up the condition 
    TEST
    BRANCH FALSE $1
    ; body of 'if' statement
    BRANCH $2
$1:  ; // body of 'else' statement
$2: ; next statement
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34124771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档