在CapnProto模式中,有任何方法可以转发声明结构,因此您可以创建这样的树结构:
struct ExecuteProgram {
code @0 :Text;
}
struct SequenceProgram {
programs @0 :List(Program)
}
struct IfProgram {
condition @1 :Program;
trueBody @2 :Program;
falseBody @3 :Program;
}
struct Program {
union {
execute @0 :ExecuteProgram;
sequence @1 :SequenceProgram;
if @2 :IfProgram;
}
}
如果我尝试编译它,编译器会提供非常有用的错误消息Parse error
。我认为这是抱怨,因为我在声明它之前使用Program
。
有什么方法吗?
答案 0 :(得分:0)
事实证明你不需要前方声明,我只是错过了一个分号。我怎么说Parse error
是一个可怕的错误信息?