On Sat, 8 Apr 2000, Yukihiro Matsumoto wrote: > In message "[ruby-talk:02397] Could missing 'end' be reported better?" > on 00/04/08, mrilu <mrilu / ale.cx> writes: > > |class Foo > | def bar > | p "missing end at next line" > |# end > | end > | > | k = Foo.new() > | k.bar() > |# causes 'sample.rb:9: parse error' here, how informative, isn't it? > > # notice how indentation goes. > > And this is a perfectly legal program, except that LAST `end' to the > class clause is missing. How can I find this error at proper place? I see, and hopefully understand too :). But what I would like to see from parser is exactly what you wrote: sample.rb:9: parse error, suspect: last `end' to the class 'Foo' clause is missing. And this far I think you're able to twist parser easily, right? > Using indentation information? This would be superb but maybe it should be implemented only with some additional switch because I assume this kind of analysis will take some time at start-up :). But seriously, using all possible means to detect errors like this would make me really happy, but I'm afraid we have to generate additional Ruby-lint for development. Maybe Ruby-lint would not be so bad idea after all. In above program it would note inappropriate use of indentation (thus trace the source of the parse error). We could implement it and recommend (softly require) all RAA-programs to pass cleanly. Or in worse case, require them to persuade their way by appropriately excusing (commenting) their ugliness.