good point.  I forgot about them being optional.  Of course, the example 
also proves the point that statement terminators facilitate
better reporting of these types of errors.

David Vallner wrote:
> Mike Cargal wrote:
>> So, IMHO, the primary cause is the absence of those pesky statement 
>> terminators.
>
> Ruby has a statement terminator, it's just optional. If this is an 
> issue for you, feel free to use it.
>
> Feeding the file:
>
> 1  class Foo
> 2
> 3    def baz
> 4      puts 'quux';
> 5    end
> 6
> 7    def foo
> 8      puts 'bar';
> 9      return Integer("10";
> 10   end
> 11
> 12   def fred
> 13     puts 'barney'
> 14   end
> 15
> 16 end
>
> to ruby results in:
>     
>   foo.rb:9: syntax error
>   foo.rb:16: syntax error
>
> And the parser fails rather cleanly on the first unclosed paren. It's 
> not quite as if the syntax were strict, and I'm sure some things can 
> slip through, but it's a help.
>
> Ruby isn't about enforcing rules and making decisions for you, it's 
> about TIMTOWDI and adopting conventions that help you personally from 
> the options available.
>
> David Vallner
>
>