Related articles |
---|
Eiffel grammar ralw@gec-mrc.co.uk (ralw) (1995-02-16) |
Re: Eiffel grammar assmann@ipd.info.uni-karlsruhe.de (1995-02-20) |
Newsgroups: | comp.compilers |
From: | ralw <ralw@gec-mrc.co.uk> |
Keywords: | parse, Eiffel, question |
Organization: | Compilers Central |
Date: | Thu, 16 Feb 1995 15:31:38 GMT |
I'm trying to write a portable windows graphics library for SIG Eiffel
(well, X11 and WIN32 at least). Naturally, to do this I need to introduce
a fairly large number of C routines, and also a number of shared flags.
For instance, I'd rather be able to write:
DrawingContext.SetLineStyle(DOTTED);
than
DrawingContext.SetDottedLineStyle;
and this situation is repeated many times over. Now, I already have a
very simple tool that parses elementary Eiffel classes such as:
class CONSTANTS
feature
SOLID, DOTTED, DASHED : INTEGER is unique;
TOP_LEVEL_WIN, CHILD_WIN : INTEGER is unique;
end
into a C header file:
#define SOLID 1
#define DOTTED 2
... etc.
Of course, there is an implementation dependency here, in that I'm
assuming that 'unique' INTEGERs start at 1 and are sequential, but
it works for SIG Eiffel/S 1.3 and that's all I need for now.
The reason for posting this message here is that I'd like to take
my simple tool one stage further to where it can also generate
ANSI C prototypes from a complete Eiffel class, preferably without
needing to constrain the language used in the class.
I've tried to use bison but no matter how much I shift things around,
I get reduce-reduce conflicts which seem to be related to identifiers
used in pre- and post-conditions:
assertion ::= [ label ':' ] expression
label ::= identifier
The possible presence of a labelled assertion seems to make the grammar
non-lalr(1).
So, two questions:
1. I've got a copy of the Eiffel Parser that was placed into the public
domain some years ago, written using the cocktail suite of tools. I can't
find the source for the grammar though. All I've got is the generated
C code. Does anyone know where I can find the source to that parser?
2. Does anyone know of an Eiffel grammar that doesn't have reduce-reduce
conflicts with bison/yacc?
Thanks
Bill Williams
ralw@gec-mrc.co.uk
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.