Class: TRuby::ParserCombinator::DeclarationParser
- Inherits:
-
Object
- Object
- TRuby::ParserCombinator::DeclarationParser
- Includes:
- DSL
- Defined in:
- lib/t_ruby/parser_combinator/declaration_parser.rb
Overview
Declaration Parser - Parse T-Ruby declarations
Instance Method Summary collapse
-
#initialize ⇒ DeclarationParser
constructor
A new instance of DeclarationParser.
- #parse(input) ⇒ Object
- #parse_file(input) ⇒ Object
Methods included from DSL
#alphanumeric, #chainl, #char, #choice, #digit, #eof, #fail, #float, #identifier, #integer, #lazy, #letter, #lexeme, #literal, #newline, #pure, #quoted_string, #regex, #satisfy, #sequence, #spaces, #spaces1, #string, #whitespace
Constructor Details
#initialize ⇒ DeclarationParser
Returns a new instance of DeclarationParser.
9 10 11 12 |
# File 'lib/t_ruby/parser_combinator/declaration_parser.rb', line 9 def initialize @type_parser = TypeParser.new build_parsers end |
Instance Method Details
#parse(input) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/t_ruby/parser_combinator/declaration_parser.rb', line 14 def parse(input) result = @declaration.parse(input.strip) if result.success? { success: true, declarations: result.value } else { success: false, error: result.error, position: result.position } end end |
#parse_file(input) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/t_ruby/parser_combinator/declaration_parser.rb', line 23 def parse_file(input) result = @program.parse(input) if result.success? { success: true, declarations: result.value.compact } else { success: false, error: result.error, position: result.position } end end |