RubyのWhiteSpaceでは連想配列を使っているので、
吉里吉里verも連想配列を使ってみました。
単純な翻訳ではないので、どっかで不具合でるかもw
[iscript]
// 変数なので何回も代入してもたぶんOK
var STACK_MEMBERS = 1024;
var HEAP_MEMBERS = 1024;
var MAX_LABELS = 200;
var MAX_LABEL_LENGTH = 500;
var MAX_INSTRUCTIONS = 30;
var MAX_INSTRUCTION_LENGTH = 10;
var MAX_NESTED_SUBROUTINES = 20;
[endscript]
[iscript]
class Heap_Model {
// 連想配列のメンバ
var m_heap = %[];
function Heap_Model(){
}
function heap_put(p_val,p_key){
// 数値を文字列に変換
var s_key=""+p_key;
// 連想配列に代入
m_heap[s_key]=p_val;
return 1;
}
function heap_get(p_key){
// 数値を文字列に変換
var s_key=""+p_key;
// 連想配列から取得
return m_heap[s_key];
}
}
[endscript]
[iscript]
var heap = new Heap_Model();
heap.heap_put(10,1);
heap.heap_put(20,2);
heap.heap_put(30,3);
heap.heap_put(40,4);
heap.heap_put(50,5);
heap.heap_put(100,10);
heap.heap_put(90,9);
heap.heap_put(80,8);
heap.heap_put(70,7);
heap.heap_put(60,6);
heap.heap_put(100,1);
heap.heap_put(200,2);
heap.heap_put(300,3);
var r1=heap.heap_get(1);
var r2=heap.heap_get(2);
var r3=heap.heap_get(3);
var r4=heap.heap_get(4);
var r5=heap.heap_get(5);
var r6=heap.heap_get(6);
var r7=heap.heap_get(7);
var r8=heap.heap_get(8);
var r9=heap.heap_get(9);
var r10=heap.heap_get(10);
[endscript]
[emb exp="r1"][r]
[emb exp="r2"][r]
[emb exp="r3"][r]
[emb exp="r4"][r]
[emb exp="r5"][r]
[emb exp="r6"][r]
[emb exp="r7"][r]
[emb exp="r8"][r]
[emb exp="r9"][r]
[emb exp="r10"][r]
[p][cm]
[iscript]
// 代入してないので何も表示されない
var r11=heap.heap_get(11);
var r12=heap.heap_get(12);
[endscript]
[emb exp="r11"][r]
[emb exp="r12"][r]