--------------------------------------------------------------------- Array --------------------------------------------------------------------- 概要 Proxomitronで数値添字配列を実現します。 「four arithmetic operations」 のインクリメントフィルタを利用しています。 まだ実験制の高いフィルタのため、このままでは使えません。 いずれはリスト化してグローバル変数で引数を取る形にする予定です。(インクリメントと同じ) 更新履歴 2009/05/20 02:21 (ver.0.2b) - 初公開 - 配列をCSV形式でグローバル変数に保存する (値に改行、カンマを持てない不具合あり) - $SET(CallArray=a[0]) で数値添字配列を呼び出す事が出来る 2009/05/20 03:46 (ver.0.3.4b) - $SET(CallArray=) から $SET(getArray=) へ。 "get","set" の組み合わせは直感的だが、$SET(Array=) のみにして処理は自動的に判別させる方がスマートな気がする。 - CSVフォーマットに完全準拠 (値に改行、カンマを持てるようになった) --------------------------------------------------------------------- [Patterns] Name = "Array ver.0.3.4b" Active = FALSE Limit = 256 Match = "test" "$SET(ArrayList=a=["test","""Proxomitron""","\nc=[1,2,3]","val4"]\nb=[1,3,5,7,11,13])" "$SET(getArray=a[1])" "" "$TST(getArray=([a-z_][0-9a-z_]+)\9$SET(VarName=\9)\[([0-9]+)\9$SET(Key=\9)\])" "$SET(getArray=)$SET(Num=0)" "$TST(ArrayList=((^$TST(VarName))[a-z_][0-9a-z_]+=\[(\"(\"\"|[^"])+\"|(^\")[^,\]]+)(,(\"(\"\"|[^"])+\"|(^\")[^,\]]+))+\][\r\n]+{1,*})++" "$TST(VarName)\=\[((\"(^$TST(Num=$TST(Key)))(\"\"|[^"])+\"|(^$TST(Num=$TST(Key)))(^\")[^,\]]+),$LST(increment))+" "(\"(\"\"$SET(Value=$GET(Value)")|([^"])\9$SET(Value=$GET(Value)\9))+\"|(^\")([^,\]]+)\9$SET(Value=\9))*" ")" Replace = "$GET(VarName)[$GET(Key)]=\r\n" "$GET(Value)" --------------------------------------------------------------------- やることリスト * $SET(getArray=) から $SET(Array=) にする // 初期化 $SET(Array=a=["It","is","a","test"]) // 呼び出し $SET(Array=a[0]) // 解放 $SET(Array=a=) $SET(Array=a[0]=) // インデックスが変化しないようにカンマは残すべき? * 連想配列に対応