我正在用微软的新M语法处理DSL,它需要允许十进制值。我把十进制定义为
token digits = "0".."9"; token spot = "."; token decimal = digits+ | digits+ spot digits+ | spot digits+;
这似乎可行,但有更好的方法吗?感觉好像我错过了什么。
经过大量的挖掘,我发现你可以使用内置的language.grammar.decimal。如在
syntax Cost = Language.Grammar.Decimal
基“namespace”也有一些有用的位。语言.base和语言.grammar都内置于intellipad中。