首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >if语句发出ply py

if语句发出ply py
EN

Stack Overflow用户
提问于 2020-04-28 14:19:25
回答 1查看 77关注 0票数 0

我想在我的语言中实现if else条件。目前我有

代码语言:javascript
复制
def p_if_statement(p):
     '''if_statement : IF LPAREN condition RPAREN LCURLY statements RCURLY
                 | IF LPAREN condition RPAREN LCURLY statements RCURLY ELSE LCURLY statements RCURLY'''
    print(p[0:10])

我知道它是未完成的,但当if条件为false时,我不知道该怎么做。示例:

代码语言:javascript
复制
if(False){ 
    a = 5;
    print(a);
}

这段代码将打印5,然后打印p0:10。看起来语句在条件语句之前进行了计算。任何帮助都将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2020-04-28 16:45:45

是这样的。当一个铺层减少动作函数执行时,它的所有组件都已执行。如果不是这样,参数p就不可能包含组件的语义值。

因此,如果您希望将循环和条件语句合并到正在解析的语言中,则必须放弃在解析过程中直接求值的想法。相反,解析需要创建已解析文本的描述,随后可以对其进行评估(或编译以供以后评估)。

描述已解析文本的一种常见形式是抽象语法树( Abstract Syntax Tree,AST),尽管还有许多其他选项(而且没有明确的AST,因此您也有很大的灵活性)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61473838

复制
相关文章

相似问题

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