On Tuesday, 14 June 2016 at 13:23:37 UTC, Jacob Carlborg wrote:
On 2016-06-14 11:31, Russel Winder via Digitalmars-d wrote:
Thanks to Vladimir Panteleev, WebFreak001, ketmar, and Brian
Schott for
replying to my email about a grammar specification for D
usable for
IDEs and other tools.
It seems that the D language is defined not by a
re-purposable, machine
readable grammar specification, but solely by the DMD
compiler, the
parse of which is not defined by a re-purposable, machine
readable
grammar. Thus any grammar specification that is created is
unlikely to
be correct and so all tooling and IDE support has to be based
on
incorrect data. Given the biggest problem with D is, according
to the
recent survey, tooling and IDE support, you get the feeling
this is not
an enviable position for a programming language to be in.
How many IDE's/editors do actually use something like EBNF? I
know TextMate doesn't. It uses some kind of rules with extended
regular expressions (simplified explanation).
It doesn't matter because once you have a well defined grammar
you can convert it to any other format you wish. The point is
that D has no well defined grammar because it's all mashed up in
the parsing and compiling itself.
I wonder if someone could write a program generator that
generates random valid D code from one of these grammars and runs
it in DMD to find compilation errors.
It shouldn't be too hard to do and only needs to provide coverage
of the grammar, not all possible programs. This might help
validate a grammar(could be designed to be generic and for other
parsing tools).