我正在努力学习如何使用Treetop语法解析器,但从一开始就出现了奇怪的错误。
我有这个文件结构
node_extensions.rb parser.rb tranlan.treetop文件的内容如下(按上面列出的文件排列)
node_extensions.rb
# node_extensions.rb
module TranLan
endparser.rb
# parser.rb
require 'treetop'
# Find out what our base path is
base_path = File.expand_path(File.dirname(__FILE__))
# Load our custom syntax node classes so the parser can use them
require File.join(base_path, 'node_extensions.rb')
class Parser
base_path = File.expand_path(File.dirname(__FILE__))
Treetop.load(File.join(base_path, 'tranlan_parser.treetop'))
@@parser = SexpParser.new
def self.parse(data)
tree = @@parser.parse(data)
raise Exception, "Parser error at offset: #{@@parser.index}" if tree.nil?
tree
end
endtranlan.treetop
# tranlan.treetop
grammar TranLan
end当我运行parser.rb时,我会得到这个错误
/Users/maca/.rvm/gems/ruby-2.1.4/gems/treetop-1.5.3/lib/treetop/compiler/grammar_compiler.rb:37:in `initialize': No such file or directory @ rb_sysopen - /Users/maca/devel/playground/treetop-grammar/tranlan_parser.treetop (Errno::ENOENT)
from /Users/maca/.rvm/gems/ruby-2.1.4/gems/treetop-1.5.3/lib/treetop/compiler/grammar_compiler.rb:37:in `open'
from /Users/maca/.rvm/gems/ruby-2.1.4/gems/treetop-1.5.3/lib/treetop/compiler/grammar_compiler.rb:37:in `load'
from parser.rb:17:in `<class:Parser>'
from parser.rb:10:in `<main>'怎么了?有什么帮助吗?
发布于 2014-12-26 11:16:02
您有多个错误:
这是个开始。修好这些东西,你就可以开始写语法了。
https://stackoverflow.com/questions/27646490
复制相似问题