|
推荐
楼主 |
发表于 2018-3-4 20:03:12
|
只看该作者
本帖最后由 不点 于 2018-3-5 00:07 编辑
编译完成了。
目前先这样运行它:
~/inst/bin/cling -include stdlib.h
【更新】不需要手动增加命令行参数 -include stdlib.h 了。直接执行不带参数的 ~/inst/bin/cling 即可。
然后敲入 ls 回车,就可体验 shell 的味道了。更多体验的方法,以后再详述。
目前只是概念证明性质的,还不是正式的发布。
以下是几个测试的语句:
- deb@debian64:~$ ~/inst/bin/cling -include stdlib.h
- ****************** CLING ******************
- * Type C++ code and press enter to run it *
- * Type .q to exit *
- *******************************************
- [cling]$ ls
- a.out clone.sh.sav dash_new node-v9.6.1-linux-x64 obj_old src src.diff.gz src_old src.tar.gz wetty 公共 视频 文档 音乐
- clone.sh dash inst obj obj.old src.diff src.diff.old src.old ttt yash.c 模板 图片 下载 桌面
- [cling]$ system
- sh: 1: system: not found
- (int (*)(const char *)) Function @0x7f4cbbad0450
- [cling]$ system("ls");
- a.out clone.sh.sav dash_new node-v9.6.1-linux-x64 obj_old src src.diff.gz src_old src.tar.gz wetty 公共 视频 文档 音乐
- clone.sh dash inst obj obj.old src.diff src.diff.old src.old ttt yash.c 模板 图片 下载 桌面
- [cling]$ if (
- [cling]$ ? ls
- [cling]$ ? );
- a.out clone.sh.sav dash_new node-v9.6.1-linux-x64 obj_old src src.diff.gz src_old src.tar.gz wetty 公共 视频 文档 音乐
- clone.sh dash inst obj obj.old src.diff src.diff.old src.old ttt yash.c 模板 图片 下载 桌面
- [cling]$ printf("hello!\n");
- hello!
- [cling]$
复制代码
简单解释一下。
默认时,命令行首先当作 shell 命令来对待,失败时再进行 C++ 的处理。但具有下面这些特征的行,不进行 shell 的解释,而直接当作 C++ 代码来处理:
1、以 “#” 开头的行
2、以 “)”、“]”、“}” 开头的行
3、以 “(”、“[”、“{” 结尾的行
4、以 “\”(反斜杠)、“,”(逗号)、“;”(分号)、“//”(双斜杠)结尾的行
不再为 shell 单独设计控制结构(if,for,while 等),而是直接纳入 C++ 语言控制结构(if,switch,for,while 等)来统一管理。
(这只是个初步的草案,随着开发的逐步深入,以后可能还会有增删)。
|
评分
-
查看全部评分
|