%%% %% Section 3.10.1: Literals %% %% @author Martin Bravenboer <martin.bravenboer@gmail.com> %%% module languages/java-15/lexical/literals/IntegerLiterals exports sorts IntLiteral DeciLiteral HexaLiteral OctaLiteral DeciNumeral HexaNumeral OctaNumeral context-free syntax DeciLiteral -> IntLiteral {cons("Deci")} HexaLiteral -> IntLiteral {cons("Hexa")} OctaLiteral -> IntLiteral {cons("Octa")} lexical syntax DeciNumeral [lL]? -> DeciLiteral HexaNumeral [lL]? -> HexaLiteral OctaNumeral [lL]? -> OctaLiteral "0" -> DeciNumeral [1-9][0-9]* -> DeciNumeral [0][xX] [0-9a-fA-F]+ -> HexaNumeral [0] [0-7]+ -> OctaNumeral lexical restrictions DeciNumeral -/- [0-9\.fFdD] HexaNumeral -/- [0-9a-fA-F] OctaNumeral -/- [0-7] DeciLiteral -/- [lL] HexaLiteral -/- [lL] OctaLiteral -/- [lL]