yes, please - I looked at Sprit++ and would be happy to shorten the learning curve.
-m ps: I just love these concise C++ template compile time errors - how could I have ever lived without them ;-? Am 01.02.2012 um 10:58 schrieb EBo: > If it is of any interest I could send you an experimental parser I > wrote a decade ago that uses Sprit++ (a C++ template tool, part of > Boost.org now, which replaces bison and flex, and reads like EBNF). At > that time I was experimenting with runtime polymorphic parsers (which > would allow you to overload the language description and support > different interpretations of the rs274*... > > EBo -- > > On Wed, 1 Feb 2012 00:10:04 +0100, Michael Haberler wrote: >> [I guess this better belongs here] >> >> ok, while this wonderful discussion was raging on, I built a working >> parser for the current linuxcnc dialect, as an experiment in >> feasability (this is NOT an end-user tool!) >> >> >> http://git.mah.priv.at/gitweb/emc2-dev.git/shortlog/refs/heads/parser-v2-dev >> >> - Michael >> >> ps: I'd appreciate feedback from language geeks wrt to removing >> shift/reduce conflicts. >> >> -------------- src/emc/parser-v2/README: -------- >> >> RS274NGC parser based on Bison/Flex >> =================================== >> >> usage: >> >> parser [options] ngcfile ... >> >> example: >> $ parser emc2-dev/nc_files/*.ngc >> >> no output means good news (parse ok) >> other that that, no actions - this is an experiment to find out >> wether this is feasible >> >> options are: >> -v: create listing with interspersed error messages >> -s: trace scanning >> -p: trace parsing >> >> I'd be grateful for hints how to remove the remaining shift/reduce >> conflicts in the grammar. I guess there's something wrong/missing >> with >> operator precedence and/or associativity. >> >> Error messages >> -------------- >> There are no custom error messages yet. All error messages are >> autogenerated from the parser, and derived from the grammar, >> including >> the set of permitted tokens, which is already quite reasonable: >> >> $ parser -v emc2-dev/src/emc/parser-v2/ngc/foo.txt >> >> ... >> #<bar> = [EXISTS[23 >> -----------------^^ >> ngc/foo.txt:8:unexpected integer, expecting # >> ... >> m73.1 >> ---^^ >> ngc/foo.txt:18:unexpected real, expecting one of: <<EOF>> EOL ^ @ % >> if while break do repeat sub endsub return call # G-code M-code A B C >> D E F H I J K L P Q R S T U V W X Y Z >> ... >> N3242 G10 x[1 >> >> ^ >> ngc/foo.txt:24:unexpected EOL, expecting one of: ] EQ NE GT GE LT LE >> and or xor + - * / mod pow >> ... >> N3242 G10 x[1]] >> --------------^ >> ngc/foo.txt:25:unexpected ], expecting one of: <<EOF>> EOL ^ @ % if >> while break do repeat sub endsub return call # G-code M-code A B C D >> E >> F H I J K L P Q R S T U V W X Y Z >> .. >> 4 error(s) >> >> Error recovery: >> --------------- >> >> currently, on syntax error the parser skips to the next of line, and >> continues, which seems to work ok. >> >> Build notes >> ----------- >> All files needed to compile are in this branch >> If you change the grammar: bison 2.5 is needed (Ubuntu 10.04 has >> 2.4.1 which is too old) >> I compiled from source - found no backport. >> Flex: the stock flex coming with 10.04 is fine (flex 2.5.35) >> >> Speed is quite good - without spending a thought on optimization and >> all debug options on, this parser does about 300.000 lines/second on >> my MBP. >> >> added Submakefile >> >> base taken from https://idlebox.net/2007/flex-bison-cpp-example/ >> much of that example code is still to be deleted but then this is >> a proof of concept >> >> -mah >> >> ------------------------------------------------------------------------------ >> Keep Your Developer Skills Current with LearnDevNow! >> The most comprehensive online learning library for Microsoft >> developers >> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, >> MVC3, >> Metro Style Apps, more. Free future releases when you subscribe now! >> http://p.sf.net/sfu/learndevnow-d2d >> _______________________________________________ >> Emc-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/emc-users >> >> >> >> ------------------------------------------------------------------------------ >> Keep Your Developer Skills Current with LearnDevNow! >> The most comprehensive online learning library for Microsoft >> developers >> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, >> MVC3, >> Metro Style Apps, more. Free future releases when you subscribe now! >> http://p.sf.net/sfu/learndevnow-d2d >> _______________________________________________ >> Emc-developers mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/emc-developers > > > ------------------------------------------------------------------------------ > Keep Your Developer Skills Current with LearnDevNow! > The most comprehensive online learning library for Microsoft developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, > Metro Style Apps, more. Free future releases when you subscribe now! > http://p.sf.net/sfu/learndevnow-d2d > _______________________________________________ > Emc-developers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-developers ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
