Я пытаюсь понять грамматику xtext, которую я нашел (ниже). У меня есть два вопроса:xext грамматика с выбранными предикатами
- XFeatureCall имеет возвращаемый тип XExpression, но это отвергнуто {XFeatureCall}, так что я мог бы установить «возвращает XFeatureCall», а ?. Или это действительно необходимо сделать так?
- Строки 8 и 14 начинаются с «=>». Являются ли эти «выбранные предикаты» или что-то еще, что до сих пор не привлекло мое внимание? Я не мог найти этот вариант выбранных предикатов в документации xtext. Поэтому я хотел бы получить разъяснения в его применении.
XText грамматика:
StaticEquals:':=';
XFeatureCall returns XExpression:
// Same as Xbase...
{XFeatureCall}
(declaringType=[JvmDeclaredType|StaticQualifier])?
('<' typeArguments+=JvmArgumentTypeReference (',' typeArguments+=JvmArgumentTypeReference)* '>')?
(feature=[JvmIdentifiableElement|IdOrSuper]|'class')
(=>explicitOperationCall?='('
(
featureCallArguments+=XShortClosure
| featureCallArguments+=XExpression (',' featureCallArguments+=XExpression)*
)?
')')?
=>featureCallArguments+=XClosure?
// ... Except with this additional optional clause that allows static members to be set with := operator
({XAssignment.assignable = current} StaticEquals value = XAssignment)?;