Class: TreeHaver::Backends::Tslp::Parser
- Inherits:
-
TreeHaver::Base::Parser
- Object
- TreeHaver::Base::Parser
- TreeHaver::Backends::Tslp::Parser
- Defined in:
- lib/tree_haver/backends/tslp.rb
Instance Attribute Summary
Attributes inherited from TreeHaver::Base::Parser
Instance Method Summary collapse
Methods inherited from TreeHaver::Base::Parser
#backend, #initialize, #parse_string
Constructor Details
This class inherits a constructor from TreeHaver::Base::Parser
Instance Method Details
#parse(source) ⇒ Object
159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/tree_haver/backends/tslp.rb', line 159 def parse(source) raise TreeHaver::NotAvailable, unless Tslp.available? raise TreeHaver::NotAvailable, 'TSLP language is not set' unless language parser = ::TreeSitterLanguagePack.get_parser(language.name.to_s) raise TreeHaver::NotAvailable, "TSLP did not return a parser for #{language.name}" unless parser raw_tree = parser.parse(source) raise TreeHaver::NotAvailable, "TSLP did not return a parse tree for #{language.name}" unless raw_tree Tree.new(raw_tree, source: source, language: language.name) end |