Skip to content

Commit 965a407

Browse files
committed
TASK: Remove exponents from Parser
1 parent f3a1383 commit 965a407

File tree

7 files changed

+29
-122
lines changed

7 files changed

+29
-122
lines changed

src/Parser/Tokenizer/TokenType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ public static function fromBuffer(Buffer $buffer): TokenType
122122
$value
123123
) => self::NUMBER_OCTAL,
124124
$value !== '' && preg_match(
125-
'/^([-+]?[0-9]+)?([eE][0-9]+)?$/',
125+
'/^([-+]?[0-9]+)$/',
126126
$value
127127
) => self::NUMBER_DECIMAL,
128128
(bool) preg_match(

src/Target/Php/Transpiler/IntegerLiteral/IntegerLiteralTranspiler.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@
2727

2828
final class IntegerLiteralTranspiler
2929
{
30-
public function transpile(IntegerLiteralNode $IntegerLiteralNode): string
30+
public function transpile(IntegerLiteralNode $integerLiteralNode): string
3131
{
32-
return match ($IntegerLiteralNode->format) {
33-
NumberFormat::BINARY => strtolower($IntegerLiteralNode->value),
34-
default => $IntegerLiteralNode->value
32+
return match ($integerLiteralNode->format) {
33+
NumberFormat::BINARY => strtolower($integerLiteralNode->value),
34+
default => $integerLiteralNode->value
3535
};
3636
}
3737
}

test/Integration/Examples/Numbers/Numbers.afx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,5 @@ export component Numbers {
1717
# Hexadecimal
1818
0xFFFFFFFFFFFFFFFFF ||
1919
0x123456789ABCDEF ||
20-
0xA ||
21-
22-
# With Exponent
23-
1E3 ||
24-
2e6
20+
0xA
2521
}

test/Integration/Examples/Numbers/Numbers.ast.json

Lines changed: 22 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -59,47 +59,18 @@
5959
"operator": "OR",
6060
"operands": [
6161
{
62-
"type": "BinaryOperationNode",
62+
"type": "IntegerLiteralNode",
6363
"payload": {
64-
"operator": "OR",
65-
"operands": [
66-
{
67-
"type": "BinaryOperationNode",
68-
"payload": {
69-
"operator": "OR",
70-
"operands": [
71-
{
72-
"type": "IntegerLiteralNode",
73-
"payload": {
74-
"value": "0",
75-
"format": "DECIMAL"
76-
}
77-
},
78-
{
79-
"type": "IntegerLiteralNode",
80-
"payload": {
81-
"value": "1234567890",
82-
"format": "DECIMAL"
83-
}
84-
}
85-
]
86-
}
87-
},
88-
{
89-
"type": "IntegerLiteralNode",
90-
"payload": {
91-
"value": "42",
92-
"format": "DECIMAL"
93-
}
94-
}
95-
]
64+
"value": "0",
65+
"format": "DECIMAL"
9666
}
9767
},
68+
9869
{
9970
"type": "IntegerLiteralNode",
10071
"payload": {
101-
"value": "0b10000000000000000000000000000000",
102-
"format": "BINARY"
72+
"value": "1234567890",
73+
"format": "DECIMAL"
10374
}
10475
}
10576
]
@@ -108,8 +79,8 @@
10879
{
10980
"type": "IntegerLiteralNode",
11081
"payload": {
111-
"value": "0b01111111100000000000000000000000",
112-
"format": "BINARY"
82+
"value": "42",
83+
"format": "DECIMAL"
11384
}
11485
}
11586
]
@@ -118,7 +89,7 @@
11889
{
11990
"type": "IntegerLiteralNode",
12091
"payload": {
121-
"value": "0B00000000011111111111111111111111",
92+
"value": "0b10000000000000000000000000000000",
12293
"format": "BINARY"
12394
}
12495
}
@@ -128,8 +99,8 @@
12899
{
129100
"type": "IntegerLiteralNode",
130101
"payload": {
131-
"value": "0o755",
132-
"format": "OCTAL"
102+
"value": "0b01111111100000000000000000000000",
103+
"format": "BINARY"
133104
}
134105
}
135106
]
@@ -138,8 +109,8 @@
138109
{
139110
"type": "IntegerLiteralNode",
140111
"payload": {
141-
"value": "0o644",
142-
"format": "OCTAL"
112+
"value": "0B00000000011111111111111111111111",
113+
"format": "BINARY"
143114
}
144115
}
145116
]
@@ -148,8 +119,8 @@
148119
{
149120
"type": "IntegerLiteralNode",
150121
"payload": {
151-
"value": "0xFFFFFFFFFFFFFFFFF",
152-
"format": "HEXADECIMAL"
122+
"value": "0o755",
123+
"format": "OCTAL"
153124
}
154125
}
155126
]
@@ -158,8 +129,8 @@
158129
{
159130
"type": "IntegerLiteralNode",
160131
"payload": {
161-
"value": "0x123456789ABCDEF",
162-
"format": "HEXADECIMAL"
132+
"value": "0o644",
133+
"format": "OCTAL"
163134
}
164135
}
165136
]
@@ -168,7 +139,7 @@
168139
{
169140
"type": "IntegerLiteralNode",
170141
"payload": {
171-
"value": "0xA",
142+
"value": "0xFFFFFFFFFFFFFFFFF",
172143
"format": "HEXADECIMAL"
173144
}
174145
}
@@ -178,8 +149,8 @@
178149
{
179150
"type": "IntegerLiteralNode",
180151
"payload": {
181-
"value": "1E3",
182-
"format": "DECIMAL"
152+
"value": "0x123456789ABCDEF",
153+
"format": "HEXADECIMAL"
183154
}
184155
}
185156
]
@@ -188,8 +159,8 @@
188159
{
189160
"type": "IntegerLiteralNode",
190161
"payload": {
191-
"value": "2e6",
192-
"format": "DECIMAL"
162+
"value": "0xA",
163+
"format": "HEXADECIMAL"
193164
}
194165
}
195166
]

test/Integration/Examples/Numbers/Numbers.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ final class Numbers extends BaseClass
1010
{
1111
public function render(): string
1212
{
13-
return (string) ((((((((((((0 || 1234567890) || 42) || 0b10000000000000000000000000000000) || 0b01111111100000000000000000000000) || 0b00000000011111111111111111111111) || 0o755) || 0o644) || 0xFFFFFFFFFFFFFFFFF) || 0x123456789ABCDEF) || 0xA) || 1E3) || 2e6);
13+
return (string) ((((((((((0 || 1234567890) || 42) || 0b10000000000000000000000000000000) || 0b01111111100000000000000000000000) || 0b00000000011111111111111111111111) || 0o755) || 0o644) || 0xFFFFFFFFFFFFFFFFF) || 0x123456789ABCDEF) || 0xA);
1414
}
1515
}

test/Integration/Examples/Numbers/Numbers.tokens.json

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -311,62 +311,6 @@
311311
"type": "NUMBER_HEXADECIMAL",
312312
"value": "0xA"
313313
},
314-
{
315-
"type": "SPACE",
316-
"value": " "
317-
},
318-
{
319-
"type": "OPERATOR_BOOLEAN_OR",
320-
"value": "||"
321-
},
322-
{
323-
"type": "END_OF_LINE",
324-
"value": "\n"
325-
},
326-
{
327-
"type": "END_OF_LINE",
328-
"value": "\n"
329-
},
330-
{
331-
"type": "SPACE",
332-
"value": " "
333-
},
334-
{
335-
"type": "COMMENT",
336-
"value": "# With Exponent"
337-
},
338-
{
339-
"type": "END_OF_LINE",
340-
"value": "\n"
341-
},
342-
{
343-
"type": "SPACE",
344-
"value": " "
345-
},
346-
{
347-
"type": "NUMBER_DECIMAL",
348-
"value": "1E3"
349-
},
350-
{
351-
"type": "SPACE",
352-
"value": " "
353-
},
354-
{
355-
"type": "OPERATOR_BOOLEAN_OR",
356-
"value": "||"
357-
},
358-
{
359-
"type": "END_OF_LINE",
360-
"value": "\n"
361-
},
362-
{
363-
"type": "SPACE",
364-
"value": " "
365-
},
366-
{
367-
"type": "NUMBER_DECIMAL",
368-
"value": "2e6"
369-
},
370314
{
371315
"type": "END_OF_LINE",
372316
"value": "\n"

test/Unit/Target/Php/Transpiler/IntegerLiteral/IntegerLiteralTranspilerTest.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,6 @@ public static function integerLiteralExamples(): array
5353
' 0xFFFFFFFFFFFFFFFFF ' => ['0xFFFFFFFFFFFFFFFFF', '0xFFFFFFFFFFFFFFFFF'],
5454
' 0x123456789ABCDEF ' => ['0x123456789ABCDEF', '0x123456789ABCDEF'],
5555
' 0xA ' => ['0xA', '0xA'],
56-
57-
// With Exponent
58-
' 1E3 ' => ['1E3', '1E3'],
59-
' 2e6 ' => ['2e6', '2e6'],
6056
];
6157
}
6258

0 commit comments

Comments
 (0)