From: Serbinenko Vladimir <serbinenko.vova@list.ru>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Scripting
Date: Fri, 11 Feb 2005 23:01:31 +0100 [thread overview]
Message-ID: <420D2B3B.9040702@list.ru> (raw)
In-Reply-To: <87650yonaj.fsf@marco.marco-g.com>
Marco Gerards wrote:
>I had a quick look at the patch for now. Can you please explain in a
>new thread how the patch globally works? I will reply about the other
>issues there as well.
>
>There are still some things I would like to know:
>
>- Why does everything happen with strings?
>
>
>
Because environment variables are the strings and it's not really
needed to convert them (excluding the calculating)
>- Why are that many functions duplicated? (for example
> grub_bash_dupstr).
>
>
>
In this case I just forgot about grub_strdup. But some other functions
have (nerly) the same names that string function but are adapted for
scripting (ex: grub_bash_strchr)
>- What is that huge table with operators?
>
It's used to determinate which operator to execute (see
grub_bash_find_oper and grub_bash_eval_arith)
>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_dollar
> I 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.
>- How does the parser in general work?
>
grub_bash_execute parses a line. If it detectes that end of the line is
not the end of command it calls getline function
>So can you explain what
> happens when executing a script? First you load the file. Do you
> parse it, make pcode of it, run it directly?
>
For the files I use grub_bash_exec_file. Only thing it does is
reading a file line by line and calling grub_bash_execute
> How about error
> handling?
>
>
>
For now the problem is that not all posiible syntax errors are handled
correctly and more return checks have to be written. But first I'll write
line counting (only grub_bash_execute, grub_bash_list_execute and
grub_command_execute are affected)
>Thanks,
>Marco
>
>
>
>_______________________________________________
>Grub-devel mailing list
>Grub-devel@gnu.org
>http://lists.gnu.org/mailman/listinfo/grub-devel
>
>
>
>
next prev parent reply other threads:[~2005-02-11 22:22 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-07 12:10 [Suggestion] LILO-like direct menu item access Marc-Jano Knopp
2005-02-07 14:43 ` [Suggestion] LILO-like direct menu item access && scripting Serbinenko Vladimir
2005-02-07 17:33 ` Marco Gerards
2005-02-07 23:24 ` Marc-Jano Knopp
2005-02-08 10:25 ` Serbinenko Vladimir
2005-02-08 20:56 ` Marc-Jano Knopp
2005-02-08 21:54 ` Marco Gerards
2005-02-08 21:48 ` Marco Gerards
2005-02-08 22:51 ` Marc-Jano Knopp
2005-02-09 10:21 ` Serbinenko Vladimir
2005-02-10 19:24 ` Yoshinori K. Okuji
2005-02-10 21:51 ` Marc-Jano Knopp
2005-02-11 9:38 ` Yoshinori K. Okuji
2005-02-11 12:09 ` Marc-Jano Knopp
2005-02-11 14:34 ` Serbinenko Vladimir
2005-02-11 16:37 ` Marc-Jano Knopp
2005-02-11 17:13 ` Serbinenko Vladimir
2005-02-13 18:25 ` Marc-Jano Knopp
2005-02-10 21:39 ` Marc-Jano Knopp
2005-02-08 13:20 ` Yoshinori K. Okuji
2005-02-08 16:21 ` Serbinenko Vladimir
2005-02-11 20:27 ` Marco Gerards
2005-02-11 22:01 ` Serbinenko Vladimir [this message]
2005-02-13 18:56 ` Scripting Marco Gerards
2005-02-13 19:39 ` Scripting Serbinenko Vladimir
2005-02-13 19:54 ` Scripting Hollis Blanchard
2005-02-14 21:39 ` Scripting Marco Gerards
2005-02-15 16:16 ` Scripting Serbinenko Vladimir
2005-02-15 22:13 ` Scripting Yoshinori K. Okuji
2005-02-07 17:20 ` [Suggestion] LILO-like direct menu item access Marco Gerards
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=420D2B3B.9040702@list.ru \
--to=serbinenko.vova@list.ru \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.