53歳限界プログラマの憂鬱

SU/CAR-ST-APplication-cellsから派生したプログラマのブログ

本家はこちら↓
f:id:sucar:20151115183011p:plain

SU/CAR-ST-APplication-cellsの安倍野ミックスと申します
来訪ありがとうございます
シストレツールを自作してます
自分用の記事が多いのであまり役には立たないブログでしたが
2018/10月以降、多少は役立つブログになるかもしれません
と思いましたが、しばらくは自分用記事が多いかも・・・

f:id:sucar:20150414193802p:plain

11 ルールの記述 #include "rule.mt" 生成部(一緒に拡張パラメタのヘッダ#include "ex_para.h" 拡張パラメタの記述#include "ex_para.mt"も生成)

追記2018/3/11)オペコード  mm追加 ml変更

追記2018/3/9) フィルター設定/^X/を拡張パラメタのヘッダ#include "ex_para.h"へ

追記2018/2/18)オペコード _P_ を追加

追記2018/2/17)オペコード m> m!=  IntN dblDを追加 

追記2018/2/12)条件内にorが記述できるように機能追加

ストラテジーを記述しているcsvファイルをC言語に取り込める形式に変換する部分にはawkを使っている

ルールの記述 #include "rule.mt" 生成部は(一緒に拡張パラメタのヘッダ#include "ex_para.h" 拡張パラメタの記述#include "ex_para.mt"も生成してる)

awk/mt_c_2.awk ※suQ2/ではないので注意

 
#!/bin/awk
BEGIN { 
	FS=","
 }
$1=="m" {
	printf("m==%s  &&\n",$2)
	}
$1=="m<" {
	printf("m<(%s)  &&\n",$2)
	}
########add 2018/2/17 $1=="m>" { printf("m>(%s) &&\n",$2) } $1=="m!=" { printf("m!=(%s) &&\n",$2) } ########add 2018/3/11 $1=="mm" { printf("mm_%s %s &&\n",$2,$3) } ####### $1=="m5" { printf("m5m(mm_%s)%s &&\n",$2,$3) } $1=="m25" { printf("m25m(mm_%s)%s &&\n",$2,$3) } $1=="ml" { printf("ml_%s %s &&\n",$2,$3) } $1=="ml<" { printf("ml<(%s) &&\n",$2) } $1=="ml3" { printf("m5m(ml_%s)%s &&\n",$2,$3) } $1=="ml15" { printf("m25m(ml_%s)%s &&\n",$2,$3) } #######add 2018/2/17 ## int 変数 宣言 $1=="IntN" { printf("N%s=%s;\n",$3,$2)>"./main/mt/ex_para.mt" printf("int N%s;\n",$3) > "./main/mt/ex_para.h" } ## double 変数 宣言 $1=="DblD" { gsub(/\[/,"[i][j+",$2) gsub(/\{/,"[j+",$2) gsub(/\}/,"]",$2) printf("D%s=%s;\n",$3,$2)>"./main/mt/ex_para.mt" printf("double D%s;\n",$3) > "./main/mt/ex_para.h" } #パラメタそのまま->拡張パラメタ #入れ替え 234->342 $1=="_P" { printf("P%sd<%s && %s<P%su &&\n",$4,$4,$4,$4) gsub(/\[/,"[i][j+",$5) gsub(/\{/,"[j+",$5) gsub(/\}/,"]",$5) printf("%s=%s;\n",$4, $5)>"./main/mt/ex_para.mt" printf("double %s;\n",$4) > "./main/mt/ex_para.h" } $1=="P" { printf("P%sd<%s && %s<P%su &&\n",$4,$4,$4,$4) } #######add 2018/2/18 $1=="_P_" { if ($2!="dmy") {printf("%s<%s && %s<%s &&\n",$2,$4,$4,$3)} gsub(/\[/,"[i][j+",$5) gsub(/\{/,"[j+",$5) gsub(/\}/,"]",$5) printf("%s=%s;\n",$4, $5)>"./main/mt/ex_para.mt" printf("double %s;\n",$4) > "./main/mt/ex_para.h" } ########add2018/3/9 /^X/ { printf("%s=%f;\n",$1,$2) >"./main/mt/ex_para.h" } ######## $1=="a" { printf("Paa<hei25s && hei25s<Pa &&\n") } $1=="b" { printf("Pbb<hei5s && hei5s<Pb &&\n") } $1=="c" { printf("Pcc<dxave3hei25s && dxave3hei25s<Pc &&\n") } $1=="d" { printf("Pdd<dai && dai<Pd &&\n") } $1=="e" { printf("Pee<dxhei5s && dxhei5s<Pe &&\n") } $1=="f" { printf("Pff<hei5_25s && hei5_25s<Pf &&\n") } $1=="g" { printf("Pgg<dxhei3s && dxhei3s<Pg &&\n") } $1=="h" { printf("Phh<hei15s && hei15s<Ph &&\n") } ############# $1=="i" { printf("Pii<hei5s2 && hei5s2<Pi &&\n") } $1=="j" { printf("Pjj<hei25s2 && hei25s2<Pj &&\n") } $1=="k" { printf("Pkk<hei5_25s2 && hei5_25s2<Pk &&\n") } ############## $1=="r" { printf("rsks%sd%s &&\n",$2,$3) } $1=="z" { printf("Pzz<zrk && zrk<Pz &&\n") } ############ #そのままprintf 2345全部 $1=="_C" { printf("%s%s%s%s &&\n",$2,$3,$4,$5) } ########add 2018/2/12 # &&なし $1=="_C_" { printf("%s%s%s%s\n",$2,$3,$4,$5) } #orBOX $1=="(" { printf("((\n") } $1=="_OR" { printf("1) || (\n") } $1==")" { printf("1)) &&\n") } END {}

とりあえず追加したい機能はよく使う小文字パラメタを簡単に過去に遡れるようにすること

例えば、aパラメタに対し

a_5 とか 5_aとか記述したら、5日前のaパラメタになるとか・・・

mパラメタだけ特殊なので厄介だが・・・・