home *** CD-ROM | disk | FTP | other *** search
- ?≡«»≤≥
- «c-language-items»
- ?«c-language-items»
- «external-definition»
- «function-definition»
- «statement»
- ≡«program» «external-definition»
- ≤«external-definition»≥...
- ?«external-definition»
- «function-definition»
- «declaration»
- «preprocessor-statement»
- ≡«function-definition» ≤«decl-specifiers»≥ «declarator»
- ≤«declaration-list»≥ {
- ≤«declaration-list»≥
- ≤«statement-list»≥
- }
- ≡ STATEMENTS
- ≡«statement-list» «statement»
- ≤«statement-list»≥
- ?«statement»
- identifier : «statement»
- case «constant-expression»: «statement»
- default: «statement»
- «compound-statement»
- «expression»;
- «if-statement»
- switch ( «expression» ) «statement»
- while («expression») «statement»
- «do-statement»
- for («expression» ; «expression» ; «expression») «statement»
- goto identifier;
- continue;
- break;
- return ≤«expression»≥;
- «preprocess-statement»
- ;
- ≡«compound-statement» {
- ≤«declaration-list»≥
- ≤«statement-list»≥
- }
- ≡«if-statement» if («expression») «statement»
- ≤else if «statement»≥...
- ≤else «statement»≥
- ≡«do-statement» do «statement»
- while ( «expression» );
- ?«preprocessor-statement»
- #define identifier token-string
- #define identifier (identifier≤, identifier≥...) token-string
- #undef identifier
- #include "filename"
- #include <filename>
- «#if-statement»
- «#ifdef-statement»
- «#ifndef-statement»
- #else
- #endif
- #line constant identier
- ≡«#if-statement» #if «constant-expression»
- [#else]
- #endif
- ≡«#ifdef-statement» #ifdef identifier
- [#else]
- #endif
- ≡«#ifndef-statement» #ifndef indentifier
- [#else]
- #endif
- ≡ DECLARATIONS
- ≡«declaration» «decl-specifiers» «init-declarator»≤, «init-declarator»≥...;
- ?«decl-specifiers»
- «type-specifier» ≤«decl-specifiers»≥
- «sc-specifier» ≤«decl-specifiers»≥
- ≡«init-declarator» «declarator» ≤= «initializer»≥
- ?«sc-specifier»
- auto
- static
- extern
- register
- typedef
- ?«type-specifier»
- void
- char
- short
- int
- long
- float
- double
- unsigned
- «struct-or-union-specifier»
- «enum-specifier»
- «typedef-name»
- ?«struct-or-union-specifier»
- struct identifier
- struct [identifier] «{struct-decl-list}»
- union identifier
- union [identifier] «{struct-decl-list}»
- ≡«{struct-decl-list}» {
- «struct-decl-list»
- }
- ≡«struct-decl-list»
- struct-declaration
- ≤«struct-decl-list»≥
- ≡«struct-declaration» «type-specifier-list» «struct-declarator-list»;
- ≡«struct-declarator-list» «struct-declarator»≤, «struct-declarator»≥...
- ≡«type-specifier-list» «type-specifier» ≤«type-specifier»≥...
- ?«struct-declarator»
- «declarator»
- ≤«declarator»≥ : «constant-expression»
- ?«enum-specifier»
- enum ≤identifier≥ { «enumeration_list» }
- enum ≤identifier≥
- ≡«enumeration-list» «enumerator» ≤«, «enumerator»≥
- ≡«enumerator» «enumeration-constant» ≤«constant-expression»≥
- ?«declarator»
- identifier
- («declarator»)
- «declarator»[≤«constant-expression»≥]
- «declarator»(«parameter-type-list»)
- «declarator»(≤«identifier-list»≥)
- *≤«type-specifier-list»≥«declarator»
- ?«parameter-type-list»
- «parameter_list»
- «parameter_list»,...
- ≡«parameter-list» «parameter-declaration»≤, «parameter-declaration»≥...
- ?«parameter-declaration»
- «decl-specifiers» «declarator»
- «decl-specifiers» ≤«abstract-declarator»≥
- ≡«type-name» «type-specifier-list» ≤«abstract-declarator»≥
- ?«abstract-declaractor»
-
- * «abstract-declarator»
- ( «abstract-declarator» )
- «abstract-declarator» [ ≤«constant-expression»≥ ]
- «abstract-declarator» (≤«parameter-type-list»≥)
- ≡«typedef-name» identifier
- ≡«declaration-list» «declaration»
- ≤«declaration»≥...
- ?«initializer»
- = «expression»
- { «initializer-list» }
- ?«initializer-list»
- «initializer» ≤, «initializer»≥...
- ≡«comment» /* text */
- ≡ EXPRESSIONS
- ≡«constant-expression» «expression»
- ?«expression»
- «primary»
- * «expression»
- & «expression»
- - «expression»
- ! «expression
- ~ «expression»
- ++«lvalue»
- --«lvalue»
- «lvalue»++
- «lvalue»--
- sizeof «expression»
- («type-name») «expression»
- «expression» binop «expression»
- «expression» ? «expression» : «expression»
- «lvalue» asgnop «expression»
- «expression» , «expression»
- ?«primary»
- identifier
- constant
- string
- («expression»)
- «primary» ( ≤«expression»≥... )
- «primary»[expression]
- «lvalue».identifier
- «primary»->identifier
- ?«lvalue»
- identifier
- «primary» [«expression»]
- «lvalue».identifier
- «primary»->identifier
- * «expression»
- ( «lvalue» )
- ?«binop»
- *
- /
- %
- +
- -
- <<
- >>
- <
- >
- <=
- >=
- ==
- !=
- &
- ^
- |
- &&
- ||
- ?:
- ?«asgnop»
- =
- +=
- -=
- *=
- /=
- %=
- >>=
- <<=
- &=
- ^=
- |=
-