吉里吉里 version White Space 002 heap class

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]

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です