0

在 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在声明之前使用了它。

有没有办法解决?

4

1 回答 1

0

事实证明你不需要前向声明,我只是少了一个分号。我在说什么是Parse error可怕的错误信息?

于 2018-05-29T14:36:16.657 回答