Files
mercury/tests/hard_coded/parse_number_from_string.exp2
Julien Fischer a56c4f5708 Merge integer tokens in lexer.
library/lexer.m:
     Merge the 'integer' and 'big_integer' tokens and extend them to include
     signedness and size information.  This conforms to recent changes to
     the rest of the system and is another step towards supporting additional
     types of integer literal.

library/parser.m:
mdbcomp/trace_counts.m:
     Conform to the above change.

tests/hard_coded/impl_def_lex.exp:
tests/hard_coded/impl_def_lex_string.exp:
tests/hard_coded/lexer_bigint.exp:
tests/hard_coded/lexer_zero.exp*:
tests/hard_coded/parse_number_from_string.exp*:
     Update these expected outputs.
2017-04-26 10:00:45 +10:00

114 lines
7.9 KiB
Plaintext

Valid decimal literals:
read_term("0.") = functor(integer(base_10, i(0, []), signed, size_word), [], context("", 1))
read_term("-0.") = functor(integer(base_10, i(0, []), signed, size_word), [], context("", 1))
read_term("00.") = functor(integer(base_10, i(0, []), signed, size_word), [], context("", 1))
read_term("0_0.") = functor(integer(base_10, i(0, []), signed, size_word), [], context("", 1))
read_term("10.") = functor(integer(base_10, i(1, [10]), signed, size_word), [], context("", 1))
read_term("-10.") = functor(integer(base_10, i(-1, [-10]), signed, size_word), [], context("", 1))
read_term("1_0.") = functor(integer(base_10, i(1, [10]), signed, size_word), [], context("", 1))
read_term("-1_0.") = functor(integer(base_10, i(-1, [-10]), signed, size_word), [], context("", 1))
read_term("01.") = functor(integer(base_10, i(1, [1]), signed, size_word), [], context("", 1))
read_term("0_1.") = functor(integer(base_10, i(1, [1]), signed, size_word), [], context("", 1))
read_term("1_000_000_000_000_000_000_000.") = functor(integer(base_10, i(5, [13877, 12907, 7261, 14976, 0]), signed, size_word), [], context("", 1))
read_term("-1_000_000_000_000_000_000_000.") = functor(integer(base_10, i(-5, [-13877, -12907, -7261, -14976, 0]), signed, size_word), [], context("", 1))
Invalid decimal literals:
read_term("123_.") = Syntax error: unterminated decimal literal
read_term("-123_.") = Syntax error: unterminated decimal literal
read_term("-_123") = Syntax error: operator or `.' expected
Valid binary literals:
read_term("0b0.") = functor(integer(base_2, i(0, []), signed, size_word), [], context("", 1))
read_term("-0b0.") = functor(integer(base_2, i(0, []), signed, size_word), [], context("", 1))
read_term("0b_1.") = functor(integer(base_2, i(1, [1]), signed, size_word), [], context("", 1))
read_term("-0b_1.") = functor(integer(base_2, i(-1, [-1]), signed, size_word), [], context("", 1))
read_term("0b_1000_100.") = functor(integer(base_2, i(1, [68]), signed, size_word), [], context("", 1))
read_term("-0b_1000_100.") = functor(integer(base_2, i(-1, [-68]), signed, size_word), [], context("", 1))
Invalid binary literals:
read_term("0b.") = Syntax error: unterminated binary literal
read_term("-0b.") = Syntax error: unterminated binary literal
read_term("0b_.") = Syntax error: unterminated binary literal
read_term("-0b_.") = Syntax error: unterminated binary literal
read_term("0b11_.") = Syntax error: unterminated binary literal
read_term("-0b11_.") = Syntax error: unterminated binary literal
Valid octal literals:
read_term("0o77.") = functor(integer(base_8, i(1, [63]), signed, size_word), [], context("", 1))
read_term("-0o77.") = functor(integer(base_8, i(-1, [-63]), signed, size_word), [], context("", 1))
read_term("0o_77.") = functor(integer(base_8, i(1, [63]), signed, size_word), [], context("", 1))
read_term("-0o_77.") = functor(integer(base_8, i(-1, [-63]), signed, size_word), [], context("", 1))
read_term("0o_7_7.") = functor(integer(base_8, i(1, [63]), signed, size_word), [], context("", 1))
read_term("-0o_7_7.") = functor(integer(base_8, i(-1, [-63]), signed, size_word), [], context("", 1))
read_term("0o_7__7___7.") = functor(integer(base_8, i(1, [511]), signed, size_word), [], context("", 1))
read_term("-0o_7__7___7.") = functor(integer(base_8, i(-1, [-511]), signed, size_word), [], context("", 1))
Invalid octal literals:
read_term("0o.") = Syntax error: unterminated octal literal
read_term("-0o") = Syntax error: unterminated octal literal
read_term("0o_.") = Syntax error: unterminated octal literal
read_term("-0o_.") = Syntax error: unterminated octal literal
read_term("0o77_.") = Syntax error: unterminated octal literal
read_term("-0o77_.") = Syntax error: unterminated octal literal
Valid hexadecimal literals:
read_term("0xff.") = functor(integer(base_16, i(1, [255]), signed, size_word), [], context("", 1))
read_term("-0xff.") = functor(integer(base_16, i(-1, [-255]), signed, size_word), [], context("", 1))
read_term("0x_ff.") = functor(integer(base_16, i(1, [255]), signed, size_word), [], context("", 1))
read_term("-0x_ff.") = functor(integer(base_16, i(-1, [-255]), signed, size_word), [], context("", 1))
read_term("0xf_f.") = functor(integer(base_16, i(1, [255]), signed, size_word), [], context("", 1))
read_term("-0xf_f.") = functor(integer(base_16, i(-1, [-255]), signed, size_word), [], context("", 1))
read_term("0x_f_f__f.") = functor(integer(base_16, i(1, [4095]), signed, size_word), [], context("", 1))
read_term("-0x_f_f__f.") = functor(integer(base_16, i(-1, [-4095]), signed, size_word), [], context("", 1))
read_term("0xfffffffffffffffffffffffff.") = functor(integer(base_16, i(8, [3, 16383, 16383, 16383, 16383, 16383, 16383, 16383]), signed, size_word), [], context("", 1))
read_term("-0xfffffffffffffffffffffffff.") = functor(integer(base_16, i(-8, [-3, -16383, -16383, -16383, -16383, -16383, -16383, -16383]), signed, size_word), [], context("", 1))
Invalid hexadecimal literals:
read_term("0x.") = Syntax error: unterminated hexadecimal literal
read_term("-0x.") = Syntax error: unterminated hexadecimal literal
read_term("0x_.") = Syntax error: unterminated hexadecimal literal
read_term("-0x_.") = Syntax error: unterminated hexadecimal literal
read_term("0xff_.") = Syntax error: unterminated hexadecimal literal
read_term("-0xff_.") = Syntax error: unterminated hexadecimal literal
Valid float literals:
read_term("0.123.") = functor(float(0.123), [], context("", 1))
read_term("-0.123.") = functor(float(-0.123), [], context("", 1))
read_term("0.1_2__3.") = functor(float(0.123), [], context("", 1))
read_term("-0.1_2__3.") = functor(float(-0.123), [], context("", 1))
read_term("1.123.") = functor(float(1.123), [], context("", 1))
read_term("-1.123.") = functor(float(-1.123), [], context("", 1))
read_term("1_2.123.") = functor(float(12.123), [], context("", 1))
read_term("-1_2.123.") = functor(float(-12.123), [], context("", 1))
read_term("1__2.1_2__3.") = functor(float(12.123), [], context("", 1))
read_term("-1__2.1_2__3.") = functor(float(-12.123), [], context("", 1))
read_term("1_2_3e1_1.") = functor(float(1.23E13), [], context("", 1))
read_term("1_2_3E1_1.") = functor(float(1.23E13), [], context("", 1))
read_term("1_2e+1_1.") = functor(float(1.2E12), [], context("", 1))
read_term("1_2E+1_1.") = functor(float(1.2E12), [], context("", 1))
read_term("1_2e-1_1.") = functor(float(1.2E-10), [], context("", 1))
read_term("1_2E-1_1.") = functor(float(1.2E-10), [], context("", 1))
read_term("00.0.") = functor(float(0.0), [], context("", 1))
read_term("0_0.0.") = functor(float(0.0), [], context("", 1))
read_term("01.0.") = functor(float(1.0), [], context("", 1))
read_term("0_1.0.") = functor(float(1.0), [], context("", 1))
Invalid float literals:
read_term("1_2_3.1_2_3_.") = Syntax error: fractional part of float terminated by underscore
read_term("1_2_3e1_2_3_.") = Syntax error: unterminated exponent in float literal
read_term("123_._123.") = Syntax error: unterminated decimal literal
read_term("123._123.") = Syntax error: underscore following decimal point
read_term("123_.123.") = Syntax error: unterminated decimal literal
read_term("123_e12.") = Syntax error: underscore before exponent
read_term("123_E12.") = Syntax error: underscore before exponent
read_term("123e_12.") = Syntax error: unterminated exponent in float literal
read_term("123E_12.") = Syntax error: unterminated exponent in float literal
read_term("123e12_.") = Syntax error: unterminated exponent in float literal
read_term("123E12_.") = Syntax error: unterminated exponent in float literal
read_term("12_e11.") = Syntax error: underscore before exponent
read_term("12_E11.") = Syntax error: underscore before exponent
read_term("123.12e-_12.") = Syntax error: unterminated exponent in float literal
read_term("123.12e+_12.") = Syntax error: unterminated exponent in float literal
read_term("123.12e12_.") = Syntax error: unterminated exponent in float literal
read_term("123.12E12_.") = Syntax error: unterminated exponent in float literal