我的 C 语法中的函数定义有问题,可以在这里找到http://www.archive-host.com/files/1959635/24fe084677d7655eb57ba66e1864081450017dd9/cAST.txt,它没有正确定义,我不能乘它通过一些东西。我想输入的代码是这个:
int factorielle(int n)
{ int x;
if ( n == 0)
return 1;
else return n*factorielle(n-1);
}
函数定义是这样的:
function_definition
: declaration_specifiers declarator compound_statement
| declarator compound_statement
;
declaration_specifiers 应该链接到 int 和 declarator 到 factorielle(int n),为此我替换了这个:
direct_declarator
: ID ((direct_declarator '[' ']') | (direct_declarator '(' parameter_type_list ')') | (direct_declarator '(' identifier_list ')') | (direct_declarator '(' ')') )*
和
direct_declarator
: ID ((direct_declarator '[' ']') | (direct_declarator '(' parameter_type_list ')') | (direct_declarator '(' identifier_list ')') | (direct_declarator '(' ')') | '(' parameter_type_list ')' )*
但这并没有太大帮助。
至于乘法,我不知道该怎么做才不会带来冲突。请问有没有办法解决这个问题?