首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >antlr同型算术表达式

antlr同型算术表达式
EN

Stack Overflow用户
提问于 2019-03-09 00:15:11
回答 1查看 113关注 0票数 1

尝试编写一个antlr语法,它只解析相同类型变量的算术表达式。如果它与左侧或右侧不是同一类型,则不应对其进行解析。这是我所拥有的;

代码语言:javascript
复制
stat
    :   Left = VARIABLE Op = ASSIGMENT Right = expr     # Assigment
    ;

expr
    :   '('   Exp = expr ')'                            # Parens
    |   MINUS Exp = expr                                # UnaryMinus
    |   Left = expr Op = (TIMES | DIV)  Right = expr    # MulDiv
    |   Left = expr Op = (PLUS  | MINUS) Right = expr   # AddSub
    |   (VARIABLE | CONSTANT)                           # Element
    ;

ASSIGMENT   :   '=' ;
PLUS        :   '+' ;
MINUS       :   '-' ;
TIMES       :   '*' ;
DIV         :   '/' ;
LPAREN      :   '(' ;
RPAREN      :   ')' ;

我不想要像x= 5 + 'f‘或x=c-5这样的东西(如果c是不是整数的变量)

EN

回答 1

Stack Overflow用户

发布于 2019-03-11 20:10:52

它被称为Semantic analysis

解析完成后,您必须遍历生成的AST并检查每个表达式和变量的正确性。

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

https://stackoverflow.com/questions/55067020

复制
相关文章

相似问题

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