On Saturday, October 12, 2013 at 5:37 PM, Stefan Monnier wrote: > > In Ruby one can invoke methods with or without parentheses: > > some_method(arg1, arg2) > > some_method arg1, arg2 > > > > > Interesting. How is the following parsed, then: > > some_method arg1, other_method arg2, arg3, arg4 There are some limitations, of course. Ambiguous cases generally result in parsing errors: Parser::CurrentRuby.parse('some_method arg1, other_method arg2, arg3, arg4') (string):1:32: error: unexpected token tIDENTIFIER some_method arg1, other_method arg2, arg3, arg4 ^^^^ Parser::SyntaxError: unexpected token tIDENTIFIER If we remove arg1, however, there is no ambiguity: [21] pry(main)> Parser::CurrentRuby.parse('some_method other_method arg2, arg3, arg4') => (send nil :some_method (send nil :other_method (send nil :arg2) (send nil :arg3) (send nil :arg4))) > > > -- Stefan