scala dsl是否可以编码为发出自己的专门编译错误?

scala dsl是否可以编码为发出自己的专门编译错误?,scala,dsl,Scala,Dsl,我已经使用了一些Scala DSL,并且想知道开发一个是否也能满足DSL特定的编译错误。其思想是,特定于领域的语言还将具有特定于领域的编译错误消息,以帮助领域专家正确处理问题。这在Scala中可能吗?可能有用的一点是。您可以在它的帮助下自定义未解析隐式上的编译器错误 正如@Dylan所指出的,如果您使用宏c.abort,c.info和c.error对Scala进行黑客攻击,则编译器会产生一些自定义错误/额外信息 在这种情况下也可能有帮助。它允许限制代码某些部分的使用,并在有人试图访问它时生成自定

我已经使用了一些Scala DSL,并且想知道开发一个是否也能满足DSL特定的编译错误。其思想是,特定于领域的语言还将具有特定于领域的编译错误消息,以帮助领域专家正确处理问题。这在Scala中可能吗?

可能有用的一点是。您可以在它的帮助下自定义未解析隐式上的编译器错误

正如@Dylan所指出的,如果您使用宏
c.abort
c.info
c.error
对Scala进行黑客攻击,则编译器会产生一些自定义错误/额外信息


在这种情况下也可能有帮助。它允许限制代码某些部分的使用,并在有人试图访问它时生成自定义错误消息。

我相信你可以通过警告来做到这一点:这不是为胆小的人准备的。据我所知,我也在考虑为不受宏控制的东西发布专门的消息。诸如类型不匹配、编译错误、运算符使用不当。。。这是否需要对编译器本身进行分叉,或者编译器是否有任何插装api或类似的东西?是否有任何编译器插装/api可以进一步实现这一点?我所知没有人。