У меня есть этот конкретный синтаксис:Как я могу определить конкретное значение синтаксиса «X?»?
syntax SomeMore = [...] SyncBlock? sync;
syntax SyncBlock = "sync" "{" SyncStatement* stats "}";
syntax SyncStatement = [...];
[SyncBlock]"sync { <syncStrings> }"
, кажется, работает, но когда я пытаюсь использовать его в качестве SyncBlock?
и назначить его:
SyncBlock? sync = [SyncBlock?]"sync { <syncStrings> }"
он не работает: inline parsing not supported on SyncBlock?
, что самый простой способ создать значение этого X?
-типа?
Можно ли каким-либо образом преобразовать SyncBlock
в SyncBlock?
?
Нечто подобное также не работает: syncBlock = (SyncBlock?)`sync { <SyncStatement* syncs>}`;
P.S. SyncBlock? syncBlock = …
Результаты Ambiguous code (internal error), SyncBlock? syncBlock = …
. Возможно, из-за двусмысленности оператора двусмысленность?
Такая же проблема возникает для элементов синтаксиса 'X *'. – Tim