预编译工具介绍

1、简介

你好!给你介绍一款预编译软件,
本软件和c语言的预编译概念不一样,不会涉及编译的操作,只是通过修改注释注释代码的方式实现预编译功能。
所以只要是风格类似的语言都是支持的。譬如C/C++、Java、JavaScript注释块(/* 注释内容 */)一样就可以通用。

目前支持的注释块有
C/C++
/* 注释内容 */

lua
--[[注释内容 ]]

python
''' 注释内容 '''

2、功能演示

1、我们先用java语言举例。

1.1、先在桌面上建立一个空目录。

在这里插入图片描述

1.2、我们编辑test.java内容如下:

在这里插入图片描述

1.3、打开PreCompile工具,我们点击新建工程按钮。

在这里插入图片描述

1.4、点击选择目录按钮,选择桌面上的test目录,项目类型选择java,点击确定即可创建好工程。

在这里插入图片描述

1.5、双击红框处,打开test.java代码。

在这里插入图片描述

1.6、效果如下:

在这里插入图片描述

1.7、接下来,我们配置相应标签,譬如我把魏、蜀、吴视作不同的项目,对应(COUNTRY_WEI、COUNTRY_SHU、COUNTRY_WU),让我们点击项目标签配置按钮。

在这里插入图片描述

1.8、窗口如下:

我们右键Debug、Release,删除掉,新建好魏蜀吴几个项目。
在这里插入图片描述

1.9、我们点击空白处新建项目配置

在这里插入图片描述
双击即可修改对应的标签名。
在这里插入图片描述

1.10、每个国家(项目),国家对应国王和继承人,配置好之后,点击确定关闭,效果如下:

在这里插入图片描述

1.11、点击确定之后,我们发现控制台处的项目配置发生改变,点击展开之后效果如下:

在这里插入图片描述

1.12、先选择魏国 (WEI),点击旁边的预编译按钮。

在这里插入图片描述

1.13、此时我们用sublime打开看看test.java效果。

在这里插入图片描述

1.14、我们再切换一个试试

在这里插入图片描述
WU2的定义为COUNTRY_WU、heir
在这里插入图片描述

执行后,我们可以看到,“孙休”正确的打开了。到此,教程就到此结束了。

3、语法介绍

1、关键字:

if、else、elseif、end、then

2、逻辑运算符(优先级从上到下,括号可改变优先级):
not:当标签未定义时表达式成立
and:当两侧的标签都定义时,表达式成立
or:当两侧标签有一个定义时,表达式成立

注意,关键字无视大小写。

标签:
命名:
建议以字符串或者下划线开头,字母或者数字下划线组成。不能使用关键字命名,(if、else、elseif、end、then、not、and、or)

状态:
标签只有两种状态,定义或者没定义。

1、举例(C语言),and 使用说明:
定义的标签:juzhu、taishou
/*if junzhu and taishou then*/   // 如果是君主并且是太守
printf("是君主或者是太守");
/*else*`
printf("不是太守也不是君主");	// 表示普通武将
/*end*/

junzhu(君主)、taishou(太守)都定义了,所以条件成立,第一个注释块被打开,else注释被关闭,打印“主公曹操”。

2、举例(C语言),or 使用说明

定义的标签:taishou
/*if taishou or weiguo then*/
printf("是魏国的或者是太守");
/*else*`
printf("非魏国普通武将");
/*end*/

因为定义了taishou标签,所以只要taishou或者weiguo一个标签定义则表达式成立,所以条件成立,打印“是魏国的或者是太守”。

3、举例(C语言),not 使用说明

定义了标签:taishou
/*if not taishou then*`
printf("不是太守");
/*else*/
printf("是太守");
/*end*/

因为定义了taishou标签,结果为真,not之后,结果为假,所以条件不成立,else注释块被打开,打印“是太守”。

4、优先级提升举例

定义标签:weiguo、junzhu
/*if weiguo and (junzhu or taishou) then*/
printf("魏国的君主或者太守");
/*else*`
printf("非魏国的君主或者太守");
/*end*/

如果去掉括号,那么意思就变成了魏国的君主或者任意国家的太守。所以需要用括号提升表达式优先级。

5、嵌套说明,缩进只是为了更好的观看代码,实际运用中可以不缩进。

定义标签:wuguo、junzhu
/*if weiguo then*`
printf("魏国");
/*elseif wuguo then*/
/*if taishou then*`
printf("周瑜");
/*else*/
printf("孙权");
/*end*/
/*elseif shuguo then*/
/*if junzhu then*/
printf("蜀国");
/*elseif chengxiang then*/
printf("诸葛亮");
/*end*/
/*end*/
因为weiguo没定义,第一个条件表达式不成立,所以关闭,下一个表达式中wuguo定义了,所以表达式被打开,第三个表达式 taishou没定义,关闭注释块,所以输出“孙权”。

6、格式化说明,书写在一行也是没问题的。

定义标签:caocao
string name = /*if caocao then*/"曹操"/*else*/"孙权"/*end*/;
printf("%s\n", name.c_str());

因为定义了caocao,所以表达式成立,曹操被显示。

7、其他语言,譬如lua、python只需将/* */替换成相应的注释块即可,譬如

lua:
local name = --[[if caocao then]]"曹操"--[[else]`"孙权"--[[end]];
print(name);

python:
name = '''if caocao then'''"曹操"'''else''`"孙权"'''end''';
print(name);

4、下载地址

如有有兴趣,可以到这个链接中看到详细用法,以及下载地址。谢谢~
http://note.youdao.com/noteshare?id=80b30749403471c4154962704db709c9

猜你喜欢

转载自blog.csdn.net/huangzhoulvbu/article/details/88053358
今日推荐