Treetop语法中的空白

| 指定是否允许空格时,我需要明确表示什么?例如,以下规则:
rule lambda
  \'lambda\' ( \'(\' params \')\' )? block
end

rule params
  # ...
end

rule block
  \'{\' # ... \'}\'
end
足以匹配
lambda {
}
基本上,我需要指定可能出现可选空格的所有地方吗?     
已邀请:
是的你是。在这些规则中,您需要跳过空格,但是,例如,当您分析可能包含空格的字符串时,您希望保留它们;这就是为什么您必须指定。 但是,在将树梢应用于字符串之前,您可以尝试运行基于“快速且肮脏”的基于正则表达式的算法,该算法会从可选的位置丢弃空格。尽管如此,这可能比在语法中指定空格要难得多。     

要回复问题请先登录注册