Promela语法错误:错误:结构不完整ref' table'锯'运营商:='

时间:2015-02-01 20:05:16

标签: spin promela

我有以下typedef。 Pub类型保留两个int,pub_table保留一组publishers和一个int。

typedef pub{
    int nodeid;
    int tid
};

typedef pub_table{
    pub table[TABLE_SIZE];
    int last
};

然后在第pt.table[pt.last] = p;行,我收到错误

  

"错误:结构参考不完整'表'锯'操作员:='"

if
:: node_type == publisher -> 
        pub p;
        p.nodeid = node_id;
        p.tid = topic_id;
        pt.last = pt.last + 1; 
        pt.table[pt.last] = p;
fi

不幸的是我看不出那条线路上的错误了什么?

1 个答案:

答案 0 :(得分:2)

错误是因为您无法一次性分配完整的typedef变量。我尝试通过定义局部变量pub p;来做到这一点,然后在初始化p中的所有字段后,我尝试一次性分配pt.table[pt.last] = p。我设法解决了这个问题:

pt.table[pt.last].nodeid = node_id;
pt.table[pt.last].tid = topic_id;

REF

  

当前的Spin实现对以下内容施加了以下限制   使用typedef对象。无法分配值   一个完整的typedef对象直接指向另一个这样的对象   输入一个作业。