Laut ANSI C Grammatik (http://www.lysator.liu.se/c/ANSI-C-grammar-y.html) ist foo in
keine Funktion, es ist nicht definiert!
Code:
bar() {
foo() { /* ... */ }
}
keine Funktion, es ist nicht definiert!
Code:
%start translation_unit
/* .... */
translation_unit
: external_declaration
| translation_unit external_declaration
;
external_declaration
: function_definition
| declaration
;
function_definition
: declaration_specifiers declarator declaration_list compound_statement
| declaration_specifiers declarator compound_statement
| declarator declaration_list compound_statement
| declarator compound_statement
;