[#313454] Request for Block local methods, and Proc syntax — Patrick Li <patrickli_2001@...>

So after using Ruby for a little over two months, I've made the complete

20 messages 2008/09/01

[#313477] Looking for a regular pattern — Zhao Yi <youhaodeyi@...>

Which pattern represents any characters including space, \t \n?

23 messages 2008/09/01
[#313486] Re: Looking for a regular pattern — "Thomas Wieczorek" <wieczo.yo@...> 2008/09/01

On Mon, Sep 1, 2008 at 10:20 AM, Zhao Yi <youhaodeyi@gmail.com> wrote:

[#313489] Re: Looking for a regular pattern — Sebastian Hungerecker <sepp2k@...> 2008/09/01

Thomas Wieczorek wrote:

[#313490] Re: Looking for a regular pattern — Zhao Yi <youhaodeyi@...> 2008/09/01

Sebastian Hungerecker wrote:

[#313493] Re: Looking for a regular pattern — Sebastian Hungerecker <sepp2k@...> 2008/09/01

Zhao Yi wrote:

[#313496] Re: Looking for a regular pattern — Zhao Yi <youhaodeyi@...> 2008/09/01

Sebastian Hungerecker wrote:

[#313516] Parsing a CSV file column-wise — Chris Lowis <chris.lowis@...>

Is there a short-cut to parsing a CSV file column-wise using any of

14 messages 2008/09/01

[#313724] Hash optimization question — Roger Pack <rogerpack2005@...>

Are there any libraries that overcome this problem:

11 messages 2008/09/03

[#313890] How do I quickly search the end of a huge text file? — Brian Green <gallagherjb@...>

I am trying to create a ruby script that will search a maya ascii file

11 messages 2008/09/05

[#313897] Need a 40 LOC (ignoring comments) to be shorter -- suggestions wanted — RichardOnRails <RichardDummyMailbox58407@...>

Hi All,

12 messages 2008/09/05

[#313946] Who's Charles angry at? — Joshua Ballanco <jballanc@...>

Well, I just came across this in my feed reader:

17 messages 2008/09/05

[#314002] Is Ruby good at GUI develop? — Zhao Yi <youhaodeyi@...>

I want to choose a script to develop a GUI program. I want to know more

18 messages 2008/09/06
[#314011] Re: Is Ruby good at GUI develop? — James Britt <james.britt@...> 2008/09/06

Zhao Yi wrote:

[#314395] Re: Is Ruby good at GUI develop? — Jason Cameron <cameronjc2000@...> 2008/09/10

James Britt wrote:

[#314061] any way to write it in one line ? — Erwin <yves_dufour@...>

works = Array.new

17 messages 2008/09/06

[#314083] json for extjs (without rails) — Gurpal 2000 <gurpal@...>

Hi

14 messages 2008/09/07

[#314090] find a button using mechanize — Li Chen <chen_li3@...>

Hi all,

21 messages 2008/09/07
[#314116] Re: find a button using mechanize — Lex Williams <etaern@...> 2008/09/07

Li Chen wrote:

[#314117] Re: find a button using mechanize — Lex Williams <etaern@...> 2008/09/07

Lex Williams wrote:

[#314126] Re: find a button using mechanize — Li Chen <chen_li3@...> 2008/09/07

Lex Williams wrote:

[#314164] Re: find a button using mechanize — Lex Williams <etaern@...> 2008/09/07

Li Chen wrote:

[#314167] Re: find a button using mechanize — Li Chen <chen_li3@...> 2008/09/07

Lex Williams wrote:

[#314185] Re: find a button using mechanize — Lex Williams <etaern@...> 2008/09/08

Li , I wouldn't try to find a form by searching after it's button .

[#314233] Re: find a button using mechanize — Li Chen <chen_li3@...> 2008/09/08

Hi Lex,

[#314253] Re: find a button using mechanize — Lex Williams <etaern@...> 2008/09/08

Li , please post examples . What is it you want to extract ? From what

[#314133] regular expression match and exclude — Azalar --- <pteale@...>

I am parsing a web page full of image links that also contain links to

13 messages 2008/09/07

[#314199] FileUtils.chdir thread safety — Mr_Tibs <tiberiu.motoc@...>

Hi,

20 messages 2008/09/08
[#314285] Re: FileUtils.chdir thread safety — Mr_Tibs <tiberiu.motoc@...> 2008/09/08

Darn it! It would seem like a good idea.

[#314328] Re: FileUtils.chdir thread safety — "Robert Klemme" <shortcutter@...> 2008/09/09

2008/9/9 Mr_Tibs <tiberiu.motoc@gmail.com>:

[#314360] Re: FileUtils.chdir thread safety — Charles Oliver Nutter <charles.nutter@...> 2008/09/09

Robert Klemme wrote:

[#314299] Drake: Distributed Rake — quixoticsycophant@...

= DRAKE -- Distributed Rake

43 messages 2008/09/09

[#314470] How to operate on 2 arrays simultaneously? — "Patrick Doyle" <wpdster@...>

There has got to be a more elegant solution than this. Suppose I have

19 messages 2008/09/10

[#314529] How to check if a webpage exists — Davide Benini <nutsmuggler@...>

This probably is trivial, but I have been googling for almost 2hs

22 messages 2008/09/10
[#314533] Re: How to check if a webpage exists — "Todd Benson" <caduceass@...> 2008/09/10

On Wed, Sep 10, 2008 at 4:38 PM, Davide Benini <nutsmuggler@hotmail.com> wrote:

[#314534] Re: How to check if a webpage exists — "Axel Etzold" <AEtzold@...> 2008/09/10

[#314572] Re: How to check if a webpage exists — Davide Benini <nutsmuggler@...> 2008/09/11

[#314575] Re: How to check if a webpage exists — Peña, Botp <botp@...> 2008/09/11

RnJvbTogRGF2aWRlIEJlbmluaSBbbWFpbHRvOm51dHNtdWdnbGVyQGhvdG1haWwuY29tXSANCiMg

[#314577] Re: How to check if a webpage exists — Davide Benini <nutsmuggler@...> 2008/09/11

Thanks for your super-fast answer :)

[#314584] Re: How to check if a webpage exists — "Axel Etzold" <AEtzold@...> 2008/09/11

-------- Original-Nachricht --------

[#314585] Re: How to check if a webpage exists — Davide Benini <nutsmuggler@...> 2008/09/11

Hi Axel,

[#314586] Re: How to check if a webpage exists — Peña, Botp <botp@...> 2008/09/11

RnJvbTogRGF2aWRlIEJlbmluaSBbbWFpbHRvOm51dHNtdWdnbGVyQGhvdG1haWwuY29tXSANCiMg

[#314538] pass by reference in each loop — Xiong Chiamiov <xiong.chiamiov+ruby_forum@...>

I have a list of variables that I need to pass through a modifying

19 messages 2008/09/10
[#314574] Re: pass by reference in each loop — Pedro Silva <ei04065@...> 2008/09/11

Hi,

[#314659] Re: pass by reference in each loop — Xiong Chiamiov <xiong.chiamiov+ruby_forum@...> 2008/09/11

Pedro Silva wrote:

[#314660] Re: pass by reference in each loop — Robert Klemme <shortcutter@...> 2008/09/11

On 11.09.2008 23:12, Xiong Chiamiov wrote:

[#314663] Re: pass by reference in each loop — Xiong Chiamiov <xiong.chiamiov+ruby_forum@...> 2008/09/11

Robert Klemme wrote:

[#314563] How to detect blocking? — David Masover <ninja@...>

I've been (barely, occasionally) writing an Actor system for Ruby.

16 messages 2008/09/11
[#314567] Re: How to detect blocking? — Robert Klemme <shortcutter@...> 2008/09/11

On 11.09.2008 06:48, David Masover wrote:

[#314677] Re: How to detect blocking? — David Masover <ninja@...> 2008/09/12

On Thursday 11 September 2008 01:33:25 Robert Klemme wrote:

[#314843] Garbage collecting threads? (was: How to detect blocking?) — David Masover <ninja@...> 2008/09/13

Suppose I start a worker thread, like so:

[#314869] Re: Garbage collecting threads? — Robert Klemme <shortcutter@...> 2008/09/14

On 13.09.2008 22:59, David Masover wrote:

[#314898] Re: Garbage collecting threads? — David Masover <ninja@...> 2008/09/14

On Sunday 14 September 2008 03:24:53 Robert Klemme wrote:

[#314566] How to use this Combinatorial testing technique — Surya <surya5kn@...>

Hi Friends,

13 messages 2008/09/11

[#314590] Advanced conditionals — "Alain m. Lafon" <preek.aml@...>

Hi there,

14 messages 2008/09/11

[#314776] Beginner User having issue with converting char to ASCII — Nick Bo <bornemann1@...>

I am working on this assignment and this is the first class I have used

9 messages 2008/09/12

[#314826] RubyConf hotel: Only single-bed rooms available at group rate? — James Britt <james.britt@...>

Yesterday, the day or the day after I got the RubyConf E-mail giving me

14 messages 2008/09/13
[#314835] Re: RubyConf hotel: Only single-bed rooms available at group rate? — "Gregory Brown" <gregory.t.brown@...> 2008/09/13

On Sat, Sep 13, 2008 at 12:32 PM, James Britt <james.britt@gmail.com> wrote:

[#314838] Re: RubyConf hotel: Only single-bed rooms available at group rate? — James Britt <james.britt@...> 2008/09/13

Gregory Brown wrote:

[#314842] Re: RubyConf hotel: Only single-bed rooms available at group rate? — "Craig Demyanovich" <cdemyanovich@...> 2008/09/13

My partners and I were only able to book a non-smoking room with 1 king bed

[#314856] Re: RubyConf hotel: Only single-bed rooms available at group rate? — James Britt <james.britt@...> 2008/09/14

Craig Demyanovich wrote:

[#314861] A new database access framework for any Ruby (Iron or J) — Post-no-reply Tudbc <post-no-reply@...>

I would like to introduce my new exciting research in TUDBC (Truly

10 messages 2008/09/14

[#314877] how do deal with huge numbers and keep them accurate? — Tomi Zzzz <tomi_z@...>

Hello all, I wrote the following code:

10 messages 2008/09/14

[#314984] how to stream or write data into a tar.gz file as if the data were from files? — bwv549 <jtprince@...>

I have a gazillion little files in memory (each is really just a chunk

13 messages 2008/09/15

[#314989] Getting Employer to Pay for RubyConf — "Clinton D. Judy" <cdj@...>

So I'm just finishing my first year at a real job, and thinking about

15 messages 2008/09/15

[#315083] ANTLR Target for Ruby — arcadio <arcadiorubiogarcia@...>

Hi everyone,

29 messages 2008/09/16
[#315595] Re: ANTLR Target for Ruby — Clifford Heath <no@...> 2008/09/21

arcadio wrote:

[#315598] Re: ANTLR Target for Ruby — "Eric Mahurin" <eric.mahurin@...> 2008/09/21

On Sun, Sep 21, 2008 at 7:56 AM, Clifford Heath <no@spam.please.net> wrote:

[#315110] Gem program -- cannot install libxslt-ruby-0.3.6.gem — Robert Heller <heller@...>

I am trying to install some version of libxslt-ruby on my CentOS 4.7

9 messages 2008/09/17

[#315124] How to clean an xml files from non-utf-8 chars? — Krzysieq <krzysieq@...>

Hi,

19 messages 2008/09/17

[#315125] Threads preventing garbage collection? — Brian Candler <b.candler@...>

I wondered if someone can explain the following behaviour to me.

12 messages 2008/09/17

[#315203] Reseach paper on Ruby. Need references. — Suneel Suneel <suneelgv@...>

Hi,

12 messages 2008/09/18

[#315221] Suggestion for string parsing — Me Me <emanuelef@...>

Hi all,

18 messages 2008/09/18
[#315223] Re: Suggestion for string parsing — Chris Lowis <chris.lowis@...> 2008/09/18

> But I'm sure there's a better way, even considering that the number of

[#315224] Re: Suggestion for string parsing — Me Me <emanuelef@...> 2008/09/18

Thans for answering,

[#315227] Re: Suggestion for string parsing — Peña, Botp <botp@...> 2008/09/18

RnJvbTogTWUgTWUgW21haWx0bzplbWFudWVsZWZAdGlzY2FsaS5pdF0gDQojIEkgd2FzIHRoaW5r

[#315226] Preserve insert order in a Hash — Me Me <emanuelef@...>

Hi,

20 messages 2008/09/18
[#315228] Re: Preserve insert order in a Hash — Peña, Botp <botp@...> 2008/09/18

RnJvbTogTWUgTWUgW21haWx0bzplbWFudWVsZWZAdGlzY2FsaS5pdF0gDQojIEkgd291bGQgbGlr

[#315249] at_exit handler *except* for fatal runtime error — synergism <synergism@...>

How do we execute a handler (I assume via at_exit) when a program

16 messages 2008/09/18

[#315250] why one array continues to grow after repeated call — Li Chen <chen_li3@...>

Hi all,

21 messages 2008/09/18
[#315259] Re: why one array continues to grow after repeated call — "Rick DeNatale" <rick.denatale@...> 2008/09/18

On Thu, Sep 18, 2008 at 8:41 AM, Li Chen <chen_li3@yahoo.com> wrote:

[#315311] Re: why one array continues to grow after repeated call — Randy Kramer <rhkramer@...> 2008/09/18

On Thursday 18 September 2008 09:01 am, Rick DeNatale wrote:

[#315326] Re: why one array continues to grow after repeated call — Brian Candler <b.candler@...> 2008/09/18

> The statement "Line 4 might look like an assignment to the variable a,

[#315342] Re: why one array continues to grow after repeated call — Randy Kramer <rhkramer@...> 2008/09/18

On Thursday 18 September 2008 02:52 pm, Brian Candler wrote:

[#315287] short regexp question — Fritzek <fritz.thielemann@...>

Hi folks

19 messages 2008/09/18

[#315458] RDoc 2.2.0 released — Tony Strauss <tony.strauss@...>

RDoc 2.2.0 now is available!

20 messages 2008/09/19

[#315460] One-Liners Mashup (#177 again) — Matthew Moss <matthew.moss@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

46 messages 2008/09/19
[#315474] Re: [QUIZ] One-Liners Mashup (#177 again) — "Bill Kelly" <billk@...> 2008/09/20

[#315478] Re: [QUIZ] One-Liners Mashup (#177 again) — James Gray <james@...> 2008/09/20

On Sep 19, 2008, at 9:32 PM, Bill Kelly wrote:

[#315476] update a field in CSV file using fastercsv — Li Chen <chen_li3@...>

Hello everyone,

11 messages 2008/09/20

[#315527] for or each? — tekwiz <twarlick@...>

I just used the new roodi gem to check out some of my code that has a

38 messages 2008/09/20
[#315532] Re: for or each? — Phlip <phlip2005@...> 2008/09/20

Phlip wrote:

[#315553] Re: for or each? — Joe Wfel <joe@...> 2008/09/20

It's interesting that array access using 'each' seems to be much

[#315750] Protecting Ruby code — Sasha Bee <rubyman77@...>

We are just starting a new project and it is going to be a commercial

13 messages 2008/09/23

[#315818] Small, simple Ruby applications and sample code? — Double Minus <nathan.wisman@...>

Hi all,

16 messages 2008/09/24

[#315867] Rake dependencies unknown prior to running tasks — Joe Wfel <joe@...>

Say I don't know what all the dependencies are until I've already

13 messages 2008/09/24
[#315872] Re: Rake dependencies unknown prior to running tasks — Mike Gold <mike.gold.4433@...> 2008/09/24

Joe W旦lfel wrote:

[#315873] Re: Rake dependencies unknown prior to running tasks — Mike Gold <mike.gold.4433@...> 2008/09/24

Mike Gold wrote:

[#315912] Getting the right class with inheritance and super() — "Kyle Schmitt" <kyleaschmitt@...>

I'm wondering what the _right_ way is to go about getting the right

12 messages 2008/09/24
[#315941] Re: Getting the right class with inheritance and super() — David Masover <ninja@...> 2008/09/25

On Wednesday 24 September 2008 15:45:13 Kyle Schmitt wrote:

[#315920] Guy Decoux. — "Jean-Fran輟is Tr穗" <jftran@...>

Hello,

32 messages 2008/09/24

[#315954] Gem update on Windows is broken? — Charles Roper <reachme@...>

When I issue the "gem update" command on Windows, whenever it gets to a

17 messages 2008/09/25
[#316019] Re: Gem update on Windows is broken? — Eric Hodel <drbrain@...7.net> 2008/09/25

On Sep 25, 2008, at 01:22 AM, Charles Roper wrote:

[#316027] How to get terminal dimensions without using curses or ncurses? — Kenneth McDonald <kenneth.m.mcdonald@...>

I'd like to be able to print to terminal and do some reasonable

9 messages 2008/09/25

[#316033] How to make Ruby _THE_ scripting language of choice, fold in SQLite — John Carter <john.carter@...>

Much has been written about the OOP / RDBMS impedance mismatch....

20 messages 2008/09/25
[#316046] Re: How to make Ruby _THE_ scripting language of choice, fold in SQLite — David Masover <ninja@...> 2008/09/26

On Thursday 25 September 2008 18:43:31 John Carter wrote:

[#316051] Re: How to make Ruby _THE_ scripting language of choice, fold in SQLite — Clifford Heath <no@...> 2008/09/26

David Masover wrote:

[#316068] my ears are burning... ;) — parrt@...

Hi Gang, sorry I seem to have pissed off the ruby gang. :) Never

13 messages 2008/09/26

[#316106] Cookie Monster (#178) — "Matthew Moss" <matthew.moss@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

17 messages 2008/09/26

[#316144] RubyGems 1.3.0 — Eric Hodel <drbrain@...7.net>

Note! Some versions of RubyGems have a bug that will prevent

15 messages 2008/09/26

[#316316] ruby1.9 block scope — Daniel DeLorme <dan-ml@...42.com>

I could have sworn that one of the firm changes in ruby 1.9 was that

45 messages 2008/09/29
[#316321] Re: ruby1.9 block scope — Yukihiro Matsumoto <matz@...> 2008/09/29

Hi,

[#316323] Re: ruby1.9 block scope — Daniel DeLorme <dan-ml@...42.com> 2008/09/29

Yukihiro Matsumoto wrote:

[#316325] Re: ruby1.9 block scope — Yukihiro Matsumoto <matz@...> 2008/09/29

Hi,

[#316347] Re: ruby1.9 block scope — Daniel DeLorme <dan-ml@...42.com> 2008/09/29

Yukihiro Matsumoto wrote:

[#316365] Re: ruby1.9 block scope — Nobuyoshi Nakada <nobu@...> 2008/09/29

Hi,

[#316386] Re: ruby1.9 block scope — Daniel DeLorme <dan-ml@...42.com> 2008/09/30

Nobuyoshi Nakada wrote:

[#316401] Re: ruby1.9 block scope — Yukihiro Matsumoto <matz@...> 2008/09/30

Hi,

[#316430] Re: ruby1.9 block scope — "David A. Black" <dblack@...> 2008/09/30

Hi --

[#316470] Re: ruby1.9 block scope — Daniel DeLorme <dan-ml@...42.com> 2008/09/30

David A. Black wrote:

[#316486] Re: ruby1.9 block scope — Mike Gold <mike.gold.4433@...> 2008/09/30

[#316495] Re: ruby1.9 block scope — Yukihiro Matsumoto <matz@...> 2008/09/30

Hi,

[#316499] Re: ruby1.9 block scope — Mike Gold <mike.gold.4433@...> 2008/09/30

Yukihiro Matsumoto wrote:

[#316392] Revision control for Ruby — thiagobrandam <thiagobrandam@...>

Does anyone know any good revision control tool/software for Ruby?

25 messages 2008/09/30

[#316450] Real world ruby programs to learn from — Fernando Perez <pedrolito@...>

Hi,

12 messages 2008/09/30

[#316526] Mode method for Array — Glenn <glenn_ritz@...>

Hi,

21 messages 2008/09/30
[#316533] Re: Mode method for Array — Trans <transfire@...> 2008/09/30

[#316536] Re: Mode method for Array — Erik Veenstra <erikveen@...> 2008/10/01

[#316552] Re: Mode method for Array — Brian Candler <b.candler@...> 2008/10/01

Shame that the standard Hash#invert doesn't handle duplicate values

[#316564] Re: Mode method for Array — Erik Veenstra <erikveen@...> 2008/10/01

And since we all love speed, we tend to avoid inject. (For

Re: my ears are burning... ;)

From: "Eric Mahurin" <eric.mahurin@...>
Date: 2008-09-28 03:30:19 UTC
List: ruby-talk #316227
On Sat, Sep 27, 2008 at 1:04 PM, <parrt@antlr.org> wrote:

> On Sep 26, 10:30 pm, Eric Mahurin <eric.mahu...@gmail.com> wrote:
> > On Fri, Sep 26, 2008 at 1:19 AM, <pa...@antlr.org> wrote:
> > > As for packrat etc...  Turn on backtrack=true and ANTLR throttles up
> > > from LL(1) to LL(*) to a PEG as necessary.  Memoization only occurs if
> > > you say so, either on grammar or on rule.  I have plans to have ANTLR
> > > suggest where you should memoize.
> >
> > This sounds very good.  I'd like to see how you did some of this.
>
> There is some really amazing jiggery-pokery in the grammar analyzer.
> Sometimes I look at it and say, "holy crap! it actually works!" ;)
>
> > My parser
> > generator does LL(1) and LL(*) where directed.
>
> Just to prevent confusion in the namespace, I assume you mean LL(k)
> not LL(*). LL(k) does more than a single symbol of lookahead but with
> a finite maximum determined at parser generation time.  LL(*), on the
> other hand, can generate cyclic DFA that can look arbitrarily ahead to
> distinguish alternatives. As long as the lookahead language is
> regular, LL(*) can handle it. If you have a left common prefix that is
> recursive, naturally that means the lookahead language is not regular.
> At that point, we must backtrack. That is where we get into predicated
> LL(*), which knows how to backtrack and incorporate semantic
> predicates its own. In fact I implement syntactic predicates,
> backtracking, as a special form of semantic predicate.  this has
> advantages as you'll see  next.


I do mean LL(*).  I decided up front to make my parser mainly LL(1) for
speed and clarity but give a backdoor to accomplish LL(*) via backtacking.


>
>  When you set
> > "backtrack=true", does it generate backtracking code only where the
> grammar
> > really needs it (a lookahead token/character could match two
> alternatives?)
> > or for (almost) all alternatives?  Now I'm curious to see what kind of
> code
> > ANTLR generates, especially with selective memoization.
>
> Yes, ANTLR does the optimal thing. Imagine two alternatives that are
> distinguishable with a single symbol of lookahead in 90% of the cases.
> But, in 9% of the cases it requires three token lookahead and in 1% of
> the cases it requires a full backtrack. ANTLRWill generate a parsing
> decision that does exactly that. It will never, even in the same
> parsing decision, default to using the maximum strength in all input
> sequence cases. Without a lot of fancy pants grammar analysis and DFA
> generation, this can't be done.


Very nice...

Pure packrat parsing is really easy. There is no analysis to be done
> all. You just always backtrack. PEGs have a number of disadvantages.
> Two of which are that it cannot handle infinite streams like socket
> protocols. Also, if you are always backtracking, the error message  is
> essentially "no, Your input does not match the syntax". Also, action
> execution is extremely difficult in the face of backtracking,
> particularly continuously. Consequently, it is my opinion that pure
> PEG based parser generators are not viable commercially unless you
> don't care about invalid input, you don't care about infinite parsing
> strings, and you don't care about action execution (you only need an
> AST or parse tree from the parse). For some projects, actually make
> sense, but for most commercial applications you'll need something like
> ANTLR's approach where it tries to avoid backtracking at all cost.
>

I completely agree and came to the exact same conclusions a long time ago
(after starting down the auto-backtrack route).


>
> > > As an ex-ANTLR guy, I've always found you to be nice.  I learned quite
> a bit
> > about parsing while using ANTLR that I wanted to go off and design my
> own.
> > I've counted a bunch of others that did the same.  That says a lot.  I
> was
> > much easier to wrap your head around parsing when you saw the recursive
> > descent LL code that ANTLR generated compared to the tables of *ACC.
>
> Hooray!  Yeah, I applaud everybody's attempt to build their own parser
> generator. Besides being fun, it helps to push the state-of-the-art.
> Bryan Ford's packrat parsing really helped me improve ANTLR. He and I
> are scheduled to write an LL(*) paper sometime this year.
>
> > I finally got my parser generator setup for re-targeting.  The code
> > generator is more generically a grammar tree traverser.  There are a ton
> of
> > possibilities for a given traverser: generate code in a specific
> language,
> > parse while traversing (no code generation), generate a different type of
> > parser (LALR?), generate grammar diagrams, etc.
>
> The the question in terms of retargetability is whether or not you can
> change all of your internal data structures without affecting the code
> generation very much. ;) Be careful you're not cutting and pasting
> logic of code generation when you make a new target. If so, it's not
> really retargetable. :)


Good point.  This is something I struggled with for a while.  I decided to
go with a fairly generic layer to hold the grammar tree and put most of the
complexity in the code generation engine.  This gives a lot of flexibility
to the engines, but makes them more complex.  But, the engines don't need to
handle higher level combinators built on lower level ones.  For example,
"one-or-more", "zero-or-more", and repeat by a count/range are all built
with a recursion function that detects left and right recursion (and builds
loops).

But, point taken.  I could think about refactoring some between the layers
to minimize any code duplication.  Another option might be helper
methods/functions.

> Thanks for ANTLR!
>
> My pleasure. You know, I just realized it's been exactly 20 years
> since I started building yucc, the predecessor of ANTLR!  Wow, one of
> these days, I had better get another interest! ;)
>
> Ter
>
>

In This Thread