我正在使用类似模板的编辑器创建 DSL,就像Alice中的规则系统一样。用户将能够从列表中选择关系以及应用关系的对象。这两个列表应该根据可接受的类型进行过滤——例如,如果关系“大于”,那么可用对象必须是实现“大于”的类型。
类似地,如果选择的对象与大于不可比较,则该关系不应出现在潜在关系列表中。我认为这个问题的核心是类型检查器,但我不确定将这种类型的逻辑合并到我的应用程序中的最佳方式。有人知道现有的 DSL 类型检查库吗?
我对开源和跨平台技术特别感兴趣。Java 可能是我们最终会使用的语言,但这不是固定的。