Расширение системы типов Xbase

У меня есть этот простой DSL, вдохновленный примером мини-Java, но основанный на XBase. Смотрите ниже, чтобы быстро взглянуть на мою грамматику.

Package returns Package:
{Package}
'package'
name = QualifiedName
(importSection = XImportSection)?
(classifiers += Classifier)*
;

Classifier returns Classifier : 
Class 
| DataType 
| Enum
;

Class returns Class:
{Class}
((abstract?='abstract'? 'class') | interface?= 'interface') name = ID
('<' typeParameters+=JvmTypeParameter (',' 
typeParameters+=JvmTypeParameter)* '>')?
('extends' superType=JvmParameterizedTypeReference)?
'{'
   (members+=Member)*
'}'
 ; ...

Мой вопрос заключается в следующем:

Как я могу расширить систему типов XBase, чтобы распознавать соответствие типов между суперклассом и подклассом, определенным с помощью этого простого DSL?!

Я потратил пару дней на поиски примеров, но я не мог взять один четкий пример.

Заранее спасибо за любую подсказку, помогите!

Ура,

1 ответ

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