1

我正在开发一个为 ECMAScript 文件的文本构建符号表的解析应用程序。我遇到的问题是在处理带有ParseTreeListener.

这是使用Chris Lambrou 的 ANTLR 语法,它似乎与ECMAScript 规范中的官方语法非常接近。有一个名为 的解析器规则leftHandSideExpression,但这是具有欺骗性的,因为当在 TestRig GUI 中显示时,它也始终显示在表达式的右侧。

这是一项需要访问者模式的任务吗?

欣赏建议。

4

1 回答 1

1

leftHandSideExpression只能出现在以下位置:

  • 在 的左侧assignmentOperator。请注意,这可以是右手边,例如 中的表达式yx = y = 3
  • x后缀递增/递减运算符( inx++x--)的表达式部分。
  • for (... in语句的初始化部分。

要确定您当前是否正在查看赋值表达式的左侧,请检查当前解析树节点及其父节点,以查找LeftHandSideExpressionContext其父节点为AssignmentExpressionContextor的 a AssignmentExpressionNoInContext

于 2013-04-17T15:41:39.963 回答