我有一个简单的DSL,灵感来自mini-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定义的超类和子类之间的类型一致性?!
我花了几天的时间寻找示例,但我无法找到一个明确的示例。
提前感谢您的任何提示,帮助!
干杯,
发布于 2018-07-06 19:37:20
https://stackoverflow.com/questions/51195427
复制相似问题