3
我有語法文件alexa_scrape.tt
:我的Treetop語法有什麼問題?
grammar AlexaScrape
rule document
category_listing*
end
rule category_listing
category_line url_line*
end
rule category_line
category "\n"
end
rule category
("/" [^/]+)+
end
rule url_line
[0-9]+ ". " url "\n"
end
rule url
[^\n]*
end
end
我有試圖利用它紅寶石文件:
#!/usr/bin/env ruby -I .
require 'rubygems'
require 'polyglot'
require 'treetop'
require 'alexa_scrape.tt'
parser = AlexaScrapeParser.new
p(parser.parse("") || parser.failure_reason)
p(parser.parse("/x\n") || parser.failure_reason)
但我沒有得到我預期的效果:
SyntaxNode offset=0, ""
"Expected one of /, \n at line 2, column 1 (byte 4) after /x\n"
它正確地解析空字符串(如document
的微不足道的匹配,零category_listing
s),但無法解析se "/x\n"
(作爲包含單個category_listing
的文檔本身具有零個url_line
s)。
我在做什麼錯?
[#48](http://stackoverflow.com/questions/13655658/can-i-use-treetop-to-parse-an-io)現在可用。 – rampion