gpt4 book ai didi

python - 访问用括号定义的属性

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:42 25 4
gpt4 key购买 nike

我正在使用 antlr4 和 python2 目标,

additive_expression returns [value] @init{$value = 0;}
: multiplicative_expression ((PLUS_OPERATOR | MINUS_OPERATOR) multiplicative_expression)*

由于 ((PLUS_OPERATOR | MINUS_OPERATOR) multiplicative_expression) 表达式出现零次或多次,

我需要单独访问每个值,然后计算最终值。

有什么想法吗?我已经尝试过以下方法,但没有一个有效

  1. 使用 re = (...) ,antlr 说我无法为非集合定义它
  2. 使用op = (PLUS_OPERATOR | MINUS_OPERATOR)等,但它总是指向表达式的最后一次出现

最佳答案

尝试这样的事情:

additive_expression returns [value] 
@init{$value = 0;}
: e1=multiplicative_expression {$value = $e1.value;}
( PLUS_OPERATOR e2=multiplicative_expression {$value += $e2.value;}
| MINUS_OPERATOR e2=multiplicative_expression {$value -= $e2.value;}
)*
;

或者更好的是,使用访问者而不是在语法中嵌入目标代码1

1 ANTLR4 visitor pattern on simple arithmetic example

关于python - 访问用括号定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39342740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com