Can you discuss some flex internals?
To: Johan Linde <email@example.com>
Subject: Re: translation of flex
In-reply-to: Your message of Sun, 10 Nov 1996 09:16:36 PST.
Date: Mon, 11 Nov 1996 10:33:50 PST
From: Vern Paxson <vern>
> I'm working for the Swedish team translating GNU program, and I'm currently
> working with flex. I have a few questions about some of the messages which
> I hope you can answer.
All of the things you're wondering about, by the way, concerning flex
internals - probably the only person who understands what they mean in
English is me! So I wouldn't worry too much about getting them right.
That said ...
> #: main.c:545
> msgid " %d protos created\n"
> Does proto mean prototype?
Yes - prototypes of state compression tables.
> #: main.c:539
> msgid " %d/%d (peak %d) template nxt-chk entries created\n"
> Here I'm mainly puzzled by 'nxt-chk'. I guess it means 'next-check'. (?)
> However, 'template next-check entries' doesn't make much sense to me. To be
> able to find a good translation I need to know a little bit more about it.
There is a scheme in the Aho/Sethi/Ullman compiler book for compressing
scanner tables. It involves creating two pairs of tables. The first has
"base" and "default" entries, the second has "next" and "check" entries.
The "base" entry is indexed by the current state and yields an index into
the next/check table. The "default" entry gives what to do if the state
transition isn't found in next/check. The "next" entry gives the next
state to enter, but only if the "check" entry verifies that this entry is
correct for the current state. Flex creates templates of series of
next/check entries and then encodes differences from these templates as a
way to compress the tables.
> #: main.c:533
> msgid " %d/%d base-def entries created\n"
> The same problem here for 'base-def'.