• 技术文章 >后端开发 >Python教程

    python中jam如何使用

    anonymityanonymity2019-06-20 10:08:31原创5191
    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部分是可以选的.

    条件可以是:

    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的执行过程.

    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)来取值

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

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

     variable = elements ; 
     variable += elements ; 
     variable on targets = elements ; 
     variable on targets += elements ; 
     variable default = elements ; 
     variable ?= elements ;

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

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

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

    以上就是python中jam如何使用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python
    上一篇:python可以写病毒吗 下一篇:python如何定义整数
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• python程序都可以运行在哪里• python中列表长度可变吗• 你知道Python吗• 普通人学python有用吗
    1/1

    PHP中文网