- 论坛徽章:
- 0
|
这是个能生成c++ java c的代码生成工具,生成的代码比标准库都快...无赖。。英文不好又没中文资料。。。求指点下 下面是官方给的最简单的例子。。。
atoi c标准库函数 把字符串转换成整数
%%{
machine atoi;
write data;
}%%
long long atoi( char *str )
{
char *p = str, *pe = str + strlen( str );
int cs;
long long val = 0;
bool neg = false;
%%{
action see_neg {
neg = true;
}
action add_digit {
val = val * 10 + (fc - '0');/*我只看懂了这里 没读一位应该循环执行这里一次.但是循环在哪里??其它地方都是什么意思?求高手指教?*/
}
main :=
( '-'@see_neg | '+' )? ( digit @add_digit )+
'\n';
# Initialize and execute.
write init;
write exec;
}%%
if ( neg )
val = -1 * val;
if ( cs < atoi_first_final )
fprintf( stderr, "atoi: there was an error\n" );
return val;
};
|
|