Many years ago, Oliver Mangold contributed a skeleton for D. Recently, rms asked me to see if there would be interest for such a skeleton in the D world. I asked Andrei Alexandrescu (of C++^H^H^H D fame) what he thinks about it, and not only was he positive, he also collected some positive feedback for other members of the D community (https://forum.dlang.org/thread/[email protected]).
This series of commits import the work from Oliver, update it to work with the current git version of Bison, and add an example to see how it works. I will soon push it to master, but people willing to give it a try can fetch the tarball here: https://www.lrde.epita.fr/~akim/private/bison/bison-3.2.1.87-896ee.tar.gz https://www.lrde.epita.fr/~akim/private/bison/bison-3.2.1.87-896ee.tar.xz It's also available in my github repo, in the dlang branch. https://github.com/akimd/bison/tree/dlang There is no documentation, but there is an example in the examples/d directory. It should suffice to see how this works. There is *a lot* of work needed to bring this skeleton up to speed (including writing tests and documentation). I am willing to provide assistance, but definitely not to have to carry this skeleton by myself. Therefore, *this is an experimental feature* that will become a genuine feature once I'm confident it has users, and contributors. Andrei, as a first step, please help me make examples/d/calc.y look decent. I wrote the scanner without knowing D, and I'm sure it's pretty stupid. Once we did that, we should improve the skeleton but reading the output, and fixing mistakes. Then at some point, we must add the important missing features. I'm not saying you should do that, but maybe you can get people involved in this effort. Also, please note that I cannot accept contributions to Bison from people who did not fill the disclaimers that the FSF requires (Oliver completed that step). So wannabe contributors should ask me the papers they have to fill. Meanwhile, for simple changes, it's ok to tell me what should be changed and hope that I make the changes in a foreseeable future :) Cheers! Akim Demaille (5): d: add skeleton for the D language d: add experimental support for the D language d: update the skeleton d: add an example java, d: compute static subtractions THANKS | 1 + configure.ac | 14 +- data/README-D.txt | 60 +++ data/d-skel.m4 | 26 ++ data/d.m4 | 321 +++++++++++++++ data/java.m4 | 4 +- data/lalr1.d | 907 +++++++++++++++++++++++++++++++++++++++++++ data/local.mk | 7 + examples/d/calc.test | 26 ++ examples/d/calc.y | 161 ++++++++ examples/d/local.mk | 35 ++ examples/local.mk | 1 + src/getargs.c | 1 + tests/calc.at | 4 +- 14 files changed, 1560 insertions(+), 8 deletions(-) create mode 100644 data/README-D.txt create mode 100644 data/d-skel.m4 create mode 100644 data/d.m4 create mode 100644 data/lalr1.d create mode 100644 examples/d/calc.test create mode 100644 examples/d/calc.y create mode 100644 examples/d/local.mk -- 2.19.2
