Class: Mutineer::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/mutineer/parser.rb

Overview

Thin boundary around Prism. Both methods return a Prism::ParseResult so all callers use result.value (AST root), result.source.source (raw bytes), and result.errors uniformly. No wrapping struct.

Class Method Summary collapse

Class Method Details

.parse_file(path) ⇒ Object

Returns Prism::ParseResult. Re-raises I/O failures as Mutineer::ParseError.



15
16
17
18
19
# File 'lib/mutineer/parser.rb', line 15

def self.parse_file(path)
  Prism.parse_file(path)
rescue SystemCallError => e
  raise ParseError, e.message
end

.parse_string(source) ⇒ Object

Returns Prism::ParseResult. Never raises; callers check .errors.empty?.



22
23
24
# File 'lib/mutineer/parser.rb', line 22

def self.parse_string(source)
  Prism.parse(source)
end