Class: Jsonerino::Parser
- Inherits:
-
Object
- Object
- Jsonerino::Parser
- Defined in:
- lib/jsonerino/parser.rb
Instance Method Summary collapse
-
#initialize(lexer) ⇒ Parser
constructor
A new instance of Parser.
- #parse ⇒ Object
- #parse_json_value ⇒ Object
Constructor Details
#initialize(lexer) ⇒ Parser
Returns a new instance of Parser.
8 9 10 11 12 |
# File 'lib/jsonerino/parser.rb', line 8 def initialize(lexer) @lexer = lexer @current_token = lexer.next_token @previous_token = nil end |
Instance Method Details
#parse ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/jsonerino/parser.rb', line 14 def parse raise_end_of_data unless @current_token v = parse_json_value raise_unexpected_token unless v v end |
#parse_json_value ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/jsonerino/parser.rb', line 22 def parse_json_value case @current_token.token when Token::TOKEN_LBRACKET parse_array when Token::TOKEN_LCURLY parse_object when Token::TOKEN_STRING JsonString.new consume(Token::TOKEN_STRING) when Token::TOKEN_NUMBER JsonNumber.new consume(Token::TOKEN_NUMBER) when Token::TOKEN_ID parse_id end end |