Ngraph はスクリプト言語(Ngraph スクリプト)のインタープリタを備えています。
グラフの設定(実際には各オブジェクトOBJECTのフィールド値)もNgraph スクリプト形式で保存されます。
Ngraph スクリプトの文法は, UNIX の sh (シェル) からジョブ制御機能を取り去り, オブジェクト操作命令を追加したものになっています。
shと同等の文法・コマンドは以下の通りです(sh の文法の詳細については UNIX のマニュアルを参照してください)。
name1=val1 name2=val2 ... command arg1 arg2 arg3 ...
# comment
(for, case, if, while, until 文)
for name [in word] do list done
case word in [pattern [|pattern] ...list;;] ... esac
if list then list [elif list then list]...[else list] fi
while list do list done
until list do list done
name() { list; }
({}は常に必要)
*?[]
`command`
name=value [ name=value ] ...
$# $? $num $* $@
${name}
${name:-word}
${name:=word}
${name:?word}
${name:+word}
${name#word}
${name##word}
${name%word}
${name%%word}
< file
<<[-]word
> file
>> file
command | command
:
. file
break [n]
continue [n]
cd
echo [-q]
eval [arg]
exit [n]
export [name]
pwd
return [n]
set
shift [n]
unset
test
[
sleep
true
false
read [val]
seq [last | first last | first incr last]
basename name [suffix]
dirname name
which [-q]
独自に追加した文法・コマンドは以下の通りです。
(objectのinstance_listのfieldにvalueを設定)
object:instance_list:field=value
(objectのinstance_listのfieldの値)
${object:instance_list:field=argument}
new object [field=value, ...]
del object:instance_list
exist [-q] object:instance_list
get object:instance_list [-write -field -id -quote -escape] field=argument ...
put object:instance_list field=value ...
exe object:instance_list field=argument ...
cpy object:source,destination[,destination,...] field ...
dup object:instance_list
move object:instance1,instance2
movetop object:instance
movelast object:instance
exch object:instance1,instance2
object [object1 object2 ... [-name -version -parent -id -field -size
-current -last -instnace -instances] [field ...]]
derive [-instance] object
(数式expを評価)
dexpr exp
iexpr exp
-i script_name
でスタートアップスクリプトを明示的に指定する事もできます。ngraph [-i script_name] [option1 option2 ...]
で、-i オプションでスタートアップスクリプトを指定します。 残りのオプションは全てスタートアップスクリプトに渡され、その中で解析されます。 スタートアップスクリプトはユーザがカスタマイズする事ができるので、独自のコマンドラインオプションを作成する事ができます。