# Tests identification of number forms ---input--- # floats 1e1 1e+1 1e-1 1.1e1 1.1e+1 1.1e-1 .1e1 .1_1e1 1_1.1e1 1.1_1e1 1.1_11e1 1.1E1 1.1E+1 1.1E-1 .1E1 .1_1E1 1_1.1E1 1.1_1E1 1.1_11E1 1.1f1 1.1f+1 1.1f-1 .1f1 .1_1f1 1_1.1f1 1.1_1f1 1.1_11f1 1E1 1E+1 1E-1 1f1 1f+1 1f-1 .1 1. 1.1 1.1_1 1.1_11 .1_1 .1_11 1_1.1_1 # hex floats 0x1p1 0xa_bp10 0x01_ap11 0x01_abp1 0x1.1p1 0xA.Bp10 0x0.1_Ap9 0x0_1.Ap1 0x0_1.A_Bp9 # integers 1 01 10_1 10_11 # non-decimal 0xf 0xf_0 0xfff_000 0o7 0o7_0 0o777_000 0b1 0b1_0 0b111_000 # invalid in Julia - out of range values 0xg 0o8 0b2 0x1pA # invalid in Julia - no trailing underscores 1_ 1.1_ 0xf_ 0o7_ 0b1_ 0xF_p1 # parsed as juxtaposed numeral + variable in Julia (no underscores in exponents) 1e1_1 1E1_1 1f1_1 0xfp1_1 # not floats -- range-like expression parts 1..1 ..1 1.. ---tokens--- '# floats' Comment '\n' Text.Whitespace ' ' Text.Whitespace '1e1' Literal.Number.Float ' ' Text.Whitespace '1e+1' Literal.Number.Float ' ' Text.Whitespace '1e-1' Literal.Number.Float '\n' Text.Whitespace '1.1e1' Literal.Number.Float ' ' Text.Whitespace '1.1e+1' Literal.Number.Float ' ' Text.Whitespace '1.1e-1' Literal.Number.Float ' ' Text.Whitespace '.1e1' Literal.Number.Float ' ' Text.Whitespace '.1_1e1' Literal.Number.Float ' ' Text.Whitespace '1_1.1e1' Literal.Number.Float ' ' Text.Whitespace '1.1_1e1' Literal.Number.Float ' ' Text.Whitespace '1.1_11e1' Literal.Number.Float '\n' Text.Whitespace '1.1E1' Literal.Number.Float ' ' Text.Whitespace '1.1E+1' Literal.Number.Float ' ' Text.Whitespace '1.1E-1' Literal.Number.Float ' ' Text.Whitespace '.1E1' Literal.Number.Float ' ' Text.Whitespace '.1_1E1' Literal.Number.Float ' ' Text.Whitespace '1_1.1E1' Literal.Number.Float ' ' Text.Whitespace '1.1_1E1' Literal.Number.Float ' ' Text.Whitespace '1.1_11E1' Literal.Number.Float '\n' Text.Whitespace '1.1f1' Literal.Number.Float ' ' Text.Whitespace '1.1f+1' Literal.Number.Float ' ' Text.Whitespace '1.1f-1' Literal.Number.Float ' ' Text.Whitespace '.1f1' Literal.Number.Float ' ' Text.Whitespace '.1_1f1' Literal.Number.Float ' ' Text.Whitespace '1_1.1f1' Literal.Number.Float ' ' Text.Whitespace '1.1_1f1' Literal.Number.Float ' ' Text.Whitespace '1.1_11f1' Literal.Number.Float '\n' Text.Whitespace '1E1' Literal.Number.Float ' ' Text.Whitespace '1E+1' Literal.Number.Float ' ' Text.Whitespace '1E-1' Literal.Number.Float '\n' Text.Whitespace '1f1' Literal.Number.Float ' ' Text.Whitespace '1f+1' Literal.Number.Float ' ' Text.Whitespace '1f-1' Literal.Number.Float '\n' Text.Whitespace '.1' Literal.Number.Float ' ' Text.Whitespace '1.' Literal.Number.Float ' ' Text.Whitespace '1.1' Literal.Number.Float ' ' Text.Whitespace '1.1_1' Literal.Number.Float ' ' Text.Whitespace '1.1_11' Literal.Number.Float ' ' Text.Whitespace '.1_1' Literal.Number.Float ' ' Text.Whitespace '.1_11' Literal.Number.Float ' ' Text.Whitespace '1_1.1_1' Literal.Number.Float '\n' Text.Whitespace '# hex floats' Comment '\n' Text.Whitespace '0x1p1' Literal.Number.Float ' ' Text.Whitespace '0xa_bp10' Literal.Number.Float ' ' Text.Whitespace '0x01_ap11' Literal.Number.Float ' ' Text.Whitespace '0x01_abp1' Literal.Number.Float '\n' Text.Whitespace '0x1.1p1' Literal.Number.Float ' ' Text.Whitespace '0xA.Bp10' Literal.Number.Float ' ' Text.Whitespace '0x0.1_Ap9' Literal.Number.Float ' ' Text.Whitespace '0x0_1.Ap1' Literal.Number.Float ' ' Text.Whitespace '0x0_1.A_Bp9' Literal.Number.Float '\n' Text.Whitespace '\n' Text.Whitespace '# integers' Comment '\n' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '01' Literal.Number.Integer ' ' Text.Whitespace '10_1' Literal.Number.Integer ' ' Text.Whitespace '10_11' Literal.Number.Integer '\n' Text.Whitespace '\n' Text.Whitespace '# non-decimal' Comment '\n' Text.Whitespace '0xf' Literal.Number.Hex ' ' Text.Whitespace '0xf_0' Literal.Number.Hex ' ' Text.Whitespace '0xfff_000' Literal.Number.Hex '\n' Text.Whitespace '0o7' Literal.Number.Oct ' ' Text.Whitespace '0o7_0' Literal.Number.Oct ' ' Text.Whitespace '0o777_000' Literal.Number.Oct '\n' Text.Whitespace '0b1' Literal.Number.Bin ' ' Text.Whitespace '0b1_0' Literal.Number.Bin ' ' Text.Whitespace '0b111_000' Literal.Number.Bin '\n' Text.Whitespace '\n' Text.Whitespace '# invalid in Julia - out of range values' Comment '\n' Text.Whitespace '0' Literal.Number.Integer 'xg' Name ' ' Text.Whitespace '0' Literal.Number.Integer 'o8' Name ' ' Text.Whitespace '0' Literal.Number.Integer 'b2' Name ' ' Text.Whitespace '0x1' Literal.Number.Hex 'pA' Name '\n' Text.Whitespace '# invalid in Julia - no trailing underscores' Comment '\n' Text.Whitespace '1' Literal.Number.Integer '_' Name ' ' Text.Whitespace '1.1' Literal.Number.Float '_' Name ' ' Text.Whitespace '0xf' Literal.Number.Hex '_' Name ' ' Text.Whitespace '0o7' Literal.Number.Oct '_' Name ' ' Text.Whitespace '0b1' Literal.Number.Bin '_' Name ' ' Text.Whitespace '0xF' Literal.Number.Hex '_p1' Name '\n' Text.Whitespace '# parsed as juxtaposed numeral + variable in Julia (no underscores in exponents)' Comment '\n' Text.Whitespace '1e1' Literal.Number.Float '_1' Name ' ' Text.Whitespace '1E1' Literal.Number.Float '_1' Name ' ' Text.Whitespace '1f1' Literal.Number.Float '_1' Name ' ' Text.Whitespace '0xfp1' Literal.Number.Float '_1' Name '\n' Text.Whitespace '\n' Text.Whitespace '# not floats -- range-like expression parts' Comment '\n' Text.Whitespace '1' Literal.Number.Integer '..' Operator '1' Literal.Number.Integer ' ' Text.Whitespace '..' Operator '1' Literal.Number.Integer ' ' Text.Whitespace '1' Literal.Number.Integer '..' Operator '\n' Text.Whitespace