]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2010-03-14 BVK Chaitanya <bvk.groups@gmail.com>
authorBVK Chaitanya <bvk.groups@gmail.com>
Sun, 14 Mar 2010 17:07:17 +0000 (22:37 +0530)
committerBVK Chaitanya <bvk.groups@gmail.com>
Sun, 14 Mar 2010 17:07:17 +0000 (22:37 +0530)
GRUB shell lexer and parser improvements.

* conf/any-emu.rmk: Build rule updates.
* conf/common.rmk: Likewise.
* conf/i386-coreboot.rmk: Likewise.
* conf/i386-efi.rmk: Likewise.
* conf/i386-ieee1275.rmk: Likewise.
* conf/i386-pc.rmk: Likewise.
* conf/powerpc-ieee1275.rmk: Likewise.
* conf/x86_64-efi.rmk: Likewise.

* configure.ac: Configure check for flex.

* include/grub/script_sh.h (grub_script_arg_type_t): More argument
types.
(grub_lexer_param): Struct member updates.
(grub_parser_param): Likewise.
(GRUB_LEXER_TOKEN_MAX): Maximum token size.
(GRUB_LEXER_RECORD_INCREMENT): Memory increments' size.
(grub_script_lexer_init): Prototype update.
(grub_script_lexer_record_start): Likewise.
(grub_script_lexer_record_stop): Likewise.
(grub_script_lexer_yywrap): New function prototype.
(grub_script_lexer_fini): Likewise.
(grub_script_execute_argument_to_string): Removed by...
(grub_script_execute_argument_to_argv): ...better version.

* script/execute.c (ROUND_UPTO): New macro.
(grub_script_execute_cmdline): Out of memory fixes.
(grub_script_execute_menuentry): Likewise.
(grub_script_execute_argument_to_string): Removed. Update all
users by...
(grub_script_execute_argument_to_argv): ...better version.
* script/function.c (grub_script_function_create): Use
grub_script_execute_argument_to_argv instead of
grub_script_execute_argument_to_string.

* script/lexer.c (check_varstate): Removed.
(check_textstate): Removed.
(grub_script_lexer_record_start): Likewise.
(grub_script_lexer_record_stop): Likewise.
(recordchar): Replaced with...
(grub_script_lexer_record): ...new function.
(nextchar): Removed.
(grub_script_lexer_init): Rewritten.
(grub_script_yylex): Rewritten.
(append_newline): New function.
(grub_script_lexer_yywrap): New function.
(grub_script_lexer_fini): New function.
(grub_script_yyerror): Sets error flag.

* script/yylex.l: New file.
(grub_lexer_yyfree): Wrapper for flex yyffre.
(grub_lexer_yyalloc): Likewise.
(grub_lexer_yyrealloc): Likewise.
* script/parser.y: Refactored.

* script/script.c (grub_script_arg_add): Out of memory fixes.
(grub_script_add_arglist): Likewise.
(grub_script_create_cmdline): Likewise.
(grub_script_create_cmdmenu): Likewise.
(grub_script_add_cmd): Likewise.
(grub_script_parse): Use grub_script_lexer_fini to deallocated.
* util/grub-script-check.c (grub_script_execute_menuentry): Remove
unnecessary code.

* tests/grub_script_echo1.in: New testcase.
* tests/grub_script_vars1.in: New testcase.
* tests/grub_script_echo_keywords.in: New testcase.

1  2 
ChangeLog
conf/any-emu.rmk

diff --cc ChangeLog
index 4f23af213300c6704e774364baaa7ea3ff45b9ee,4f23af213300c6704e774364baaa7ea3ff45b9ee..3f9d82987d87a90348827c2d4f0e466f2b66853b
+++ b/ChangeLog
@@@ -1,3 -1,3 +1,75 @@@
++2010-03-14  BVK Chaitanya  <bvk.groups@gmail.com>
++
++      GRUB shell lexer and parser improvements.
++
++      * conf/any-emu.rmk: Build rule updates.
++      * conf/common.rmk: Likewise.
++      * conf/i386-coreboot.rmk: Likewise.
++      * conf/i386-efi.rmk: Likewise.
++      * conf/i386-ieee1275.rmk: Likewise.
++      * conf/i386-pc.rmk: Likewise.
++      * conf/powerpc-ieee1275.rmk: Likewise.
++      * conf/x86_64-efi.rmk: Likewise.
++
++      * configure.ac: Configure check for flex.
++
++      * include/grub/script_sh.h (grub_script_arg_type_t): More argument
++      types.
++      (grub_lexer_param): Struct member updates.
++      (grub_parser_param): Likewise.
++      (GRUB_LEXER_TOKEN_MAX): Maximum token size.
++      (GRUB_LEXER_RECORD_INCREMENT): Memory increments' size.
++      (grub_script_lexer_init): Prototype update.
++      (grub_script_lexer_record_start): Likewise.
++      (grub_script_lexer_record_stop): Likewise.
++      (grub_script_lexer_yywrap): New function prototype.
++      (grub_script_lexer_fini): Likewise.
++      (grub_script_execute_argument_to_string): Removed by...
++      (grub_script_execute_argument_to_argv): ...better version.
++
++      * script/execute.c (ROUND_UPTO): New macro.
++      (grub_script_execute_cmdline): Out of memory fixes.
++      (grub_script_execute_menuentry): Likewise.
++      (grub_script_execute_argument_to_string): Removed. Update all
++      users by...
++      (grub_script_execute_argument_to_argv): ...better version.
++      * script/function.c (grub_script_function_create): Use
++      grub_script_execute_argument_to_argv instead of
++      grub_script_execute_argument_to_string.
++
++      * script/lexer.c (check_varstate): Removed.
++      (check_textstate): Removed.
++      (grub_script_lexer_record_start): Likewise.
++      (grub_script_lexer_record_stop): Likewise.
++      (recordchar): Replaced with...
++      (grub_script_lexer_record): ...new function.
++      (nextchar): Removed.
++      (grub_script_lexer_init): Rewritten.
++      (grub_script_yylex): Rewritten.
++      (append_newline): New function.
++      (grub_script_lexer_yywrap): New function.
++      (grub_script_lexer_fini): New function.
++      (grub_script_yyerror): Sets error flag.
++
++      * script/yylex.l: New file.
++      (grub_lexer_yyfree): Wrapper for flex yyffre.
++      (grub_lexer_yyalloc): Likewise.
++      (grub_lexer_yyrealloc): Likewise.
++      * script/parser.y: Refactored.
++
++      * script/script.c (grub_script_arg_add): Out of memory fixes.
++      (grub_script_add_arglist): Likewise.
++      (grub_script_create_cmdline): Likewise.
++      (grub_script_create_cmdmenu): Likewise.
++      (grub_script_add_cmd): Likewise.
++      (grub_script_parse): Use grub_script_lexer_fini to deallocated.
++      * util/grub-script-check.c (grub_script_execute_menuentry): Remove
++      unnecessary code.
++
++      * tests/grub_script_echo1.in: New testcase.
++      * tests/grub_script_vars1.in: New testcase.
++      * tests/grub_script_echo_keywords.in: New testcase.
++
  2010-03-14  Vladimir Serbinenko  <phcoder@gmail.com>
  
        Remove some redundancy in build system.
Simple merge