【发布时间】:2010-08-23 15:17:35
【问题描述】:
我正在测试P::RD tutorial 的语法,以便开发自己的语法。 我还没有弄清楚如何打印字符串声明并将“$”附加到它的前面。 例如“STRING sDir”应该打印出“$sDir”。只需执行 $string =~ s/STRING /\$/ 就足够简单了,但是有赋值的情况呢?例如。 “字符串 sDir = aNewDir”。
这里是语法
OP : m([-+*/%]) # Mathematical operators
INTEGER : /[-+]?\d+/ # Signed integers
VARIABLE : /\w[a-z0-9_]*/i # Variable
STRING : /STRING/i # String declaration
expression : INTEGER OP expression
{ return main::expression(@item) }
| VARIABLE OP expression
{ return main::expression(@item) }
| INTEGER
| VARIABLE
{ return $main::VARIABLE{$item{VARIABLE}} }
我开始认为正则表达式就足够了,但想知道如何为逗号分隔的声明创建一个复杂的表达式,例如 "STRING, foo, bar" -> $foo; $酒吧;
【问题讨论】:
标签: perl parsing grammar parse-recdescent