[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: parser eats '=' after variable names
From: |
Bean |
Subject: |
Re: parser eats '=' after variable names |
Date: |
Sun, 10 Feb 2008 20:16:55 +0800 |
On Feb 10, 2008 8:10 PM, Robert Millan <address@hidden> wrote:
>
> On Sun, Feb 10, 2008 at 05:55:25PM +0800, Bean wrote:
> > On Feb 10, 2008 5:15 AM, Robert Millan <address@hidden> wrote:
> > >
> > > It seems that the parser eats the extra '=' when used after a variable
> > > evaluation:
> > >
> > > grub> set a=a
> > > grub> echo $a
> > > a
> > > grub> echo $a=
> > >
> > > grub>
> > >
> > > This breaks e.g. variable comparison via "test $a=b". Does someone have
> > > an
> > > idea on how to fix it? I assume it involves the bison stuff which is
> > > highly
> > > confusing to me... :-/
> >
> > This problem is caused by the lexer, the token is broken when a
> > variable is found. so $a will be a token, and =b will be another one.
> > I have written a patch some time ago, it works by constructing a
> > GRUB_PARSER_TOKEN_VAR inside grub_script_yylex2, and return it to the
> > parser.
>
> Ah, I thought all your lexer changes had been committed. Do you remember
> the mail subject?
The parser part have been committed, but the lexer part is not. the
patch is very old, i think it can't be applied directly.
--
Bean