mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 01:13:30 +00:00
Extend the lexer to recognise uint literals, optional signedness suffixes on
ints and the literals for all of the proposed fixed size integer types.
Fix XXX UINTs in the library and compiler.
library/lexer.m:
Uncomment the other alternatives in the integer_size/0 type.
Handle signedness and size suffixes in integer literals.
library/parser.m
library/term.m:
Conform to the above changes.
library/stream.string_writer.m:
Fix an XXX UINT: make write handle uints properly.
library/term_io.m:
Fix an XXX UINT: output integer signedness and size suffixes for
integers when appropriate.
compiler/superhomogeneous.m:
Print an error message if we encounter a fixed size integer literal
as the rest of the compiler does not yet support them.
compiler/hlds_out_util.m:
compiler/parse_tree_out_info.m:
Output the 'u' suffix on uint values.
test/hard_coded/lexer_zero.{m,inp,exp*}:
Extend this test to cover zeros of varying signedness and size.
Prefix each line of the output with the input line number of the
token -- this makes it easier to relate the output back to the
input.
tests/hard_coded/Mmakefile:
Add the new test case.
tests/hard_coded/lexer_ints.{m,inp,exp}:
Test the lexer on non-zero integer literals.
314 lines
16 KiB
Plaintext
314 lines
16 KiB
Plaintext
1: string("Signed binary integers")
|
|
2: integer(base_2, i(1, [2]), signed, size_word)
|
|
3: integer(base_2, i(1, [4]), signed, size_word)
|
|
4: integer(base_2, i(1, [2]), signed, size_8_bit)
|
|
5: integer(base_2, i(1, [4]), signed, size_16_bit)
|
|
6: integer(base_2, i(1, [4]), signed, size_32_bit)
|
|
7: integer(base_2, i(1, [5]), signed, size_64_bit)
|
|
9: string("Signed binary integers (with underscores)")
|
|
10: integer(base_2, i(1, [2184]), signed, size_word)
|
|
11: integer(base_2, i(1, [2184]), signed, size_word)
|
|
12: integer(base_2, i(1, [15]), signed, size_8_bit)
|
|
13: integer(base_2, i(1, [2184]), signed, size_16_bit)
|
|
14: integer(base_2, i(1, [2184]), signed, size_32_bit)
|
|
15: integer(base_2, i(1, [2184]), signed, size_64_bit)
|
|
17: string("Signed binary integers (with leading zeros)")
|
|
18: integer(base_2, i(1, [2]), signed, size_word)
|
|
19: integer(base_2, i(1, [4]), signed, size_word)
|
|
20: integer(base_2, i(1, [2]), signed, size_8_bit)
|
|
21: integer(base_2, i(1, [4]), signed, size_16_bit)
|
|
22: integer(base_2, i(1, [4]), signed, size_32_bit)
|
|
23: integer(base_2, i(1, [5]), signed, size_64_bit)
|
|
25: string("Unsigned binary integers")
|
|
26: integer(base_2, i(1, [4]), unsigned, size_word)
|
|
27: integer(base_2, i(1, [2]), unsigned, size_8_bit)
|
|
28: integer(base_2, i(1, [4]), unsigned, size_16_bit)
|
|
29: integer(base_2, i(1, [4]), unsigned, size_32_bit)
|
|
30: integer(base_2, i(1, [5]), unsigned, size_64_bit)
|
|
32: string("Unsigned binary integers (with underscores)")
|
|
33: integer(base_2, i(1, [2184]), unsigned, size_word)
|
|
34: integer(base_2, i(1, [15]), unsigned, size_8_bit)
|
|
35: integer(base_2, i(1, [2184]), unsigned, size_16_bit)
|
|
36: integer(base_2, i(1, [2184]), unsigned, size_32_bit)
|
|
37: integer(base_2, i(1, [2184]), unsigned, size_64_bit)
|
|
39: string("Unsigned binary integers (with leading zeros)")
|
|
40: integer(base_2, i(1, [4]), unsigned, size_word)
|
|
41: integer(base_2, i(1, [2]), unsigned, size_8_bit)
|
|
42: integer(base_2, i(1, [4]), unsigned, size_16_bit)
|
|
43: integer(base_2, i(1, [4]), unsigned, size_32_bit)
|
|
44: integer(base_2, i(1, [5]), unsigned, size_64_bit)
|
|
46: string("Signed octal integers")
|
|
47: integer(base_8, i(1, [63]), signed, size_word)
|
|
48: integer(base_8, i(1, [63]), signed, size_word)
|
|
49: integer(base_8, i(1, [63]), signed, size_8_bit)
|
|
50: integer(base_8, i(1, [63]), signed, size_16_bit)
|
|
51: integer(base_8, i(1, [63]), signed, size_32_bit)
|
|
52: integer(base_8, i(1, [63]), signed, size_64_bit)
|
|
54: string("Signed octal integers (with underscores)")
|
|
55: integer(base_8, i(1, [63]), signed, size_word)
|
|
56: integer(base_8, i(1, [63]), signed, size_word)
|
|
57: integer(base_8, i(1, [63]), signed, size_8_bit)
|
|
58: integer(base_8, i(1, [63]), signed, size_16_bit)
|
|
59: integer(base_8, i(1, [63]), signed, size_32_bit)
|
|
60: integer(base_8, i(1, [63]), signed, size_64_bit)
|
|
62: string("Signed octal integers")
|
|
63: integer(base_8, i(1, [63]), signed, size_word)
|
|
64: integer(base_8, i(1, [63]), signed, size_word)
|
|
65: integer(base_8, i(1, [63]), signed, size_8_bit)
|
|
66: integer(base_8, i(1, [63]), signed, size_16_bit)
|
|
67: integer(base_8, i(1, [63]), signed, size_32_bit)
|
|
68: integer(base_8, i(1, [63]), signed, size_64_bit)
|
|
70: string("Unsigned octal integers")
|
|
71: integer(base_8, i(1, [63]), unsigned, size_word)
|
|
72: integer(base_8, i(1, [63]), unsigned, size_8_bit)
|
|
73: integer(base_8, i(1, [63]), unsigned, size_16_bit)
|
|
74: integer(base_8, i(1, [63]), unsigned, size_32_bit)
|
|
75: integer(base_8, i(1, [63]), unsigned, size_64_bit)
|
|
77: string("Unsigned octal integers (with underscores)")
|
|
78: integer(base_8, i(1, [63]), unsigned, size_word)
|
|
79: integer(base_8, i(1, [63]), unsigned, size_8_bit)
|
|
80: integer(base_8, i(1, [63]), unsigned, size_16_bit)
|
|
81: integer(base_8, i(1, [63]), unsigned, size_32_bit)
|
|
82: integer(base_8, i(1, [63]), unsigned, size_64_bit)
|
|
84: string("Unsigned octal integers (with leading zeros)")
|
|
85: integer(base_8, i(1, [63]), unsigned, size_word)
|
|
86: integer(base_8, i(1, [63]), unsigned, size_8_bit)
|
|
87: integer(base_8, i(1, [63]), unsigned, size_16_bit)
|
|
88: integer(base_8, i(1, [63]), unsigned, size_32_bit)
|
|
89: integer(base_8, i(1, [63]), unsigned, size_64_bit)
|
|
91: string("Signed decimal integers")
|
|
92: integer(base_10, i(1, [99]), signed, size_word)
|
|
93: integer(base_10, i(1, [99]), signed, size_word)
|
|
94: integer(base_10, i(1, [99]), signed, size_8_bit)
|
|
95: integer(base_10, i(1, [99]), signed, size_16_bit)
|
|
96: integer(base_10, i(1, [99]), signed, size_32_bit)
|
|
97: integer(base_10, i(1, [99]), signed, size_64_bit)
|
|
99: string("Signed decimal integers (with underscores)")
|
|
100: integer(base_10, i(1, [99]), signed, size_word)
|
|
101: integer(base_10, i(1, [99]), signed, size_word)
|
|
102: integer(base_10, i(1, [99]), signed, size_8_bit)
|
|
103: integer(base_10, i(1, [99]), signed, size_16_bit)
|
|
104: integer(base_10, i(1, [99]), signed, size_32_bit)
|
|
105: integer(base_10, i(1, [99]), signed, size_64_bit)
|
|
107: string("Signed decimal integers (with leading zeros)")
|
|
108: integer(base_10, i(1, [99]), signed, size_word)
|
|
109: integer(base_10, i(1, [99]), signed, size_word)
|
|
110: integer(base_10, i(1, [99]), signed, size_8_bit)
|
|
111: integer(base_10, i(1, [99]), signed, size_16_bit)
|
|
112: integer(base_10, i(1, [99]), signed, size_32_bit)
|
|
113: integer(base_10, i(1, [99]), signed, size_64_bit)
|
|
115: string("Unsigned decimal integers")
|
|
116: integer(base_10, i(1, [99]), unsigned, size_word)
|
|
117: integer(base_10, i(1, [99]), unsigned, size_8_bit)
|
|
118: integer(base_10, i(1, [99]), unsigned, size_16_bit)
|
|
119: integer(base_10, i(1, [99]), unsigned, size_32_bit)
|
|
120: integer(base_10, i(1, [99]), unsigned, size_64_bit)
|
|
122: string("Unsigned decimal integers (with underscores)")
|
|
123: integer(base_10, i(1, [99]), unsigned, size_word)
|
|
124: integer(base_10, i(1, [99]), unsigned, size_8_bit)
|
|
125: integer(base_10, i(1, [99]), unsigned, size_16_bit)
|
|
126: integer(base_10, i(1, [99]), unsigned, size_32_bit)
|
|
127: integer(base_10, i(1, [99]), unsigned, size_64_bit)
|
|
129: string("Unsigned decimal integers (with leading zeros)")
|
|
130: integer(base_10, i(1, [99]), unsigned, size_word)
|
|
131: integer(base_10, i(1, [99]), unsigned, size_8_bit)
|
|
132: integer(base_10, i(1, [99]), unsigned, size_16_bit)
|
|
133: integer(base_10, i(1, [99]), unsigned, size_32_bit)
|
|
134: integer(base_10, i(1, [99]), unsigned, size_64_bit)
|
|
136: string("Signed hexadecimal integers")
|
|
137: integer(base_16, i(1, [31]), signed, size_word)
|
|
138: integer(base_16, i(1, [31]), signed, size_word)
|
|
139: integer(base_16, i(1, [31]), signed, size_8_bit)
|
|
140: integer(base_16, i(1, [31]), signed, size_16_bit)
|
|
141: integer(base_16, i(1, [31]), signed, size_32_bit)
|
|
142: integer(base_16, i(1, [31]), signed, size_64_bit)
|
|
144: string("Signed hexadecimal integers (with underscores)")
|
|
145: integer(base_16, i(1, [31]), signed, size_word)
|
|
146: integer(base_16, i(1, [31]), signed, size_word)
|
|
147: integer(base_16, i(1, [31]), signed, size_8_bit)
|
|
148: integer(base_16, i(1, [31]), signed, size_16_bit)
|
|
149: integer(base_16, i(1, [31]), signed, size_32_bit)
|
|
150: integer(base_16, i(1, [31]), signed, size_64_bit)
|
|
152: string("Signed hexadecimal integers (with leading zeros)")
|
|
153: integer(base_16, i(1, [31]), signed, size_word)
|
|
154: integer(base_16, i(1, [31]), signed, size_word)
|
|
155: integer(base_16, i(1, [31]), signed, size_8_bit)
|
|
156: integer(base_16, i(1, [31]), signed, size_16_bit)
|
|
157: integer(base_16, i(1, [31]), signed, size_32_bit)
|
|
158: integer(base_16, i(1, [31]), signed, size_64_bit)
|
|
160: string("Unsigned hexadecimal integers")
|
|
161: integer(base_16, i(1, [31]), unsigned, size_word)
|
|
162: integer(base_16, i(1, [31]), unsigned, size_8_bit)
|
|
163: integer(base_16, i(1, [31]), unsigned, size_16_bit)
|
|
164: integer(base_16, i(1, [31]), unsigned, size_32_bit)
|
|
165: integer(base_16, i(1, [31]), unsigned, size_64_bit)
|
|
167: string("Unsigned hexadecimal integers (with underscores)")
|
|
168: integer(base_16, i(1, [31]), unsigned, size_word)
|
|
169: integer(base_16, i(1, [31]), unsigned, size_8_bit)
|
|
170: integer(base_16, i(1, [31]), unsigned, size_16_bit)
|
|
171: integer(base_16, i(1, [31]), unsigned, size_32_bit)
|
|
172: integer(base_16, i(1, [31]), unsigned, size_64_bit)
|
|
174: string("Unsigned hexadecimal integers (with leading zeros)")
|
|
175: integer(base_16, i(1, [31]), unsigned, size_word)
|
|
176: integer(base_16, i(1, [31]), unsigned, size_8_bit)
|
|
177: integer(base_16, i(1, [31]), unsigned, size_16_bit)
|
|
178: integer(base_16, i(1, [31]), unsigned, size_32_bit)
|
|
179: integer(base_16, i(1, [31]), unsigned, size_64_bit)
|
|
|
|
1: string("Signed binary integers")
|
|
2: integer(base_2, i(1, [2]), signed, size_word)
|
|
3: integer(base_2, i(1, [4]), signed, size_word)
|
|
4: integer(base_2, i(1, [2]), signed, size_8_bit)
|
|
5: integer(base_2, i(1, [4]), signed, size_16_bit)
|
|
6: integer(base_2, i(1, [4]), signed, size_32_bit)
|
|
7: integer(base_2, i(1, [5]), signed, size_64_bit)
|
|
9: string("Signed binary integers (with underscores)")
|
|
10: integer(base_2, i(1, [2184]), signed, size_word)
|
|
11: integer(base_2, i(1, [2184]), signed, size_word)
|
|
12: integer(base_2, i(1, [15]), signed, size_8_bit)
|
|
13: integer(base_2, i(1, [2184]), signed, size_16_bit)
|
|
14: integer(base_2, i(1, [2184]), signed, size_32_bit)
|
|
15: integer(base_2, i(1, [2184]), signed, size_64_bit)
|
|
17: string("Signed binary integers (with leading zeros)")
|
|
18: integer(base_2, i(1, [2]), signed, size_word)
|
|
19: integer(base_2, i(1, [4]), signed, size_word)
|
|
20: integer(base_2, i(1, [2]), signed, size_8_bit)
|
|
21: integer(base_2, i(1, [4]), signed, size_16_bit)
|
|
22: integer(base_2, i(1, [4]), signed, size_32_bit)
|
|
23: integer(base_2, i(1, [5]), signed, size_64_bit)
|
|
25: string("Unsigned binary integers")
|
|
26: integer(base_2, i(1, [4]), unsigned, size_word)
|
|
27: integer(base_2, i(1, [2]), unsigned, size_8_bit)
|
|
28: integer(base_2, i(1, [4]), unsigned, size_16_bit)
|
|
29: integer(base_2, i(1, [4]), unsigned, size_32_bit)
|
|
30: integer(base_2, i(1, [5]), unsigned, size_64_bit)
|
|
32: string("Unsigned binary integers (with underscores)")
|
|
33: integer(base_2, i(1, [2184]), unsigned, size_word)
|
|
34: integer(base_2, i(1, [15]), unsigned, size_8_bit)
|
|
35: integer(base_2, i(1, [2184]), unsigned, size_16_bit)
|
|
36: integer(base_2, i(1, [2184]), unsigned, size_32_bit)
|
|
37: integer(base_2, i(1, [2184]), unsigned, size_64_bit)
|
|
39: string("Unsigned binary integers (with leading zeros)")
|
|
40: integer(base_2, i(1, [4]), unsigned, size_word)
|
|
41: integer(base_2, i(1, [2]), unsigned, size_8_bit)
|
|
42: integer(base_2, i(1, [4]), unsigned, size_16_bit)
|
|
43: integer(base_2, i(1, [4]), unsigned, size_32_bit)
|
|
44: integer(base_2, i(1, [5]), unsigned, size_64_bit)
|
|
46: string("Signed octal integers")
|
|
47: integer(base_8, i(1, [63]), signed, size_word)
|
|
48: integer(base_8, i(1, [63]), signed, size_word)
|
|
49: integer(base_8, i(1, [63]), signed, size_8_bit)
|
|
50: integer(base_8, i(1, [63]), signed, size_16_bit)
|
|
51: integer(base_8, i(1, [63]), signed, size_32_bit)
|
|
52: integer(base_8, i(1, [63]), signed, size_64_bit)
|
|
54: string("Signed octal integers (with underscores)")
|
|
55: integer(base_8, i(1, [63]), signed, size_word)
|
|
56: integer(base_8, i(1, [63]), signed, size_word)
|
|
57: integer(base_8, i(1, [63]), signed, size_8_bit)
|
|
58: integer(base_8, i(1, [63]), signed, size_16_bit)
|
|
59: integer(base_8, i(1, [63]), signed, size_32_bit)
|
|
60: integer(base_8, i(1, [63]), signed, size_64_bit)
|
|
62: string("Signed octal integers")
|
|
63: integer(base_8, i(1, [63]), signed, size_word)
|
|
64: integer(base_8, i(1, [63]), signed, size_word)
|
|
65: integer(base_8, i(1, [63]), signed, size_8_bit)
|
|
66: integer(base_8, i(1, [63]), signed, size_16_bit)
|
|
67: integer(base_8, i(1, [63]), signed, size_32_bit)
|
|
68: integer(base_8, i(1, [63]), signed, size_64_bit)
|
|
70: string("Unsigned octal integers")
|
|
71: integer(base_8, i(1, [63]), unsigned, size_word)
|
|
72: integer(base_8, i(1, [63]), unsigned, size_8_bit)
|
|
73: integer(base_8, i(1, [63]), unsigned, size_16_bit)
|
|
74: integer(base_8, i(1, [63]), unsigned, size_32_bit)
|
|
75: integer(base_8, i(1, [63]), unsigned, size_64_bit)
|
|
77: string("Unsigned octal integers (with underscores)")
|
|
78: integer(base_8, i(1, [63]), unsigned, size_word)
|
|
79: integer(base_8, i(1, [63]), unsigned, size_8_bit)
|
|
80: integer(base_8, i(1, [63]), unsigned, size_16_bit)
|
|
81: integer(base_8, i(1, [63]), unsigned, size_32_bit)
|
|
82: integer(base_8, i(1, [63]), unsigned, size_64_bit)
|
|
84: string("Unsigned octal integers (with leading zeros)")
|
|
85: integer(base_8, i(1, [63]), unsigned, size_word)
|
|
86: integer(base_8, i(1, [63]), unsigned, size_8_bit)
|
|
87: integer(base_8, i(1, [63]), unsigned, size_16_bit)
|
|
88: integer(base_8, i(1, [63]), unsigned, size_32_bit)
|
|
89: integer(base_8, i(1, [63]), unsigned, size_64_bit)
|
|
91: string("Signed decimal integers")
|
|
92: integer(base_10, i(1, [99]), signed, size_word)
|
|
93: integer(base_10, i(1, [99]), signed, size_word)
|
|
94: integer(base_10, i(1, [99]), signed, size_8_bit)
|
|
95: integer(base_10, i(1, [99]), signed, size_16_bit)
|
|
96: integer(base_10, i(1, [99]), signed, size_32_bit)
|
|
97: integer(base_10, i(1, [99]), signed, size_64_bit)
|
|
99: string("Signed decimal integers (with underscores)")
|
|
100: integer(base_10, i(1, [99]), signed, size_word)
|
|
101: integer(base_10, i(1, [99]), signed, size_word)
|
|
102: integer(base_10, i(1, [99]), signed, size_8_bit)
|
|
103: integer(base_10, i(1, [99]), signed, size_16_bit)
|
|
104: integer(base_10, i(1, [99]), signed, size_32_bit)
|
|
105: integer(base_10, i(1, [99]), signed, size_64_bit)
|
|
107: string("Signed decimal integers (with leading zeros)")
|
|
108: integer(base_10, i(1, [99]), signed, size_word)
|
|
109: integer(base_10, i(1, [99]), signed, size_word)
|
|
110: integer(base_10, i(1, [99]), signed, size_8_bit)
|
|
111: integer(base_10, i(1, [99]), signed, size_16_bit)
|
|
112: integer(base_10, i(1, [99]), signed, size_32_bit)
|
|
113: integer(base_10, i(1, [99]), signed, size_64_bit)
|
|
115: string("Unsigned decimal integers")
|
|
116: integer(base_10, i(1, [99]), unsigned, size_word)
|
|
117: integer(base_10, i(1, [99]), unsigned, size_8_bit)
|
|
118: integer(base_10, i(1, [99]), unsigned, size_16_bit)
|
|
119: integer(base_10, i(1, [99]), unsigned, size_32_bit)
|
|
120: integer(base_10, i(1, [99]), unsigned, size_64_bit)
|
|
122: string("Unsigned decimal integers (with underscores)")
|
|
123: integer(base_10, i(1, [99]), unsigned, size_word)
|
|
124: integer(base_10, i(1, [99]), unsigned, size_8_bit)
|
|
125: integer(base_10, i(1, [99]), unsigned, size_16_bit)
|
|
126: integer(base_10, i(1, [99]), unsigned, size_32_bit)
|
|
127: integer(base_10, i(1, [99]), unsigned, size_64_bit)
|
|
129: string("Unsigned decimal integers (with leading zeros)")
|
|
130: integer(base_10, i(1, [99]), unsigned, size_word)
|
|
131: integer(base_10, i(1, [99]), unsigned, size_8_bit)
|
|
132: integer(base_10, i(1, [99]), unsigned, size_16_bit)
|
|
133: integer(base_10, i(1, [99]), unsigned, size_32_bit)
|
|
134: integer(base_10, i(1, [99]), unsigned, size_64_bit)
|
|
136: string("Signed hexadecimal integers")
|
|
137: integer(base_16, i(1, [31]), signed, size_word)
|
|
138: integer(base_16, i(1, [31]), signed, size_word)
|
|
139: integer(base_16, i(1, [31]), signed, size_8_bit)
|
|
140: integer(base_16, i(1, [31]), signed, size_16_bit)
|
|
141: integer(base_16, i(1, [31]), signed, size_32_bit)
|
|
142: integer(base_16, i(1, [31]), signed, size_64_bit)
|
|
144: string("Signed hexadecimal integers (with underscores)")
|
|
145: integer(base_16, i(1, [31]), signed, size_word)
|
|
146: integer(base_16, i(1, [31]), signed, size_word)
|
|
147: integer(base_16, i(1, [31]), signed, size_8_bit)
|
|
148: integer(base_16, i(1, [31]), signed, size_16_bit)
|
|
149: integer(base_16, i(1, [31]), signed, size_32_bit)
|
|
150: integer(base_16, i(1, [31]), signed, size_64_bit)
|
|
152: string("Signed hexadecimal integers (with leading zeros)")
|
|
153: integer(base_16, i(1, [31]), signed, size_word)
|
|
154: integer(base_16, i(1, [31]), signed, size_word)
|
|
155: integer(base_16, i(1, [31]), signed, size_8_bit)
|
|
156: integer(base_16, i(1, [31]), signed, size_16_bit)
|
|
157: integer(base_16, i(1, [31]), signed, size_32_bit)
|
|
158: integer(base_16, i(1, [31]), signed, size_64_bit)
|
|
160: string("Unsigned hexadecimal integers")
|
|
161: integer(base_16, i(1, [31]), unsigned, size_word)
|
|
162: integer(base_16, i(1, [31]), unsigned, size_8_bit)
|
|
163: integer(base_16, i(1, [31]), unsigned, size_16_bit)
|
|
164: integer(base_16, i(1, [31]), unsigned, size_32_bit)
|
|
165: integer(base_16, i(1, [31]), unsigned, size_64_bit)
|
|
167: string("Unsigned hexadecimal integers (with underscores)")
|
|
168: integer(base_16, i(1, [31]), unsigned, size_word)
|
|
169: integer(base_16, i(1, [31]), unsigned, size_8_bit)
|
|
170: integer(base_16, i(1, [31]), unsigned, size_16_bit)
|
|
171: integer(base_16, i(1, [31]), unsigned, size_32_bit)
|
|
172: integer(base_16, i(1, [31]), unsigned, size_64_bit)
|
|
174: string("Unsigned hexadecimal integers (with leading zeros)")
|
|
175: integer(base_16, i(1, [31]), unsigned, size_word)
|
|
176: integer(base_16, i(1, [31]), unsigned, size_8_bit)
|
|
177: integer(base_16, i(1, [31]), unsigned, size_16_bit)
|
|
178: integer(base_16, i(1, [31]), unsigned, size_32_bit)
|
|
179: integer(base_16, i(1, [31]), unsigned, size_64_bit)
|