Contents | < Browse | Browse >
17G. bin/EYacc
--------------
This is a port of the famous Yacc utility for unix, which now produces E code
instead of C code.  It is only a first version, so don't expect too much from
it.  If you have no clue what Yacc does, read a text on it, since I'm not
going to explain that in full here.

Basically you can write .y sources as normal, only where actions used to be
written in C, now you can write E.  See the Src/Yacc/bcalc.y example.

1> eyacc bcalc.y

produces a file 'yyparse.e'

1> ec yyparse

will get you a module, which contains only the function yyparse().  The rest
of 'how to interface with Yacc' should be analoguous to C.

[note: I'm halfway through a translation of Lex to E-Lex, but not done yet.]

further info.
E-Yacc is a modification of Berkeley Yacc 1.8, originally by
corbett@berkeley.edu.  The inclusion of this modified version in the E
distribution is totally legal, as the author states in the original BYacc1.8
README:

"   Berkeley Yacc is in the public domain.  The data structures and algorithms
used in Berkeley Yacc are all either taken from documents available to the
general public or are inventions of the author.  Anyone may freely distribute
source or binary forms of Berkeley Yacc whether unchanged or modified.
Distributers may charge whatever fees they can obtain for Berkeley Yacc.
Programs generated by Berkeley Yacc may be distributed freely. "