C_Grammar

program'
program
program
external-declaration
program
program external-declaration
external-declaration
function-definition
external-declaration
declaration
function-definition
declarator compound-statement
function-definition
declaration-specifiers declarator compound-statement
function-definition
declarator declaration-list compound-statement
function-definition
declaration-specifiers declarator declaration-list compound-statement
declaration
declaration-specifiers init-declarator-list ;
declaration
declaration-specifiers ;
declaration-list
declaration
declaration-list
declaration-list declaration
declaration-specifiers
storage-class-specifier declaration-specifiers
declaration-specifiers
storage-class-specifier
declaration-specifiers
type-specifier declaration-specifiers
declaration-specifiers
type-specifier
declaration-specifiers
type-qualifier declaration-specifiers
declaration-specifiers
type-qualifier
storage-class-specifier
auto
storage-class-specifier
register
storage-class-specifier
static
storage-class-specifier
extern
storage-class-specifier
typedef
type-specifier
void
type-specifier
char
type-specifier
short
type-specifier
int
type-specifier
long
type-specifier
float
type-specifier
double
type-specifier
signed
type-specifier
unsigned
type-specifier
struct-or-union-specifier
type-specifier
enum-specifier
type-qualifier
const
type-qualifier
volatile
struct-or-union-specifier
struct-or-union ID { struct-declaration-list }
struct-or-union-specifier
struct-or-union { struct-declaration-list }
struct-or-union-specifier
struct-or-union ID
struct-or-union
struct
struct-or-union
union
struct-declaration-list
struct-declaration
struct-declaration-list
struct-declaration-list struct-declaration
init-declarator-list
init-declarator
init-declarator-list
init-declarator-list , init-declarator
init-declarator
declarator
init-declarator
declarator = initializer
struct-declaration
specifier-qualifier-list struct-declarator-list ;
specifier-qualifier-list
type-specifier specifier-qualifier-list
specifier-qualifier-list
type-specifier
specifier-qualifier-list
type-qualifier specifier-qualifier-list
specifier-qualifier-list
type-qualifier
struct-declarator-list
struct-declarator
struct-declarator-list
struct-declarator-list , struct-declarator
struct-declarator
declarator
struct-declarator
declarator : constant-expression
struct-declarator
: constant-expression
enum-specifier
enum ID { enumerator-list }
enum-specifier
enum { enumerator-list }
enum-specifier
enum ID
enumerator-list
enumerator
enumerator-list
enumerator-list , enumerator
enumerator
ID
enumerator
ID = constant-expression
declarator
pointer direct-declarator
declarator
direct-declarator
direct-declarator
ID
direct-declarator
( declarator )
direct-declarator
direct-declarator [ constant-expression ]
direct-declarator
direct-declarator [ ]
direct-declar

ator
direct-declarator ( parameter-type-list )
direct-declarator
direct-declarator ( ID-list )
direct-declarator
direct-declarator ( )
pointer
* type-qualifier-list
pointer
*
pointer
* type-qualifier-list pointer
pointer
* pointer
type-qualifier-list
type-qualifier
type-qualifier-list
type-qualifier-list type-qualifier
parameter-type-list
parameter-list
parameter-type-list
parameter-list , ...
parameter-list
parameter-declaration
parameter-list
parameter-list , parameter-declaration
parameter-declaration
declaration-specifiers declarator
parameter-declaration
declaration-specifiers abstract-declarator
parameter-declaration
declaration-specifiers
ID-list
ID
ID-list
ID-list , ID
initializer
assignment-expression
initializer
{ initializer-list }
initializer
{ initializer-list , }
initializer-list
initializer
initializer-list
initializer-list , initializer
type-name
specifier-qualifier-list
type-name
specifier-qualifier-list abstract-declarator
abstract-declarator
pointer
abstract-declarator
pointer direct-abstract-declarator
abstract-declarator
direct-abstract-declarator
direct-abstract-declarator
( abstract-declarator )
direct-abstract-declarator
[ ]
direct-abstract-declarator
direct-abstract-declarator [ ]
direct-abstract-declarator
[ constant-expression ]
direct-abstract-declarator
direct-abstract-declarator [ constant-expression ]
direct-abstract-declarator
( )
direct-abstract-declarator
direct-abstract-declarator ( )
direct-abstract-declarator
( parameter-type-list )
direct-abstract-declarator
direct-abstract-declarator ( parameter-type-list )
statement
labeled-statement
statement
expression-statement
statement
compound-statement
statement
selection-statement
statement
iteration-statement
statement
jump-statement
statement
io-statement
io-statement
scanf ( " format " , input ) ;
io-statement
printf ( " " ) ;
io-statement
printf ( " \n " ) ;
io-statement
printf ( " string " ) ;
io-statement
printf ( " format " , ID-list ) ;
format
%d
format
%c
format
%s
format
%f
format
%lf
format
%o
format
%x
format
format , format
input
& ID
input
input , input
labeled-statement
ID : statement
labeled-statement
case constant-expression : statement
labeled-statement
default : statement
expression-statement
expression ;
expression-statement
;
compound-statement
{ }
compound-statement
{ declaration-list }
compound-statement
{ statement-list }
compound-statement
{ declaration-list statement-list }
statement-list
statement
statement-list
statement-list statement
selection-statement
if ( expression ) statement
selection-statement
if ( expression ) statement else statement
selection-statement
switch ( expression ) statement
iteration-statement
while ( expression ) statement
iteration-statement
do statement while ( expression ) ;
iteration-statement
for ( ; ; ) statement
iteration-statement
for ( expression ; ; ) stat

ement
iteration-statement
for ( ; expression ; ) statement
iteration-statement
for ( ; ; expression ) statement
iteration-statement
for ( expression ; expression ; ) statement
iteration-statement
for ( expression ; ; expression ) statement
iteration-statement
for ( ; expression ; expression ) statement
iteration-statement
for ( expression ; expression ; expression ) statement
jump-statement
goto ID ;
jump-statement
continue ;
jump-statement
break ;
jump-statement
return expression ;
jump-statement
return ;
expression
assignment-expression
expression
expression , assignment-expression
assignment-expression
conditional-expression
assignment-expression
unary-expression assignment-operator assignment-expression
assignment-operator
=
assignment-operator
*=
assignment-operator
/=
assignment-operator
%=
assignment-operator
+=
assignment-operator
-=
assignment-operator
<<=
assignment-operator
>>=
assignment-operator
&=
assignment-operator
^=
assignment-operator
|=
conditional-expression
logical-OR-expression
conditional-expression
logical-OR-expression ? expression : conditional-expression
constant-expression
conditional-expression
logical-OR-expression
logical-AND-expression
logical-OR-expression
logical-OR-expression || logical-AND-expression
logical-AND-expression
inclusive-OR-expression
logical-AND-expression
logical-AND-expression && inclusive-OR-expression
inclusive-OR-expression
exclusive-OR-expression
inclusive-OR-expression
inclusive-OR-expression | exclusive-OR-expression
exclusive-OR-expression
AND-expression
exclusive-OR-expression
exclusive-OR-expression ^ AND-expression
AND-expression
equality-expression
AND-expression
AND-expression & equality-expression
equality-expression
relational-expression
equality-expression
equality-expression == relational-expression
equality-expression
equality-expression != relational-expression
relational-expression
shift-expression
relational-expression
relational-expression < shift-expression
relational-expression
relational-expression > shift-expression
relational-expression
relational-expression <= shift-expression
relational-expression
relational-expression >= shift-expression
shift-expression
additive-expression
shift-expression
shift-expression << additive-expression
shift-expression
shift-expression >> additive-expression
additive-expression
multiplicative-expression
additive-expression
additive-expression + multiplicative-expression
additive-expression
additive-expression - multiplicative-expression
multiplicative-expression
cast-expression
multiplicative-expression
multiplicative-expression * cast-expression
multiplicative-expression
multiplicative-expression / cast-expression
multiplicative-expression
multiplicative-expression % cast-expression
cast-expression
unary-expression
cast-expression
( type-name ) cast-expression
unary-expression
postfix-expression
unary-expression
++ una

ry-expression
unary-expression
-- unary-expression
unary-expression
unary-operator cast-expression
unary-expression
sizeof unary-expression
unary-expression
sizeof ( type-name )
unary-operator
&
unary-operator
*
unary-operator
+
unary-operator
-
unary-operator
~
unary-operator
!
postfix-expression
primary-expression
postfix-expression
postfix-expression [ expression ]
postfix-expression
postfix-expression ( argument-expression-list )
postfix-expression
postfix-expression ( )
postfix-expression
postfix-expression . ID
postfix-expression
postfix-expression -> ID
postfix-expression
postfix-expression ++
postfix-expression
postfix-expression --
primary-expression
ID
primary-expression
constant
primary-expression
string
primary-expression
( expression )
argument-expression-list
assignment-expression
argument-expression-list
argument-expression-list , assignment-expression
constant
NUM

相关主题
相关文档
最新文档