我的工作在微软的新的M语法一个DSL,它需要允许十进制值。我已经定义了数字作为

token digits = "0".."9";
token spot = ".";
token decimal = digits+ | digits+ spot digits+ | spot digits+;

这似乎工作,但有没有更好的办法?它只是感觉就像我失去了一些东西。

有帮助吗?

解决方案

多挖后,我发现,您可以使用Language.Grammar.Decimal构建。如在

syntax Cost = Language.Grammar.Decimal

在Language.Base“命名空间”中也有一些有用的比特。既Language.Base和Language.Grammar内置于intellipad。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top