Previous: Usage Function, Up: Genparse File Syntax [Contents][Index]
In order to better understand the subtleties of the Genparse file format
and its parsing, in the section we provide the formal grammar of
Genparse files. This is a slightly edited version of the bison
grammar. Items in capitals are tokens that are defined in the lex file.
all: globals entries usages globals: /* empty */ | globals global | global global: include | mandatory | exit_value | break_lines | export_long_options | no_struct | global_callback include: #include <FILENAME> mandatory: #mandatory <FILENAME> exit_value: #exit_value <VALUE> break_lines: #break_lines <WIDTH> export_long_options: #export_long_options no_struct: #no_struct global_callback: callback entries: entries entry | entry entry: new_entry | gp_include new_entry: param type options options: options option | option option: default | range | callback | descs | store_longindex | err_msg | comment | code_lines descs: descs desc | desc err_msg: __ERR_MSG__ ( ALNUM ) | __ERR_MSG__ ( QUOTED ) comment: __COMMENT__ ( COMMENT_STR ) gp_include: #gp_include <FILE> param: short_params | NONE / long_param | short_params / long_param short_params: VAR | VAR * | VAR ! long_param: multi_long_option | multi_long_option mandatory_opt_name | multi_long_option optional_opt_name mandatory_opt_name: EQUAL C_VAR | EQUAL OPT_NAME optional_opt_name: [ mandatory_opt_name ] multi_long_option: VAR | VAR * | VAR ! type: INT | LONG | ULONG | INTMAX | UINTMAX | FLOAT | DOUBLE | STRING | CHAR | FLAG default: ALNUM | CHAR_VAL | QUOTED_STR range: [ contiguous_range ] contiguous_range: ALNUM range_spec more_range | range_spec more_range more_range: ALNUM | C_VAR | range_spec: .. | ... callback: VAR () description: QUOTED_STR usages: /* empty */ | usages usage | usage usage: USAGE_STR code_lines: code_lines code_line | code_line code_line: single_code_line CODE_END | CODE_END ; single_code_line: CODE_LINE | OPEN_ROUND_BRACE | CLOSE_ROUND_BRACE | single_code_line single_code_line
Previous: Usage Function, Up: Genparse File Syntax [Contents][Index]