python中jam如何使用


本文摘自php中文网,作者anonymity,侵删。

Bjam 是一个类似于Make的项目管理工具.它专门为Boost定制的编译管理器,它基于FTJam, FTJam是从Perforce Jam发展起来的.Bjam向后兼容Perforce Jam.

Bjam工具由Boost.Jam项目维护.

当前Bjam的最新版本是:3.1.9(与Boost-1.31.0一起发布).它基于2.4 of Jam/MR.

Jam语言定义

词法

Jam认为所有的记号(Token)都由空白字符(blanks, tabs, or newlines)分隔.

包括符号(:)和(;)也必须用空白字符分隔.

例外:

由引号(")包围的记号中, 可以使用空白符号.

符号(/)可以转义引号和空白字符.

由{}包围的字符串,可以使用空白符号,并且认为只是一个字符串.

关键字,做为记号时,必须使用引号包围.

内建Rule语义

1.构造依赖关系

DEPENDS targets1 : targets2 ;

使用target1依赖于targets2, 如果targets2比targets1新, targets1会被重

建.

INCLUDES targets1 : targets2 ;

构造同位依赖, 使依赖于targets2的目标同时也依赖于targets1.

2.修改依赖关系

ALWAYS targets ;

LEAVES targets ;

NOCARE targets ;

NOTFILE targets ;

NOUPDATE targets ;

TEMPORARY targets ;

3.工具

ECHO args ;

显示参数

EXIT args ;

显示参数,并退出.

GLOB directories : patterns : downcase-opt

在directories中取出符合patterns的文件名.

MATCH regexps : list

从list中取出符合regexps的符号.

流程控制

for var in list { statements }

为list中的每个执行一次statements, var被设计为list元素的值.

if cond { statements }

[ else statements ]

显然,else部分是可以选的.

条件可以是:

1

2

3

4

5

6

7

8

9

10

11

12

a 当a的元素中最少有一个非空字符串时为true;

a = b  列表元素全部相同时为true

a != b  列表元素不完全相同时为true

a < b  a和b中,第一个不相同的元素相比较, a的元素比b小(按字符串顺序).

a <= b  a中每个元素都比b对应元素小或相等

a > b  a和b中,第一个不相同的元素相比较, a的元素比b大(按字符串顺序).

a >= b  a中每个元素都比b对应元素大或相等

a in b  a所有元素都可以在b中找到,或者a是空表

! cond  逻辑非

cond && cond  逻辑与

cond || cond  逻辑或

( cond )  优先运算

include file ;

使用jam读入file,并处理它.

这个过程在解析阶段发生,所以file不会被建造,也没有文件范围.

local vars [ = values ] ;

定义一个局部变量,在{}之外原变量的值会回存.

return values ;

设置返回值,注意在rule中,return并不跳出rule的执行过程.

1

2

3

4

5

6

switch value

{

case pattern1 : statements ;

case pattern2 : statements ;

...

}

根据value执行一次或零次statements. pattern可以是以下符号通配符

? 匹配一个任意字符

* 匹配零个或更多字符

[chars] 匹配chars中的任意一个字符

[^chars] 匹配不在chars中的任意一个字符

/x 匹配x(转义其它通配符)

while cond { statements }

在条件为真时,反复执行statement.

变量控制和内建变量

Jam变量是一个字符串列表,它的元素可能是0个,也可以是多个字符串.一个未定义的变量和

一个空变量(0个元素)没有区别.但是一个变量可以定义为含有多个空字符串.

变量可以通过$(variable)来取值

变量有"全局"或"目标专用"两种.目标专用的变量只在建造目标时取值.

变量定义的方式有以下几种.

1

2

3

4

5

6

variable = elements ;

variable += elements ;

variable on targets = elements ;

variable on targets += elements ;

variable default = elements ;

variable ?= elements ;

前两种方式定义全局变量, 第三和第四种方式定义目标专用变量.

=号可以重写变量的内容.+=连接原有内容和新内容.

最后两种效果一致:在变量没有定义时,定义一个全局变量.

以上就是python中jam如何使用的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python tkinter教程 数字猜谜游戏

单例模式Python有什么用

Python中time模块与datetime模块的详解

Python可以写病毒吗

Python如何实现rsa加密的示例代码分享

Python注释用什么符号

比较Python和ruby

Python中的函数作用域

Python控件怎么用

Python之io多路复用之epoll

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...