所以,我正在努力学习一些ruby,一些TDD和一些Treetop。
我有以下语法来解析字符串文字:
grammar Str
rule string
'"'
(
!'"' . / '\"'
)*
'"'
end
end和下面的测试方法:
def test_strings
assert @parser.parse('"Hi there!"')
assert !@parser.parse('"This is not" valid')
assert @parser.parse('"He said, \"Well done!\""')
end第三个测试(带有反斜杠的那个)没有通过(字符串没有被解析):为什么?
谢谢!
发布于 2011-12-18 01:00:38
您需要交换转义引号检查的顺序:
(
'\"' / !'"' .
)*作为另一个示例,您的语法也将与以下内容匹配:
"he said, \"正确地翻转检查也会失败。
https://stackoverflow.com/questions/8546149
复制相似问题