2011-06-24 140 views
0

我想寫定義實例與環宏(不計算),例如,如果它是一個計算的宏觀那將是:的Specmanè宏循環

define <def_struct'statement> "def_struct <str_name'name> <number'num> to <other'name>" as computed { 

     result.add(appendf("extend %s { ", <other'name>)); 
       for i from 0 to <number'num> do { 
        result.add(appendf("%s_%d : %s;", <str_name'name> ,i,<str_name'name>)); 
       }; 
      result.add("};"); } 

是有可能這樣做與不是宏計算宏的宏一樣?

我可能有一些錯誤的語法,但看的想法..

回答

0

在你computed as例子,你創建了一堆相同的類的實例。爲什麼不實例化一個結構列表?

myStructs : list of MyStruct_s; 

如果需要,您可以根據喜歡指標約束列表中的每個項目:

keep for each (s) using index (i) in myStructs { 
    i==0 => s.fooBar == BAZ; 
    s.name == appendf("this is struct %d",i); 
}; 
+0

歷史原因,我必須保持下去,我不能打破接口 – shd

+0

真丟臉。我挖。我只知道如何做'計算'的方式。 –