我正在开发一个为 ECMAScript 文件的文本构建符号表的解析应用程序。我遇到的问题是在处理带有ParseTreeListener
.
这是使用Chris Lambrou 的 ANTLR 语法,它似乎与ECMAScript 规范中的官方语法非常接近。有一个名为 的解析器规则leftHandSideExpression
,但这是具有欺骗性的,因为当在 TestRig GUI 中显示时,它也始终显示在表达式的右侧。
这是一项需要访问者模式的任务吗?
欣赏建议。
我正在开发一个为 ECMAScript 文件的文本构建符号表的解析应用程序。我遇到的问题是在处理带有ParseTreeListener
.
这是使用Chris Lambrou 的 ANTLR 语法,它似乎与ECMAScript 规范中的官方语法非常接近。有一个名为 的解析器规则leftHandSideExpression
,但这是具有欺骗性的,因为当在 TestRig GUI 中显示时,它也始终显示在表达式的右侧。
这是一项需要访问者模式的任务吗?
欣赏建议。
leftHandSideExpression
只能出现在以下位置:
assignmentOperator
。请注意,这也可以是右手边,例如 中的表达式y
。x = y = 3
x
后缀递增/递减运算符( inx++
或x--
)的表达式部分。for (... in
语句的初始化部分。要确定您当前是否正在查看赋值表达式的左侧,请检查当前解析树节点及其父节点,以查找LeftHandSideExpressionContext
其父节点为AssignmentExpressionContext
or的 a AssignmentExpressionNoInContext
。