有比这更简单的解析1行注释的方法吗?
comment
^ '//' asParser ,
(#any asParser starLazy: (#newline asParser)) ,
#newline asParser
==> [ :result | nil "Ignore comments" ]
program
^ (comment / instruction) star
==> [ :result | N2TProgramNode new
setNodes: (result copyWithout: nil) ]我特别不确定(#newline asParser)和#copyWithout:的重复。
在Lukas的回答之后,我想出了一个简单得多的解决方案:
program
^ programEntity star
==> [ :result | N2TProgramNode new setNodes: result]
programEntity
^ instruction trim: ignorable
ignorable
^ comment / #space asParser
comment
^ '//' asParser , #newline asParser negate star发布于 2013-02-12 17:16:50
为什么下面的注释解析器也不能工作呢?
'//' asParser , #newline asParser negate star另外,您可能希望将注释的解析包含到使用trim:的空白解析中(如果语法允许的话),所以您不必一直考虑它。
https://stackoverflow.com/questions/14832807
复制相似问题