* Dypgen C++ grammar
@ 2007-06-22 14:36 skaller
2007-06-22 17:33 ` [Caml-list] " Christopher L Conway
2007-06-25 21:26 ` Taras Glek
0 siblings, 2 replies; 9+ messages in thread
From: skaller @ 2007-06-22 14:36 UTC (permalink / raw)
To: dypgen; +Cc: caml
Is anyone interested in developing a C++ parser, possibly using
FrontC and/or CIL as the starting point, but using Dypgen
as the parser engine?
I have made some modification to FrontC/Cil to support
some C++ constructions, but Ocamlyacc (LALR1) just can't cope
with C++.
OTOH, Scott McPeak has a C++ grammar for Elkhound which is
a C++ based GLR engine, with BSD licence, so it may be possible
to adapt that.
--
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Caml-list] Dypgen C++ grammar
2007-06-22 14:36 Dypgen C++ grammar skaller
@ 2007-06-22 17:33 ` Christopher L Conway
2007-06-22 19:29 ` David Hall
2007-06-25 21:26 ` Taras Glek
1 sibling, 1 reply; 9+ messages in thread
From: Christopher L Conway @ 2007-06-22 17:33 UTC (permalink / raw)
To: skaller; +Cc: dypgen, caml
I would be extremely interested in a C++ parser for OCaml, especially
if it was largely compatible with CIL. The conventional wisdom is that
this is a lost cause, it's just too much work. E.g., in order to
handle real code, you'd need to support almost 30 years' worth of
language variants and historical compiler bugs that have become de
facto "features", etc.
Another approach would be to modify GCC so that it's intermediate
representation can be fed to outside tools. As a bonus, this would
provide support for Java, Fortran, and all the other languages
front-endsd in the GCC suite. Unfortunately, unless the GCC
maintainers have changed their position, this would require forking
the front end, though I suspect the changes required to implement this
are fairly minor. (See, e.g., this old discussion from the GCC list:
http://gcc.gnu.org/ml/gcc/2000-10/msg00103.html)
Chris
On 6/22/07, skaller <skaller@users.sourceforge.net> wrote:
> Is anyone interested in developing a C++ parser, possibly using
> FrontC and/or CIL as the starting point, but using Dypgen
> as the parser engine?
>
> I have made some modification to FrontC/Cil to support
> some C++ constructions, but Ocamlyacc (LALR1) just can't cope
> with C++.
>
> OTOH, Scott McPeak has a C++ grammar for Elkhound which is
> a C++ based GLR engine, with BSD licence, so it may be possible
> to adapt that.
>
> --
> John Skaller <skaller at users dot sf dot net>
> Felix, successor to C++: http://felix.sf.net
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Caml-list] Dypgen C++ grammar
2007-06-22 17:33 ` [Caml-list] " Christopher L Conway
@ 2007-06-22 19:29 ` David Hall
2007-06-23 10:11 ` Lukasz Dobrek
0 siblings, 1 reply; 9+ messages in thread
From: David Hall @ 2007-06-22 19:29 UTC (permalink / raw)
To: Christopher L Conway; +Cc: skaller, dypgen, caml
On 6/22/07, Christopher L Conway <cconway@cs.nyu.edu> wrote:
> Another approach would be to modify GCC so that it's intermediate
> representation can be fed to outside tools. As a bonus, this would
> provide support for Java, Fortran, and all the other languages
> front-endsd in the GCC suite. Unfortunately, unless the GCC
> maintainers have changed their position, this would require forking
> the front end, though I suspect the changes required to implement this
> are fairly minor. (See, e.g., this old discussion from the GCC list:
> http://gcc.gnu.org/ml/gcc/2000-10/msg00103.html)
>
It's sort of already been done with GCC-XML:
"The purpose of the GCC-XML extension is to generate an XML
description of a C++ program from GCC's internal representation. Since
XML is easy to parse, other development tools will be able to work
with C++ programs without the burden of a complicated C++ parser."
http://www.gccxml.org/HTML/Index.html
-- David Hall
>
> On 6/22/07, skaller <skaller@users.sourceforge.net> wrote:
> > Is anyone interested in developing a C++ parser, possibly using
> > FrontC and/or CIL as the starting point, but using Dypgen
> > as the parser engine?
> >
> > I have made some modification to FrontC/Cil to support
> > some C++ constructions, but Ocamlyacc (LALR1) just can't cope
> > with C++.
> >
> > OTOH, Scott McPeak has a C++ grammar for Elkhound which is
> > a C++ based GLR engine, with BSD licence, so it may be possible
> > to adapt that.
> >
> > --
> > John Skaller <skaller at users dot sf dot net>
> > Felix, successor to C++: http://felix.sf.net
> >
> > _______________________________________________
> > Caml-list mailing list. Subscription management:
> > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> > Archives: http://caml.inria.fr
> > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> > Bug reports: http://caml.inria.fr/bin/caml-bugs
> >
> >
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Caml-list] Dypgen C++ grammar
2007-06-22 19:29 ` David Hall
@ 2007-06-23 10:11 ` Lukasz Dobrek
0 siblings, 0 replies; 9+ messages in thread
From: Lukasz Dobrek @ 2007-06-23 10:11 UTC (permalink / raw)
To: caml
Hi,
as a side question sort of related to the topic, has anybody written perhaps a
parser for Fortran. I am every once a while forced to write some
numerical code in Java ( no comments please, I know ). I would like
to have a version of f2java, as adapting the output of f2c is a pain.
Regards,
Lukasz
On 6/22/07, David Hall <dlwh@stanford.edu> wrote:
> On 6/22/07, Christopher L Conway <cconway@cs.nyu.edu> wrote:
> > Another approach would be to modify GCC so that it's intermediate
> > representation can be fed to outside tools. As a bonus, this would
> > provide support for Java, Fortran, and all the other languages
> > front-endsd in the GCC suite. Unfortunately, unless the GCC
> > maintainers have changed their position, this would require forking
> > the front end, though I suspect the changes required to implement this
> > are fairly minor. (See, e.g., this old discussion from the GCC list:
> > http://gcc.gnu.org/ml/gcc/2000-10/msg00103.html)
> >
>
> It's sort of already been done with GCC-XML:
>
> "The purpose of the GCC-XML extension is to generate an XML
> description of a C++ program from GCC's internal representation. Since
> XML is easy to parse, other development tools will be able to work
> with C++ programs without the burden of a complicated C++ parser."
>
> http://www.gccxml.org/HTML/Index.html
>
> -- David Hall
>
> >
> > On 6/22/07, skaller <skaller@users.sourceforge.net> wrote:
> > > Is anyone interested in developing a C++ parser, possibly using
> > > FrontC and/or CIL as the starting point, but using Dypgen
> > > as the parser engine?
> > >
> > > I have made some modification to FrontC/Cil to support
> > > some C++ constructions, but Ocamlyacc (LALR1) just can't cope
> > > with C++.
> > >
> > > OTOH, Scott McPeak has a C++ grammar for Elkhound which is
> > > a C++ based GLR engine, with BSD licence, so it may be possible
> > > to adapt that.
> > >
> > > --
> > > John Skaller <skaller at users dot sf dot net>
> > > Felix, successor to C++: http://felix.sf.net
> > >
> > > _______________________________________________
> > > Caml-list mailing list. Subscription management:
> > > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> > > Archives: http://caml.inria.fr
> > > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> > > Bug reports: http://caml.inria.fr/bin/caml-bugs
> > >
> > >
> >
> > _______________________________________________
> > Caml-list mailing list. Subscription management:
> > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> > Archives: http://caml.inria.fr
> > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> > Bug reports: http://caml.inria.fr/bin/caml-bugs
> >
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Caml-list] Dypgen C++ grammar
2007-06-22 14:36 Dypgen C++ grammar skaller
2007-06-22 17:33 ` [Caml-list] " Christopher L Conway
@ 2007-06-25 21:26 ` Taras Glek
2007-06-26 6:38 ` skaller
1 sibling, 1 reply; 9+ messages in thread
From: Taras Glek @ 2007-06-25 21:26 UTC (permalink / raw)
To: skaller; +Cc: dypgen, caml
Hi Scott,
Why write yet another incomplete C++ parser? You can already get a very
nice OCaml representation of a C++ program through olmar(
http://www.cs.ru.nl/~tews/olmar/ ).
If that doesn't suit your needs, why not point out the problems and
maybe work together to solve them? Parsing C++ is hard enough that there
isn't a single complete open source C++ parser other than g++.
Olmar/elsa represent the second best C++ parser and everybody else isn't
even close. Unlike g++, elsa is designed to support more than just
compilers (ie has a much nicer API) and has a more liberal license.
My understanding is that there are Cil people interested in making elsa
work better with OCaml.
If the above doesn't suit you, your best bet would be to convert the
elsa grammar into OCaml (elkhound already has some ml support), but that
will mean redoing a serious amount of type resolution work.
Taras
skaller wrote:
> Is anyone interested in developing a C++ parser, possibly using
> FrontC and/or CIL as the starting point, but using Dypgen
> as the parser engine?
>
> I have made some modification to FrontC/Cil to support
> some C++ constructions, but Ocamlyacc (LALR1) just can't cope
> with C++.
>
> OTOH, Scott McPeak has a C++ grammar for Elkhound which is
> a C++ based GLR engine, with BSD licence, so it may be possible
> to adapt that.
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Caml-list] Dypgen C++ grammar
2007-06-25 21:26 ` Taras Glek
@ 2007-06-26 6:38 ` skaller
2007-06-26 6:45 ` Jon Harrop
2007-06-26 20:11 ` Taras Glek
0 siblings, 2 replies; 9+ messages in thread
From: skaller @ 2007-06-26 6:38 UTC (permalink / raw)
To: Taras Glek; +Cc: dypgen, caml
On Mon, 2007-06-25 at 14:26 -0700, Taras Glek wrote:
> Hi Scott,
> Why write yet another incomplete C++ parser? You can already get a very
> nice OCaml representation of a C++ program through olmar(
> http://www.cs.ru.nl/~tews/olmar/ ).
Because last I looked, olmar doesn't work, and that's
because Elkhound and Elsa, on which they're based, don't work.
By that I mean, there are bugs.
> If that doesn't suit your needs, why not point out the problems and
> maybe work together to solve them?
Elkhound and Elsa are both C++ programs, which creates
portability issues, and the team maintaining them refused
to cooperate with my requirements.
My system Felix consists of an Ocaml based compiler,
which generates C++ sources.
I actually have a *fork* of Elkhound built in to the
compile and run time system for generating parsers,
but this doesn't apply to parsing Felix sources:
I'm currently switching from Ocamlyacc to Dypgen as a
parser.
Frankly .. I want an embeddable Ocaml code: binding
to a C++ built executable is tricky (you'd need to
use some crud like XML as an interchange format),
and it isn't extensible.
Using Frontc/Cil, which is *also* part of Felix,
is much better -- I have already embedded part of
the C parsing capabilities directly into the Felix compiler.
The bottom line is that I want code written in Ocaml
because I'm sooooo sick of portability hassles.. :)
--
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Caml-list] Dypgen C++ grammar
2007-06-26 6:38 ` skaller
@ 2007-06-26 6:45 ` Jon Harrop
2007-06-26 20:11 ` Taras Glek
1 sibling, 0 replies; 9+ messages in thread
From: Jon Harrop @ 2007-06-26 6:45 UTC (permalink / raw)
To: caml-list
On Tuesday 26 June 2007 07:38:44 skaller wrote:
> The bottom line is that I want code written in Ocaml
> because I'm sooooo sick of portability hassles.. :)
Perhaps your best bet is to translate an existing grammar into OCaml:
http://www.computing.surrey.ac.uk/research/dsrg/fog/CxxLexer.l
http://www.computing.surrey.ac.uk/research/dsrg/fog/CxxTester.y
That is only 1,320 LOC.
--
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
The OCaml Journal
http://www.ffconsultancy.com/products/ocaml_journal/?e
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Caml-list] Dypgen C++ grammar
2007-06-26 6:38 ` skaller
2007-06-26 6:45 ` Jon Harrop
@ 2007-06-26 20:11 ` Taras Glek
2007-06-27 13:48 ` Jon Harrop
1 sibling, 1 reply; 9+ messages in thread
From: Taras Glek @ 2007-06-26 20:11 UTC (permalink / raw)
To: skaller; +Cc: Taras Glek, dypgen, caml
skaller wrote:
> On Mon, 2007-06-25 at 14:26 -0700, Taras Glek wrote:
>
>> Hi Scott,
>> Why write yet another incomplete C++ parser? You can already get a very
>> nice OCaml representation of a C++ program through olmar(
>> http://www.cs.ru.nl/~tews/olmar/ ).
>>
>
> Because last I looked, olmar doesn't work, and that's
> because Elkhound and Elsa, on which they're based, don't work.
> By that I mean, there are bugs.
>
Right, and you expect to write a C++ parser without bugs that will
compile everybody's weird C++?
If something is complicated and has bugs, it's typically much easier to
fix bugs than to write a competing library.
Elsa has an some interesting design decisions, but it's a well-written
library, I don't expect to see another C++ parser parser of this quality
anytime soon.
>
>> If that doesn't suit your needs, why not point out the problems and
>> maybe work together to solve them?
>>
>
> Elkhound and Elsa are both C++ programs, which creates
> portability issues, and the team maintaining them refused
> to cooperate with my requirements.
>
I don't see why anyone would cooperate with "requirements". I think
between me, the olmar maintainer and the oink maintainers we can reach a
solution that benefits everybody.
> My system Felix consists of an Ocaml based compiler,
> which generates C++ sources.
>
> I actually have a *fork* of Elkhound built in to the
> compile and run time system for generating parsers,
> but this doesn't apply to parsing Felix sources:
> I'm currently switching from Ocamlyacc to Dypgen as a
> parser.
>
> Frankly .. I want an embeddable Ocaml code: binding
> to a C++ built executable is tricky (you'd need to
> use some crud like XML as an interchange format),
> and it isn't extensible.
>
Yes, XML stuff is elsa is a deadead, but the olmar approach is a good one.
> Using Frontc/Cil, which is *also* part of Felix,
> is much better -- I have already embedded part of
> the C parsing capabilities directly into the Felix compiler.
>
There is a big step from C to C++. I think you are underestimating the
difficulty of it. I don't mean to imply that you don't know C++ as even
Stroustroup mentioned you by name in his recent report on C++. I'm just
saying that it's a lot of work.
> The bottom line is that I want code written in Ocaml
> because I'm sooooo sick of portability hassles.. :)
>
>
Wouldn't we all like that :)
Taras
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Caml-list] Dypgen C++ grammar
2007-06-26 20:11 ` Taras Glek
@ 2007-06-27 13:48 ` Jon Harrop
0 siblings, 0 replies; 9+ messages in thread
From: Jon Harrop @ 2007-06-27 13:48 UTC (permalink / raw)
To: caml-list
On Tuesday 26 June 2007 21:11:17 Taras Glek wrote:
> Right, and you expect to write a C++ parser without bugs that will
> compile everybody's weird C++?
Don't be ridiculous. We expect _you_ to write a bugless C++ parser! ;-)
--
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
The OCaml Journal
http://www.ffconsultancy.com/products/ocaml_journal/?e
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-06-27 13:54 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-22 14:36 Dypgen C++ grammar skaller
2007-06-22 17:33 ` [Caml-list] " Christopher L Conway
2007-06-22 19:29 ` David Hall
2007-06-23 10:11 ` Lukasz Dobrek
2007-06-25 21:26 ` Taras Glek
2007-06-26 6:38 ` skaller
2007-06-26 6:45 ` Jon Harrop
2007-06-26 20:11 ` Taras Glek
2007-06-27 13:48 ` Jon Harrop
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox