Class: Cfoo::Parser
Defined Under Namespace
Classes: CfooParseError, ElExpansionError, ElParseError, ParseError
Instance Method Summary collapse
-
#initialize(file_system) ⇒ Parser
constructor
A new instance of Parser.
- #parse_file(file_name) ⇒ Object
Constructor Details
#initialize(file_system) ⇒ Parser
Returns a new instance of Parser.
117 118 119 |
# File 'lib/cfoo/parser.rb', line 117 def initialize(file_system) @file_system = file_system end |
Instance Method Details
#parse_file(file_name) ⇒ Object
121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/cfoo/parser.rb', line 121 def parse_file(file_name) @file_system.parse_file(file_name). rescue Parslet::ParseFailed => failure #TODO: spec this somehow cause = failure.cause source = cause.source.str row, column = @file_system.find_coordinates(source, file_name) raise ElParseError.new(file_name, cause, source, row, column) rescue ElExpansionError => failure raise failure rescue Exception => failure raise CfooParseError.new(file_name, failure) end |