I agree with you mycircuit. Output of tree structured data often uses indentation, and indentation alone, as a readable way to indicate the level in the tree. For instance, Ter has done this on occasion. It seems obvious to me that we should be able to parse what we write, though I am willing to listen to arguments that even computer output should have a syntactic structure that duplicates the indentation.
For me, the problem with COBOL was not the indentation requirements, it was the stupid period at the end of some arbitrary line, which syntactically ended the statement no matter what the indentation was. There can be a related problem with indentation under a Java if-statement that doesn't use blocks, e.g.,
if (a == b)
a = c;
b = d;
Although I have to admit I haven't seen it but once and found it quickly with the debugger. But IMHO that's enough evidence to change the language. I haven't used indentation based languages enough to encounter the problem that Jim mentioned: accidentally changing the program semantics with the wrong indentation level.
Well, where I've arrived at in meandering around this topic is that language syntax definitions should
require indentations that match the syntax nesting. This should be checked in compilers, not just IDEs, because error-prone is error-prone, wherever it is. Besides, IDEs have to use parsers, too.
Let's face it, computer languages are two-dimensional, even if parser theory is not.
And this brings the whole discussion back to Antlr. I propose that the Antlr syntax should provide the ability for checking the level of indentation. (Even if we have to wait for Antlr5.)
George S. Cowan
(wait, where is that flame-proof jacket?)