[简介] |
网络上有很多种开源的C语言解释器,但都只能作为学习编译原理的入门级代码来使用,要么功能简单,语法不完善,要么是被阉割的,漏洞百出,基本都没有实用价值。
而这里介绍的是一款灵活的C语言解释器,功能很强大,已经应用于商业的动态脚本编译。 该C语言解释器本身采用标准C语言实现,可以在各种C平台下编译执行。主要特色如下:
1. 完美支持各种标准C语言语法,如if-else结构语句, ?:结构求值语句,for循环,while循环,do...while循环等。 2. 支持各种数据类型包括: char,short,int,string,float。 3. 支持多维数组及指针。 4. 支持自定义函数以及系统函数。 5. 支持局部变量以及全局变量,允许在变量定义时直接初始化。 6. 支持局部变量层次化作用域 7. 允许定义系统常量 8 支持系统内部定义数据类型,但不支持用户在脚本中自定义数据类型. 9 支持行注释符//及段注释符/*...*/ 10. 支持通过include加载其它源文件。 11. 支持各种条件运算符 || && 12. 支持各种逻辑运算及位操作符: + - * / % ! ~ ^ > < << >>,并按照C语言标准来规范运算优先级。 13. 支持单目运算!(not)及~(位取反)的嵌套。 14. 支持 += -= *= /= %= &= |= >>= <<= 的赋值形式。 15. 支持++,--操作,包括 i++ , i-- , ++i , --i 16. 支持16进制立即数,例如 支持代码 int a=0x13; 17. 增加字符串自动解析, 例如: int cmux=5; char testr[80]="hss_{$cmux}_ok"; //其中{$cmux}表示载入变量cmux值. printf("%s\n",testr); //将打印出 hss_5_ok 18 支持动态长度的字符串数据类型string. 例如 string s="hello"; //表示定义一个字符串变量s,并增初值为hello,string类型变量的控件大小是自动的,不需要指定。 19. 支持的系统函数包括: printf,sprintf fopen, fclose, fprintf,fscanf getch, putch strcat,strcmp,stricmp strcpy,strncpy memcpy,memcmp atoi, inttostr, strtoint log2, pow exit, etc. 需要支持其他系统库函数,可以自行对解释器源码进行简单的扩展定制。
为更好地提供服务,请联系作者,索取源代码授权。联系邮箱 ming@cmsoft.cn |