Skip to content

Commit 09065a4

Browse files
committed
Implement Transpilation for Numbers example
1 parent 48901c8 commit 09065a4

4 files changed

Lines changed: 9 additions & 4 deletions

File tree

src/Transpiler/Php/NumberLiteral/NumberLiteralTranspiler.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,16 @@
2222

2323
namespace PackageFactory\ComponentEngine\Transpiler\Php\NumberLiteral;
2424

25+
use PackageFactory\ComponentEngine\Definition\NumberFormat;
2526
use PackageFactory\ComponentEngine\Parser\Ast\NumberLiteralNode;
2627

2728
final class NumberLiteralTranspiler
2829
{
2930
public function transpile(NumberLiteralNode $numberLiteralNode): string
3031
{
31-
return $numberLiteralNode->value;
32+
return match ($numberLiteralNode->format) {
33+
NumberFormat::BINARY => strtolower($numberLiteralNode->value),
34+
default => $numberLiteralNode->value
35+
};
3236
}
3337
}

test/Integration/Examples/Numbers/Numbers.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
final class Numbers extends BaseClass
1010
{
11-
public function render(): int|float
11+
public function render(): string
1212
{
13-
return 0 + 1234567890 + 42 + 0b10000000000000000000000000000000 + 0b01111111100000000000000000000000 + 0b00000000011111111111111111111111 + 0o755 + 0o644 + 0xFFFFFFFFFFFFFFFFF + 0x123456789ABCDEF + 0xA + 1E3 + 2e6 + 123.456 + 0.1e2 + .22;
13+
return (string) (0 + 1234567890 + 42 + 0b10000000000000000000000000000000 + 0b01111111100000000000000000000000 + 0b00000000011111111111111111111111 + 0o755 + 0o644 + 0xFFFFFFFFFFFFFFFFF + 0x123456789ABCDEF + 0xA + 1E3 + 2e6 + 123.456 + 0.1e2 + .22);
1414
}
1515
}

test/Integration/PhpTranspilerIntegrationTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public function transpilerExamples(): array
4646
'Enum' => ["Enum"],
4747
'Expression' => ["Expression"],
4848
'Match' => ["Match"],
49+
'Numbers' => ["Numbers"],
4950
];
5051
}
5152

test/Unit/Transpiler/Php/NumberLiteral/NumberLiteralTranspilerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public function numberLiteralExamples(): array
3939
// Binary
4040
' 0b10000000000000000000000000000000 ' => ['0b10000000000000000000000000000000', '0b10000000000000000000000000000000'],
4141
' 0b01111111100000000000000000000000 ' => ['0b01111111100000000000000000000000', '0b01111111100000000000000000000000'],
42-
' 0B00000000011111111111111111111111 ' => ['0B00000000011111111111111111111111', '0B00000000011111111111111111111111'],
42+
' 0B00000000011111111111111111111111 ' => ['0B00000000011111111111111111111111', '0b00000000011111111111111111111111'],
4343

4444
// Octal
4545
' 0o755 ' => ['0o755', '0o755'],

0 commit comments

Comments
 (0)