python中jam如何使用

anonymity
發布: 2019-06-20 10:08:31
原創
7679 人瀏覽過

Bjam 是一個類似於Make的專案管理工具.它專門為Boost定制的編譯管理器,它基於FTJam, FTJam是從Perforce Jam發展起來的.Bjam向後兼容Perforce Jam.

Bjam工具由Boost.Jam專案維護.

python中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會被重新為

 .

## 

##    建構同位依賴, 使依賴targets2的目標同時也依賴targets1.

2.修改依賴關係

    ALWAYS targets ;

    LEAVES targets ;

    NOCARE targets ;

    NOTFILE targets ;

    NOUPDATE targets ;

    TEMPORARY targets ;

3.工具

    

    ECHO args ;

    顯示參數

卷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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!