Class: LyambdaGem::Parser
- Inherits:
-
Object
- Object
- LyambdaGem::Parser
- Defined in:
- lib/lyambda_gem/parser.rb
Instance Method Summary collapse
-
#initialize(input) ⇒ Parser
constructor
A new instance of Parser.
- #parse ⇒ Object
Constructor Details
#initialize(input) ⇒ Parser
Returns a new instance of Parser.
6 7 8 9 10 |
# File 'lib/lyambda_gem/parser.rb', line 6 def initialize(input) @tokens = input.gsub('λ', '\\') # унифицируем .scan(/[()\\\.]|[^\s()\\\.]+/) @pos = 0 end |
Instance Method Details
#parse ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/lyambda_gem/parser.rb', line 12 def parse term = parse_expression raise ParseError, "Unexpected tokens after end: #{@tokens[@pos..].join(' ')}" unless @pos == @tokens.size term rescue ParseError => e raise e rescue => e raise ParseError, "Invalid syntax: #{e.}" end |