Форвардные декларации в CapnProto - PullRequest
0 голосов
/ 25 мая 2018

В схеме 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 Ответ

0 голосов
/ 29 мая 2018

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

...