From: BVK Chaitanya Date: Sun, 14 Mar 2010 17:07:17 +0000 (+0530) Subject: 2010-03-14 BVK Chaitanya X-Git-Tag: 1.99~1013 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0cdc2a095bd58c09421092df753d56af42bc3b6d;p=thirdparty%2Fgrub.git 2010-03-14 BVK Chaitanya 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. --- 0cdc2a095bd58c09421092df753d56af42bc3b6d diff --cc ChangeLog index 4f23af213,4f23af213..3f9d82987 --- a/ChangeLog +++ b/ChangeLog @@@ -1,3 -1,3 +1,75 @@@ ++2010-03-14 BVK Chaitanya ++ ++ 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 Remove some redundancy in build system.