Class: TRuby::ParserCombinator::DeclarationParser
- Inherits:
-
Object
- Object
- TRuby::ParserCombinator::DeclarationParser
- Includes:
- DSL
- Defined in:
- lib/t_ruby/parser_combinator.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.
758 759 760 761 |
# File 'lib/t_ruby/parser_combinator.rb', line 758 def initialize @type_parser = TypeParser.new build_parsers end |
Instance Method Details
#parse(input) ⇒ Object
763 764 765 766 767 768 769 770 |
# File 'lib/t_ruby/parser_combinator.rb', line 763 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
772 773 774 775 776 777 778 779 |
# File 'lib/t_ruby/parser_combinator.rb', line 772 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 |