【发布时间】:2013-03-08 23:01:23
【问题描述】:
我的 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 ')' )*
但这并没有多大帮助。
至于乘法,我不知道该怎么做才不会带来冲突。 请问有办法解决吗?
【问题讨论】:
标签: c function antlr grammar multiplication