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("};"); }

възможно ли е да се направи същото с макрос, който не е изчислен макрос??

вероятно нещо не е наред със синтаксиса, но вижте идеята..


person shd    schedule 24.06.2011    source източник


Отговори (1)


Във вашия 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);
};
person Ross Rogers    schedule 24.06.2011
comment
причина за историята, трябва да го запазя по този начин, не мога да наруша интерфейса - person shd; 24.06.2011
comment
За жалост. Копая. Знам само как да го направя по as computed начина. - person Ross Rogers; 25.06.2011