找回密码
 注册
查看: 932|回复: 1

【项目】FinC,C语言解释器

[复制链接]
发表于 2005-8-8 11:23:46 | 显示全部楼层 |阅读模式
FinC, a programming langauge & interpreter with C-like syntax 一个类似C语言的解释器,里面还带一个小型的shell(embedded-sample/interpreter),对于C程序员或许有些帮助,它实现了比较完整的C语言表达式命令行

页面:http://gro.clinux.org/projects/finc/

for example:(for语句)
finsh>>int i;
finsh>>for(i = 0; i < 10; i ++) printf("i = %d\n", i);
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
finsh>>

another: (前++、后++运算)
finsh>>int i = 0;
finsh>>printf("i++ = %d\n", i++);
i++ = 0
finsh>>printf("++i = %d\n", ++i);
++i = 2
finsh>>printf("++i++ = %d\n", ++i++);
++i++ = 3
finsh>>printf("i = %d\n", i);
i = 3

another: (位运算,十六进制输出,接上i = 3)
finsh>>printf("i << 2 = 0x%02x\n", i << 2);
i << 2 = 0x0c

another: (条件运算)
finsh>>i = 0;
finsh>>int j = 0;
finsh>>i = j == 0? 10 : 5;
finsh>>printf("i = %d\n", i);
i = 10

another: (字符串操作)
finsh>>string str = "Hello world";
finsh>>for(i = 0; i < string_length(str); i++) printf("%c\n", str);
H
e
l
l
o

w
o
r
l
d

......
其中没有"finsh>>"的,是shell的输出。

页面里也包括一些初步的文档,下一步的目标是朝C89标准迈进,实现强类型指针,多维数组(当前支持一维数组),应用方面0.3.x系列面向测试软件(和wxWidgets结合起来)。
 楼主| 发表于 2005-8-8 11:30:09 | 显示全部楼层
呵呵,神奇,前++,后++有点问题呢。。。
改用原始C语言编译
#include <stdio.h>

int main(int argc, char *argv[])
{
        int i = 0;

        ++i;
        i++;
        ++i++;

        printf("i = %d\n", i);

        return 0;
}

-----
$ gcc -o tt test.c
test.c: In function `main':
test.c:9: invalid lvalue in increment

居然编译不过,还是需要多测试啊,
有兴趣帮改进的请多提提意见
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-8 03:00 , Processed in 0.044944 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表