Форвардные декларации в CapnProto

В схеме 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 прежде чем это объявлено.

Есть ли способ обойти это?

1 ответ

Решение

Оказывается, вам не нужны предварительные декларации, я просто пропустил точку с запятой. О чем я говорил Parse error быть ужасным сообщением об ошибке?

Другие вопросы по тегам