Python VBA的上下文无关语法
我正在尝试扫描和解析学校作业的VBA(visual basic for application)代码 我正在使用Python PLY lex和yacc模块。现在我只是想让变量声明和赋值作为概念证明。 我的初级语法理解变量声明或赋值。当我在其中放入换行符(\n)并添加另一条语句时,它什么都不懂。 ie:在要点中的代码中,如果从第92行的字符串中删除“a=3”,它将正常工作,并在标识符列表中插入标识符 我在扫描器中处理换行符,所以我认为我的语法定义有问题,但无法找出它 语法基本上是这样的:Python VBA的上下文无关语法,python,context-free-grammar,ply,Python,Context Free Grammar,Ply,我正在尝试扫描和解析学校作业的VBA(visual basic for application)代码 我正在使用Python PLY lex和yacc模块。现在我只是想让变量声明和赋值作为概念证明。 我的初级语法理解变量声明或赋值。当我在其中放入换行符(\n)并添加另一条语句时,它什么都不懂。 ie:在要点中的代码中,如果从第92行的字符串中删除“a=3”,它将正常工作,并在标识符列表中插入标识符 我在扫描器中处理换行符,所以我认为我的语法定义有问题,但无法找出它 语法基本上是这样的: stat
statement : declaration
| assignment
declaration : DIM IDENTIFIER AS TYPE
assignment : IDENTIFIER ASSIGN BOOLEAN
| IDENTIFIER ASSIGN DOUBLE
| IDENTIFIER ASSIGN INT
请注意,IDENTIFIER、ASSIGN、BOOLEAN、DOUBLE、INT DIM、AS和TYPE都是在lex模块中定义的标记
我已经创建了一个位于:@rici写道:
这是一个单一语句的语法。为什么您希望它可以处理多个语句?没有一个产品表明多个语句是合法输入 OP写道:
事实上,这就是问题所在。谢谢你的指点
这是一个单一语句的语法。为什么您希望它可以处理多个语句?没有一个作品表明多个陈述是合法的输入。事实上,这就是问题所在。谢谢你的指点