使用撇号而不是下划线表示数字文字

时间:2015-01-17 14:45:26

标签: parsing literals

对于自定义语言解析器(带单位的数学方程式)我想匹配

1'000'000 

而不是

1_000_000 

对于数字文字,但我找不到使用此约定的单个用例。

这有特殊原因吗?

1 个答案:

答案 0 :(得分:1)

我也没有看过它在数字中使用过,而且我看过很多语言。

用于美国空军防御软件的JOVIAL language从1960年代后期到20世纪80年代后期(并且仍存在于大量遗留系统中)使用刻度标记作为标识符中的中断字符。 / p>

在更现代的语言中不使用这样的刻度标记的可能标准原因是它经常被用作单个字符文字的分隔符,例如,在C语言中的'a','z'。 (PHP和其他语言有字符串文字,不仅仅是字符文字,不同类型,呃,基于字符串主体周围的引号字符类型的功能)。

没有理由你不能这样做。但它违反了大多数用户“最不惊讶”的原则。如果你没有充分的理由去做,那你就不应该这样做,因为它只会让你的工具更难接受。

我坚持使用“__”作为数字中的中断字符。使用Ada的人肯定已经习惯了,那些使用带有“_”作为标识符中断的langauges的人不会感到非常惊讶。