在指定允许或不允许的空格时,我需要明确到什么程度?例如,这些规则:
rule lambda
'lambda' ( '(' params ')' )? block
end
rule params
# ...
end
rule block
'{' # ... '}'
end足以与之匹配
lambda {
}基本上,我需要指定可能出现的所有可选空格吗?
发布于 2011-05-25 12:34:46
不,你需要。在这些规则中,您需要跳过空格,但是,例如,当您解析可能包含空格的字符串时,您希望保留它们;这就是您必须指定的原因。
但是,在将treetop应用于字符串之前,您可以尝试运行基于regexp的“快速而肮脏”的算法,在可选的位置丢弃空格。尽管如此,这可能比在语法中指定空格难得多。
https://stackoverflow.com/questions/6119407
复制相似问题