将格式化为字符串的数字解析为字节/短/整数/长



我正在用ANTLR解析一个简单的正数:

NUMBER : ('0'..'9')+;

byte (8 bits)
short (16 bits)
int (32 bits)
long (64 bits)
BigInteger (x bits)

?也就是说,例如,如果数字适合一个short,我更喜欢分配一个short,而不是一个integer、一个long或一个BigInteger

这应该尽可能高效。出于这个原因,我犹豫是否首先尝试作为一个byte,然后作为一个short,......其中异常意味着应尝试下一个类型。

如果你的目标是Java,那么解析基元类型没有任何意义,因为目标语言可以有效地处理这些类型。 因此,如果您想在语言应用程序中捕获每个标记,我建议只定义基元类型。 如果您的目标是 Java 中的,则大整数可能应该作为引用类型(解析器规则)进行处理。 如果您有不同的目标语言,则它可能具有不同的上下文。

primitiveType
    :   'boolean'
    |   'char'
    |   'byte'
    |   'short'
    |   'int'
    |   'long'
    |   'float'
    |   'double'
    ;

相关内容

  • 没有找到相关文章

最新更新