![]() |
モジュールは他のプログラミング言語の関数に相当する機能である。
# ルールrule_aを定義する rule rule_a { }
ルールの戻り値はreturn文で設定する。
#「a」、「b」、「c」のリストを返すルール rule rule_b { return a b c ; }
ルール名に続く括弧内で仮引数を持たせることができる。
# 二つの文字列aとbを引数にとるルール rule rule_c ( a b ) { } # 任意サイズのリストaと空でないリストbとオプションの文字列cを引数に取るルール rule rule_d ( a * : b + : c ? ) { }
ルール名に続き、定義にマッチした引数を並べるとルールを呼び出すことができる。
rule rule_c ( a b ) { } rule_c 1 2 ; # a = 1 , b = 2 rule rule_d ( a * : b + : c ? ) { } rule_d 1 2 : 1 2 : 1 ; # a = 1 2 , b = 1 2 , c = 1 rule_d : 1 ; # a = , b = 1 , c =
戻り値を利用したい場合は、ルール呼び出しを「[」と「]」で囲む。
rule rule_e ( a b ) { return $(a)-$(b) ; } X = [ rule_e x y ] ; # X = x-y