Javascript ANTLR:如何在算术运算中允许布尔值
我正在尝试编写ANTLR语法来读取JavaScript算术运算 具体来说,我希望在算术运算中支持布尔值,例如Javascript ANTLR:如何在算术运算中允许布尔值,javascript,boolean,antlr,Javascript,Boolean,Antlr,我正在尝试编写ANTLR语法来读取JavaScript算术运算 具体来说,我希望在算术运算中支持布尔值,例如0+true=1和0+false=0 我现在有以下几点: BOOLEAN: 'true' | 'false'; 如何使1也表示“真”,而“0”也表示假 如何在算术运算中允许布尔值 通过将布尔值设置为表达式规则的一种可能的替代方法。事实上,如果你用正常的方式写语法,情况已经是这样了。类似于0+true的内容在几乎任何支持中缀运算符的语言中都在语法上有效(在许多语言中这可能是一
0+true=1
和0+false=0
我现在有以下几点:
BOOLEAN: 'true'
| 'false';
如何使1
也表示“真”,而“0”也表示假
如何在算术运算中允许布尔值
通过将布尔值设置为表达式规则的一种可能的替代方法。事实上,如果你用正常的方式写语法,情况已经是这样了。类似于0+true
的内容在几乎任何支持中缀运算符的语言中都在语法上有效(在许多语言中这可能是一个类型错误,但在语法上仍然有效)
如何使1也表示“真”,而“0”也表示“假”
通过在类型检查、代码生成和/或求值代码中这样对待它。语法没有指定事物的含义——只指定语法上有效和无效的内容以及生成的解析树的外观