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

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

来訪ありがとうございます
シストレツールを自作してました
自分用の記事が多いのであまり役には立たないブログでした

f:id:sucar:20150414193802p:plain

自作システム詳細目次

10 通常パラメタのヘッダ #include "mt_prm.h" 生成部

追記2018/3/9) 標準フィルター設定を固定し/^X/を削除(別で書き換える方式)

追記2018/2/19) オペコード DEFにUNDEFオプション追加

追記2018/2/18) オペコード  _P_対応

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

通常パラメタのヘッダ #include "mt_prm.h" 生成部は

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

    
#!/bin/awk
BEGIN { 
	FS=","
	printf("uint8_t* rule=\"%s\";\n",ARGV[1])
	#
	print "int Xp=50;"
	print "double Xper1=88.0;"
	print "double Xpf1=0.75;"
	print "double Xper2=87.0;"
	print "double Xpf2=1.5;"
	print "double Xper3=87.0;"
	print "double Xpf3=2.3;"
	print "double Xper4=80.0;"
	print "double Xpf4=2.8;"
	print "double Xper5=78.0;"
	print "double Xpf5=3.0;"
	#
	ex_cnt=0
 }
$1=="NK225" {
	print "#define SHIJOU \"./code/codeNK225.cfg\""
	}
$1=="INDEX0" {
	print "#define SHIJOU \"./code/INDEX0.txt\""
	}
$1=="INDEX1" {
	print "#define SHIJOU \"./code/INDEX1.txt\""
	}
$1=="T1" {
	print "#define SHIJOU \"./code/codeT1.cfg\""
	}
$1=="NotT1" {
	print "#define SHIJOU \"./code/codeNotT1.cfg\""
}
$1=="T1NotNK225" {
	print "#define SHIJOU \"./code/codeT1NotNK225.cfg\""
}


$1=="FILTER" {
	print "#define FILTER"
	}

$1=="DAYSON" {
	print "#define DAYSON"
	}
$1=="Yson" {
	print "#define _YSON_"
	}
$1=="Zday" {
	print "#define _ZDAY_"
	}
/^Y/ {
	printf("double %s=%f;\n",$1,$2)
	}
/^Z/ {
	printf("int %s=%d;\n",$1,$2)
	}

/^[abcdefghijkz]/{
		if ($2>$3) {
			printf("double P%s=%f,P%s%s=%f;\n",$1,$2,$1,$1,$3)
		}
		else {
			printf("double P%s=%f,P%s%s=%f;\n",$1,$3,$1,$1,$2)
		}
	}

	
#拡張パラメタ対応
#入れ替え 234->342
$1=="_P" {
		if (ex_cnt==0) printf("#define Ex_para\n")
		ex_cnt++
		if ($2>$3) {
			printf("double P%su=%f,P%sd=%f;\n",$4,$2,$4,$3)
		}
		else {
			printf("double P%su=%f,P%sd=%f;\n",$4,$3,$4,$2)
		}
	}	
#パラメタそのまま
$1=="P" {
		if ($2>$3) {
			printf("double P%su=%f,P%sd=%f;\n",$4,$2,$4,$3)
		}
		else {
			printf("double P%su=%f,P%sd=%f;\n",$4,$3,$4,$2)
		}
	}
#######add 2018/2/18
$1=="_P_" {
		if (ex_cnt==0) printf("#define Ex_para\n")
		ex_cnt++
	}
#########
	
$1=="MAX" {
	printf("#define MAX\n")
	}
$1=="MIM" {
	printf("#define MIN\n")
	}
$1=="BUG" {
	printf("#define BUG\n")
	}
	
$1=="DEF" {
	if ($4=="UNDEF") {printf("#undef %s\n",$2)}
	printf("#define %s %s\n",$2,$3)
}
END {}