编译原理-1-C语言的文法
c语言的文法产生式:
programà
external_declaration
| program external_declaration
external_declarationà
function_definition
| declaration
function_definitionà type_specifier declarator compound_statement
type_specifierà
VOID
| CHAR
| INT
| FLOAT
declarator
pointer direct_declarator
| direct_declarator
Pointerà
'*'
| '*' pointer
direct_declarator
IDENTIFIER
|direct_declarator’[‘ ‘]’
|direct_declarator ’[’ constant_expression ’]’
| IDENTIFIER '(' parameter_list ')'
| IDENTIFIER '('')'
|direct_declarator‘,’identifier_list
identifier_list
: IDENTIFIER
| identifier_list ',' IDENTIFIER
constant_expressionà
conditional_expression
parameter_listà
parameter_declaration
| parameter_list ',' parameter_declaration
parameter_declaration à
declaration_specifiers IDENTIFIER
compound_statementà
'{' '}'
| '{' statement_list '}'
| '{' declaration_list statement_list '}'
declaration_listà
declaration
| declaration_list declaration
Declarationà
init_declarator
| init_declarator_list ',' init_declarator
init_declaratorà
declarator
| declarator '=' initializer
<