独自にアタッチという、ポインターと同等の変数アクセスの仕組みの作業途中

このコミットによって、for,mat,ユーザー定義functionが壊れる。
（他にも壊れているかもしれない）
それと lshift, rshift のバグ修正。

アタッチについて:
アタッチは変数自身がデータ保存位置として持っているアドレスを、
一時的に任意のアドレスに差し替える仕組みです。
（実質的にできることはc言語のポインターに近いものを目指してます）

追加される演算子は <- （アタッチ）と、 & （アドレス）です。
& は c言語のそれと同じで、&a などとすることで a のアドレスを得られます。
一方、 <- は少し考え方がユニークで、（実質的にはc言語の *a に近いことができますが）
ある変数が内部的に持つベースアドレスを、
一時的に他のアドレスへアタッチするようなニュアンスです。

（注:下記の例の多く願望です。現状では多くがまだ実装できてません）

例:
dim a
(123 >> 16) <- a := 456
こうすることで、aは一時的にアドレス(123 >> 16)をベースとして動作します。
すなわち、(123 >> 16)のアドレスに456がセットされます。

この、ベースの差し替えは一時的なものです。したがって次に
print a
としても、456とは表示されずに、初期値のままの０が表示されるはずです。

(123 >> 16) の内容を a の型で参照したいのであれば、以下のように
print (123 >> 16) <- a
こうすることで、先ほど書き込んだ456を表示できます。

例2:
アタッチ先を直値ではなく、変数によって指定することもできます
dim p
p := 123 >> 16

dim a
p <- a := 456
print p <- a
これでも 456 は表示されますし、
print a
これならまだ初期値の０が表示されます。

例3:
配列もアタッチできます。（これが元々の目的。発想の出発点でした）
dim a(10, 20)
(123 >> 16) <- a(2,3) := 456
たとえばこうすれば、(123 >> 16) + (10 * 2) + 3 のアドレスに 456 を書き込めます。
そういうことです。
すなわち、a(10,20)というアクセス方法（列幅*行+列）を、(123 >> 16)の位置をベースに
行うということです。

例4:
アドレスを得るには & を用いて、c言語と同じようにやります。
dim a

dim ptr
ptr := &a
これで ptr には a のアドレスが入ります。

例5:
長さ1000のベクトル中から、100～102までの範囲を長さ3のベクトルとして扱いたい場合。
dim a(1000)
dim b(3)

dim ptr
ptr := &a + (100 >> 16)

ptr <- b(0) := 123
ptr <- b(1) := 234
ptr <- b(2) := 345

しばらく実装に向けて試行錯誤してみる予定。
それと、実際にこれらを完成させられる目処はまったく立って無い。
一ヶ月ほど挑戦してみても、もしもダメだったら、このコミット以降はバッサリ切り捨てて戻る予定。

以降、しばらく動作しない状態が続くはずです。