Abstract syntax tree 树梢语法中的空白
当指定是否允许空白时,我需要有多明确?例如,这些规则:Abstract syntax tree 树梢语法中的空白,abstract-syntax-tree,treetop,Abstract Syntax Tree,Treetop,当指定是否允许空白时,我需要有多明确?例如,这些规则: rule lambda 'lambda' ( '(' params ')' )? block end rule params # ... end rule block '{' # ... '}' end 相配 lambda { } 基本上,我需要指定可能出现可选空白的任何地方吗?是的,您需要指定。在这些规则中,您需要跳过空格,但是,例如,当您解析可能包含空格的字符串时,您希望保留它们;这就是为什么你必须指定 但是,在将t
rule lambda
'lambda' ( '(' params ')' )? block
end
rule params
# ...
end
rule block
'{' # ... '}'
end
相配
lambda {
}
基本上,我需要指定可能出现可选空白的任何地方吗?是的,您需要指定。在这些规则中,您需要跳过空格,但是,例如,当您解析可能包含空格的字符串时,您希望保留它们;这就是为什么你必须指定
但是,在将treetop应用于字符串之前,您可以尝试运行一个基于“快速且脏”regexp的算法,该算法将从可选位置丢弃空白。不过,这可能比在语法中指定空白要困难得多。谢谢。我想我可能需要这样做,但我想在遇到麻烦之前确认一下。