|
From: | Serbinenko Vladimir |
Subject: | Re: Scripting |
Date: | Tue, 15 Feb 2005 17:16:49 +0100 |
User-agent: | Mozilla Thunderbird 1.0 (X11/20041206) |
Marco Gerards wrote:
Hollis Blanchard <address@hidden> writes:On Feb 13, 2005, at 12:56 PM, Marco Gerards wrote:Serbinenko Vladimir <address@hidden> writes:What kind of parser is it?It's a direct parser with aritmetic subparser. Main parser is grub_bash_execute, arithmetic subparser is grub_bash_eval_arith. grub_bash_execute determinates the special cases (loops,conditions, functions,...) for other cases (commands,assignments, function calling) it calls grub_bash_split_tokens, grub_bash_expand_braces and grub_bash_expand_dollarI have never seen this in a top-down or bottom-up parser I have studied.I don't like to write the things reffering every time to algorithm. Genereally I take some ideas and I write myself, at my own.What do you mean? The problem is that I like proven concepts. And when you use a commonly known parser design many people will be able to understand it. To me this is REALLY important. I wonder what other developers think of that.I agree. Hand-written parsers are very hairy to implement, with nasty bugs and corner cases. Although I haven't studied the theory, I know that there are traditional parsing/lexing/whatever techniques that are well-understood.Right. But I would not have a problem with a hand written parser, as long as I can understand it. :)In fact, there's a whole bunch of tools like flex and bison that we could use to avoid hand-written errors. Why don't we use those?One thing that should be looked into before using flex and bison ishow much the binary will grow.
I think less than with hand-writing parser because of its structure
Another thing is how to integrate it with the command line.
I know how to write it and if you have no objection I'll do it.
Thanks, Marco _______________________________________________ Grub-devel mailing list address@hidden http://lists.gnu.org/mailman/listinfo/grub-devel
[Prev in Thread] | Current Thread | [Next in Thread] |