プログラミングの話ですが・・・
戦略のルール記述で・・・
現在のEsgrsdnlだと・・・・・
例えばAというパラメタ(p)があって、それが5より小さい(d own)というのを
pAd(5)
と記述します
これをコンパイルすると
_P_,-80,5,ExA,-(hei25[0]-owa[0])/owa[0]*100,dmypAd
という、csv形式のアセンブリ語みたいのものになるんですが・・・
このアセンブリ語みたいなものを直接エディタで書いてもいいんですが、それより
pAd(5)
と書ける方がわかりやすいです
まあ、これはm4のマクロなんですが・・・・
でもできれば、
pA < 5
と書ければ、より判りやすい
しかし・・・・
m4も万能ではないので、マクロ名に英数字しか使えないし、引数は()で括らないといけない・・・
そこで sed の出番
正規表現は一見ややこしくてムズイですが、頭の体操だと思って駆使して・・・
s/\([ps]\)\([A-Z]\+[a-zA-Z0-9]*\)[\t ]*:<[\t ]*\(.\+\)/\1\2d(\3)/g
というスクリプトで処理すると
pA :< 5
が、
pAd(5)
に置換されます
他にも、いろいろsed駆使して、結構ちゃんとした言語に近づきつつあります
まあ、単純に置換してるだけのナンチャッテ構文解析ですが・・・
何となくそれ(外部DSL設計)っぽい感じになってきました