|
@@ -284,16 +284,17 @@ class Parser
|
284
|
284
|
raise "Unexpected token #{token.type}"
|
285
|
285
|
end
|
286
|
286
|
|
287
|
|
- while @current_token.type == TokenKinds::LPAREN
|
288
|
|
- args = arguments
|
289
|
|
- expr = AST::FunctionCall.new(expr, args)
|
290
|
|
- end
|
291
|
|
-
|
292
|
|
- while @current_token.type == TokenKinds::LBRACKET
|
293
|
|
- eat(TokenKinds::LBRACKET)
|
294
|
|
- key = expression
|
295
|
|
- eat(TokenKinds::RBRACKET)
|
296
|
|
- expr = AST::Index.new(expr, key)
|
|
287
|
+ while [TokenKinds::LPAREN, TokenKinds::LBRACKET].include?(@current_token.type)
|
|
288
|
+ case @current_token.type
|
|
289
|
+ when TokenKinds::LPAREN
|
|
290
|
+ args = arguments
|
|
291
|
+ expr = AST::FunctionCall.new(expr, args)
|
|
292
|
+ when TokenKinds::LBRACKET
|
|
293
|
+ eat(TokenKinds::LBRACKET)
|
|
294
|
+ key = expression
|
|
295
|
+ eat(TokenKinds::RBRACKET)
|
|
296
|
+ expr = AST::Index.new(expr, key)
|
|
297
|
+ end
|
297
|
298
|
end
|
298
|
299
|
|
299
|
300
|
expr
|