fundecl | ::= | [fn_ctype] funinfo * funid ([PARAMSEQ(param, ε)]) { [stmt_seq] } |
funproto | ::= | [fn_ctype] funinfo * funid ([PARAMSEQ(param, ε)]); |
funinfo | ::= | inline |
| | storage | |
storage | ::= | static |
| | auto | |
| | register | |
| | extern | |
funid | ::= | id |
| | metaidId | |
param | ::= | type id |
| | metaidParam | |
| | metaidParamList | |
decl | ::= | ctype id |
| | fn_ctype (* id) (PARAMSEQ(name_opt_decl, ε)) | |
| | void | |
| | metaidParam |