Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Abstract syntax tree 树梢语法中的空白_Abstract Syntax Tree_Treetop - Fatal编程技术网

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的算法,该算法将从可选位置丢弃空白。不过,这可能比在语法中指定空白要困难得多。

谢谢。我想我可能需要这样做,但我想在遇到麻烦之前确认一下。