[ragel-users] Splitting common definitions and actions implementation
ma... at nanorex.com
Mon Mar 31 15:08:32 UTC 2008
I'm working on something like this. To ensure that your constants in
core appear to your c/java.rl make sure you include them in the correct
order - core.rl first.
I have a .cpp file in which I include all my .rl files and then declare
and define functions which I call from my equivalent of core.rl. The
declarations occur above the %% write exec for my machines otherwise the
the 'include' statement for your .rl files could go any place (I
think, because you'll be running Ragel before the C preprocessor).
Because Ragel simply translates text from a pattern-recognition language
to C/Java, your code will compile if the resulting .c/.java files have
the declarations in the correct order.
You might need to create one or two more intermediate files to solve the
Martin Pirker wrote:
> Hello ragel-users...
> I was pondering, if I want to use the same Ragel machine with different
> language backends, how would it be possible to seperate common logic
> from language dependent action implementation.
> E.g., I have a core.rl file with the bulk of common logic and I want a
> c.rl and java.rl file which "include core.rl".
> In core I need to reference actions which are not defined there, in the
> language dependent files I need to reference constants/states of the
> common logic.
> Do I have to duplicate common definitions if I want to develop two
> language implementations simultaneously, or am I missing a way to
> workaround this circular dependency problem?
> PS: Did anybody read the ~500 lines of Google Terms of Service to create a
> Google account, just to be able to join this list/group to ask a question? :-/
More information about the ragel-users