Skip to content

5.4. Numbers#


HexNumberExpression = (* literal: *) HEX_LITERAL
(* unit: *) NumberUnit?; (* Deprecated in 0.5.0 *)

DecimalNumberExpression = (* literal: *) DECIMAL_LITERAL
(* unit: *) NumberUnit?;

HEX_LITERAL = "0x" «HEX_CHARACTER»+ ("_" «HEX_CHARACTER»+)* (?!«IDENTIFIER_START»);

(* Deprecated in 0.5.0 *)
HEX_LITERAL = "0X" «HEX_CHARACTER»+ ("_" «HEX_CHARACTER»+)* (?!«IDENTIFIER_START»);

DECIMAL_LITERAL = "." «DECIMAL_DIGITS» «DECIMAL_EXPONENT»? (?!«IDENTIFIER_START»);

DECIMAL_LITERAL = «DECIMAL_DIGITS» (?!".") «DECIMAL_EXPONENT»? (?!«IDENTIFIER_START»);

(* Deprecated in 0.5.0 *)
DECIMAL_LITERAL = «DECIMAL_DIGITS» "." (?!«DECIMAL_DIGITS») «DECIMAL_EXPONENT»? (?!«IDENTIFIER_START»);

(* Deprecated in 0.5.0 *)
DECIMAL_LITERAL = «DECIMAL_DIGITS» "." «DECIMAL_DIGITS» «DECIMAL_EXPONENT»? (?!«IDENTIFIER_START»);

(* Introduced in 0.5.0 *)
DECIMAL_LITERAL = «DECIMAL_DIGITS» ("." «DECIMAL_DIGITS»)? «DECIMAL_EXPONENT»? (?!«IDENTIFIER_START»);

«DECIMAL_DIGITS» = "0""9"+ ("_" "0""9"+)*;

«DECIMAL_EXPONENT» = ("e" | "E") "-"? «DECIMAL_DIGITS»;

NumberUnit = (* variant: *) WEI_KEYWORD
| (* variant: *) GWEI_KEYWORD (* Introduced in 0.6.11 *)
| (* variant: *) SZABO_KEYWORD (* Deprecated in 0.7.0 *)
| (* variant: *) FINNEY_KEYWORD (* Deprecated in 0.7.0 *)
| (* variant: *) ETHER_KEYWORD
| (* variant: *) SECONDS_KEYWORD
| (* variant: *) MINUTES_KEYWORD
| (* variant: *) HOURS_KEYWORD
| (* variant: *) DAYS_KEYWORD
| (* variant: *) WEEKS_KEYWORD
| (* variant: *) YEARS_KEYWORD; (* Deprecated in 0.5.0 *)