C语言BNF范式
来源:互联网 发布:淘宝长尾词是什么意思 编辑:程序博客网 时间:2024/05/21 20:27
终结符号:
所有‘ ‘内的符号以及
int_const char_const float_const id string enumeration_const
translation_unit : external_decl | translation_unit external_decl ;external_decl : function_definition | decl ;function_definition : decl_specs declarator decl_list compound_stat | declarator decl_list compound_stat | decl_specs declarator compound_stat | declarator compound_stat ;decl : decl_specs init_declarator_list ';' | decl_specs ';' ;decl_list : decl | decl_list decl ;decl_specs : storage_class_spec decl_specs | storage_class_spec | type_spec decl_specs | type_spec | type_qualifier decl_specs | type_qualifier ;storage_class_spec : 'auto' | 'register' | 'static' | 'extern' | 'typedef' ;type_spec : 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | struct_or_union_spec | enum_spec | typedef_name ;type_qualifier : 'const' | 'volatile' ;struct_or_union_spec : struct_or_union id '{' struct_decl_list '}' | struct_or_union '{' struct_decl_list '}' | struct_or_union id ;struct_or_union : 'struct' | 'union' ;struct_decl_list : struct_decl | struct_decl_list struct_decl ;init_declarator_list : init_declarator | init_declarator_list ',' init_declarator ;init_declarator : declarator | declarator '=' initializer ;struct_decl : spec_qualifier_list struct_declarator_list ';' ;spec_qualifier_list : type_spec spec_qualifier_list | type_spec | type_qualifier spec_qualifier_list | type_qualifier ;struct_declarator_list : struct_declarator | struct_declarator_list ',' struct_declarator ;struct_declarator : declarator | declarator ':' const_exp | ':' const_exp ;enum_spec : 'enum' id '{' enumerator_list '}' | 'enum' '{' enumerator_list '}' | 'enum' id ;enumerator_list : enumerator | enumerator_list ',' enumerator ;enumerator : id | id '=' const_exp ;declarator : pointer direct_declarator | direct_declarator ;direct_declarator : id | '(' declarator ')' | direct_declarator '[' const_exp ']' | direct_declarator '[' ']' | direct_declarator '(' param_type_list ')' | direct_declarator '(' id_list ')' | direct_declarator '(' ')' ;pointer : '*' type_qualifier_list | '*' | '*' type_qualifier_list pointer | '*' pointer ;type_qualifier_list : type_qualifier | type_qualifier_list type_qualifier ;param_type_list : param_list | param_list ',' '...' ;param_list : param_decl | param_list ',' param_decl ;param_decl : decl_specs declarator | decl_specs abstract_declarator | decl_specs ;id_list : id | id_list ',' id ;initializer : assignment_exp | '{' initializer_list '}' | '{' initializer_list ',' '}' ;initializer_list : initializer | initializer_list ',' initializer ;type_name : spec_qualifier_list abstract_declarator | spec_qualifier_list ;abstract_declarator : pointer | pointer direct_abstract_declarator | direct_abstract_declarator ;direct_abstract_declarator: '(' abstract_declarator ')' | direct_abstract_declarator '[' const_exp ']' | '[' const_exp ']' | direct_abstract_declarator '[' ']' | '[' ']' | direct_abstract_declarator '(' param_type_list ')' | '(' param_type_list ')' | direct_abstract_declarator '(' ')' | '(' ')' ;typedef_name : id ;stat : labeled_stat | exp_stat | compound_stat | selection_stat | iteration_stat | jump_stat ;labeled_stat : id ':' stat | 'case' const_exp ':' stat | 'default' ':' stat ;exp_stat : exp ';' | ';' ;compound_stat : '{' decl_list stat_list '}' | '{' stat_list '}' | '{' decl_list '}' | '{' '}' ;stat_list : stat | stat_list stat ;selection_stat : 'if' '(' exp ')' stat | 'if' '(' exp ')' stat 'else' stat | 'switch' '(' exp ')' stat ;iteration_stat : 'while' '(' exp ')' stat | 'do' stat 'while' '(' exp ')' ';' | 'for' '(' exp ';' exp ';' exp ')' stat | 'for' '(' exp ';' exp ';' ')' stat | 'for' '(' exp ';' ';' exp ')' stat | 'for' '(' exp ';' ';' ')' stat | 'for' '(' ';' exp ';' exp ')' stat | 'for' '(' ';' exp ';' ')' stat | 'for' '(' ';' ';' exp ')' stat | 'for' '(' ';' ';' ')' stat ;jump_stat : 'goto' id ';' | 'continue' ';' | 'break' ';' | 'return' exp ';' | 'return' ';' ;exp : assignment_exp | exp ',' assignment_exp ;assignment_exp : conditional_exp | unary_exp assignment_operator assignment_exp ;assignment_operator : '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '&=' | '^=' | '|=' ;conditional_exp : logical_or_exp | logical_or_exp '?' exp ':' conditional_exp ;const_exp : conditional_exp ;logical_or_exp : logical_and_exp | logical_or_exp '||' logical_and_exp ;logical_and_exp : inclusive_or_exp | logical_and_exp '&&' inclusive_or_exp ;inclusive_or_exp : exclusive_or_exp | inclusive_or_exp '|' exclusive_or_exp ;exclusive_or_exp : and_exp | exclusive_or_exp '^' and_exp ;and_exp : equality_exp | and_exp '&' equality_exp ;equality_exp : relational_exp | equality_exp '==' relational_exp | equality_exp '!=' relational_exp ;relational_exp : shift_expression | relational_exp '<' shift_expression | relational_exp '>' shift_expression | relational_exp '<=' shift_expression | relational_exp '>=' shift_expression ;shift_expression : additive_exp | shift_expression '<<' additive_exp | shift_expression '>>' additive_exp ;additive_exp : mult_exp | additive_exp '+' mult_exp | additive_exp '-' mult_exp ;mult_exp : cast_exp | mult_exp '*' cast_exp | mult_exp '/' cast_exp | mult_exp '%' cast_exp ;cast_exp : unary_exp | '(' type_name ')' cast_exp ;unary_exp : postfix_exp | '++' unary_exp | '--' unary_exp | unary_operator cast_exp | 'sizeof' unary_exp | 'sizeof' '(' type_name ')' ;unary_operator : '&' | '*' | '+' | '-' | '~' | '!' ;postfix_exp : primary_exp | postfix_exp '[' exp ']' | postfix_exp '(' argument_exp_list ')' | postfix_exp '(' ')' | postfix_exp '.' id | postfix_exp '->' id | postfix_exp '++' | postfix_exp '--' ;primary_exp : id | const | string | '(' exp ')' ;argument_exp_list : assignment_exp | argument_exp_list ',' assignment_exp ;const : int_const | char_const | float_const | enumeration_const ;
BNF范式百度百科
0 2
- C语言BNF范式
- C语言的BNF范式表示
- BNF范式
- BNF范式
- BNF范式
- BNF范式
- c语言的bnf总结
- 什么是BNF范式
- BNF 巴科斯范式
- HTTP协议: BNF范式
- 巴科斯范式(BNF)
- BNF范式简介
- BNF(巴科斯范式)
- 什么是BNF范式
- 巴科斯范式(BNF)
- BNF范式简介
- BNF范式简介
- BNF范式简介
- 欧拉函数
- 理解Docker(译文)
- 如何制作一个360度全景
- hdu 1069 Monkey and Banana 再来一波DP啦~~LIS的变形,会最大上升子序列就可以A啦~
- Python open() 函数 文件处理
- C语言BNF范式
- uva 10815 set的用法
- c中malloc calloc realloc 的区别和联系
- 乱码的艺术
- IO 相关指标
- Kruskal最小生成树算法
- rockethon2015 B题 Permutations 规律+构造
- Scala ListBuffer使用备忘
- Apache Storm提交Topology时的默认CLASSPATH问题