У меня есть этот простой 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?!
Я потратил пару дней на поиски примеров, но я не мог взять в руки один четкий пример.
Заранее спасибо за любую подсказку, помогите!
Приветствия