The parser is made using flex/bison. We'll be posting the updates in WDL eventually.
The current (old) eel2 in WDL has two main parts: a hand written preprocessor, which handles much of the eel2 syntax (a[b], &&, ||, ?:, ; etc), and a lex/yacc based parser (for whichwhich processes basic arithmetic operations (*/+-&|), and function calls (symbol(parm)) into code. The reason for the preprocessor is that at a certain point we had the lex/yacc parser but not the source for it, and it had been modified extensively by hand.
The eel2 in this build has a new parser ([f]lex/[yacc|bison]), which re-implements the old parser, fixing a few little things in the process. All of the previous updates were much larger work, separating the parser's code generation calls from the actual machine code generation.. anyway...
|