Asir の文法は C 言語に準拠している. おもな相違点は次の通りである. 以下で, 変数とは Asir における プログラム用の変数, すなわち大文字で始まる文字列を意味することとする.
[0] A = 1; 1 [1] type(A); 1 [2] A = [1,2,3]; [1,2,3] [3] type(A); 4
extern
宣言された変数は, トップレベルにおける大域変数となる.
すなわち, 変数のスコープは大域変数と局所変数の 2 種類に単純化されている.
トップレベル, すなわちプロンプトに対して入力された変数は全て大域変数
として登録される. また函数内では次のいずれかとなる.
extern
宣言されている場合, 函数内のその変数も大域変数
として扱われる.
extern
宣言されていない変数はその函数に局所的となる.
% cat afo def afo() { return A;} extern A$ def bfo() { return A;} end$ % asir [0] load("afo")$ [5] A = 1; 1 [6] afo(); 0 [7] bfo(); 1
switch
文, goto
がない.
goto
がないため, 多重ループを一度に抜けるのがやや複雑になる場合がある.
for (A;B;C)
または, while(A)
の A
,
B
, C
にのみ使うことができる.
以上は制限であるが, 拡張としては次の点が挙げられる.
Go to the first, previous, next, last section, table of contents.