* parser eats '=' after variable names @ 2008-02-09 21:15 Robert Millan 2008-02-10 9:55 ` Bean 0 siblings, 1 reply; 4+ messages in thread From: Robert Millan @ 2008-02-09 21:15 UTC (permalink / raw) To: grub-devel 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... :-/ -- Robert Millan <GPLv2> I know my rights; I want my phone call! <DRM> What use is a phone call… if you are unable to speak? (as seen on /.) ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: parser eats '=' after variable names 2008-02-09 21:15 parser eats '=' after variable names Robert Millan @ 2008-02-10 9:55 ` Bean 2008-02-10 12:10 ` Robert Millan 0 siblings, 1 reply; 4+ messages in thread From: Bean @ 2008-02-10 9:55 UTC (permalink / raw) To: The development of GRUB 2 On Feb 10, 2008 5:15 AM, Robert Millan <rmh@aybabtu.com> 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. -- Bean ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: parser eats '=' after variable names 2008-02-10 9:55 ` Bean @ 2008-02-10 12:10 ` Robert Millan 2008-02-10 12:16 ` Bean 0 siblings, 1 reply; 4+ messages in thread From: Robert Millan @ 2008-02-10 12:10 UTC (permalink / raw) To: The development of GRUB 2 On Sun, Feb 10, 2008 at 05:55:25PM +0800, Bean wrote: > On Feb 10, 2008 5:15 AM, Robert Millan <rmh@aybabtu.com> 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? -- Robert Millan <GPLv2> I know my rights; I want my phone call! <DRM> What use is a phone call… if you are unable to speak? (as seen on /.) ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: parser eats '=' after variable names 2008-02-10 12:10 ` Robert Millan @ 2008-02-10 12:16 ` Bean 0 siblings, 0 replies; 4+ messages in thread From: Bean @ 2008-02-10 12:16 UTC (permalink / raw) To: The development of GRUB 2 On Feb 10, 2008 8:10 PM, Robert Millan <rmh@aybabtu.com> wrote: > > On Sun, Feb 10, 2008 at 05:55:25PM +0800, Bean wrote: > > On Feb 10, 2008 5:15 AM, Robert Millan <rmh@aybabtu.com> 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 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-02-10 12:17 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-02-09 21:15 parser eats '=' after variable names Robert Millan 2008-02-10 9:55 ` Bean 2008-02-10 12:10 ` Robert Millan 2008-02-10 12:16 ` Bean
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.