|
From: Cyrill G. <gor...@gm...> - 2010-10-01 17:23:24
|
On Fri, Oct 01, 2010 at 12:09:00PM +0200, anonymous coward wrote:
...
> > OK, thanks for comments, I'll take a look tomorrow. But basically I would
> > rather like to hear which exactly invalid tokens you mean? Mind
> > to elaborate if you have some spare minutes? Also I fear this part of
>
> In your first set of rules you cannot have TOK_PREPROC_ID on
> the right side, since it may start with a character that cannot be
> inside a TOK_ID or TOK_NUMBER.
>
> In your second set of rules you cannot have TOK_NUMBER plus
> TOK_ID, let alone xxx plus any TOK_OTHER, for the same basic
> reason as above.
>
I'll re-check. Thanks.
> > code is pretty sensible to "backward compatibility" so there is an
> > easy way to broke some old sources people still compile with nasm.
>
> NASM 0.98 only supported implicit concatenation (mmac), with
> three simple rules:
>
> - TOK_WHITE + TOK_WHITE
> - TOK_ID + {TOK_ID,TOK_NUMBER}
> - TOK_NUMBER + TOK_NUMBER
>
Can't say about .98 _but_ 0.98.39 has
expand_mmac_params (same as you just pointed)
[TOK_ID] + [(TOK_ID|TOK_NUMBER)]
[TOK_NUMBER] + [TOK_NUMBER]
Multiple TOK_WHITESPACE simply folded into one entity
expand_smacro
[(TOK_ID|TOK_PREPROC_ID)] + [(TOK_ID|TOK_PREPROC_ID|TOK_NUMBER)]
As you may see it supports implicit concats in both ways: mmacs and smacs.
Cyrill
|