09/05/20 02:21:42 EnCka/f00
>>723
「グローバル変数にCSV形式で格納した値を$TSTして、"$SET(name\d=value)" を$ADDLST→$LSTでeval()を模倣」という処理でしょうか。
変数の値を解放できない($RMLSTがない)、のが厳しい…。
「CSVを利用して配列」というアイデアは前からあったので、それをフィルタにしてみました。
[Patterns]
Name = "Array ver.0.2b"
Active = FALSE
Limit = 256
Match = "test"
"$SET(ArrayList=a=val1,val2,val3,val4\nb=1,3,5,7,11,13)"
"$SET(CallArray=a[2])"
""
"$TST(CallArray=([a-z_][0-9a-z_]+)\9$SET(VarName=\9)\[([0-9]+)\9$SET(Key=\9)\])"
"$SET(CallArray=)$SET(Num=0)"
"$TST(ArrayList=([^\r\n]+[\r\n]+{1,*})++$TST(VarName)\=((^$TST(Num=$TST(Key)))[^,]+,$LST(increment))+([^,]+)\9*)"
"$SET(Value=\9)"
Replace = "$GET(VarName)[$GET(Key)]="$GET(Value)""
$SET(CallArray=a[2]) で配列を呼び出し。
例えば、"a[2]" を "b[0]" に変えると2行目で定義した配列bを呼び出します。
「[,\r\n] を値に持てない」という不具合を解消すれば、実用出来そうです。エスケープ処理はCSV準拠でいいかな…?