できないことはなかったけどマクロまみれだしとてつもなかった。型を放棄して全部文字列とかにすればかなり楽になるのは確か。
できないことはなかったけどマクロまみれだしとてつもなかった。型を放棄して全部文字列とかにすればかなり楽になるのは確か。
#module Person ;int #enum age=0 ;str #enum name=0 ;double #enum high=0 #define ctype new(%1,%2,%3,%4) \ i%1=0:s%1="":d%1=0.0:\ __new@Person %2,%3,%4,%1_i,%1_s,%1_d #deffunc local __new str _name,int _age,double _high, \ array ti,array ts,array td ts.name=_name ti.age=_age td.high=_high return #defcfunc local psName array ts return ts.name #define global ctype psName(%1) psName@Person(%1_s) #defcfunc local psAge array ti return ti.age #define global ctype psAge(%1) psAge@Person(%1_i) #defcfunc local psHigh array ts return ts.high #define global ctype psHigh(%1) psHigh@Person(%1_d) #global new@Person(bob,"bob",20,170.5) new@Person(kate,"kate",17,155.2) mes strf("name:%s age:%d high:%.1fcm",psName(bob),psAge(bob),psHigh(bob)) mes strf("name:%s age:%d high:%.1fcm",psName(kate),psAge(kate),psHigh(kate))