[英]Context-free grammar for VBA
我正在嘗試掃描和解析學校作業的VBA(應用程序的Visual Basic)代碼。
我正在使用Python PLY lex和yacc模塊。 現在,我只是想讓變量聲明和賦值用作概念證明。 我的初步語法理解變量聲明或賦值。 我在其中放置換行符(\\ n)並添加另一條語句后,它什么都不懂。 即:在要點的代碼中,如果從第92行的字符串中刪除“ a = 3”,它將正常工作,並在標識符列表中插入一個標識符。
我在掃描儀中處理換行符,因此我認為我的語法定義有問題,但無法弄清楚。
語法基本上是這樣的:
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模塊中定義的標記。
我用以下代碼創建了要點 : https : //gist.github.com/clsk/22c386695dd1ddb7ca75
@rici寫道:
這是單個語句的語法。 為什么期望它與多個語句一起使用? 沒有地方可以表明多個陳述是合法的輸入。
OP寫道:
確實,這就是問題所在。 謝謝你的指導
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.