Skip to content

Commit 7d8dc5b

Browse files
committed
Split Php Transpiler
1 parent 786e5ce commit 7d8dc5b

49 files changed

Lines changed: 2052 additions & 319 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/Definition/NumberFormat.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ public static function fromTokenType(TokenType $tokenType): self
3636
return match ($tokenType) {
3737
TokenType::NUMBER_BINARY => self::BINARY,
3838
TokenType::NUMBER_OCTAL => self::OCTAL,
39-
TokenType::NUMBER_DECIMAL => self::DECIMAL,
39+
TokenType::NUMBER_DECIMAL,
40+
TokenType::PERIOD => self::DECIMAL,
4041
TokenType::NUMBER_HEXADECIMAL => self::HEXADECIMAL,
4142

4243
default => throw new \Exception('@TODO: Unknown Number Format: ' . $tokenType->value)

src/Parser/Ast/AttributeNode.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222

2323
namespace PackageFactory\ComponentEngine\Parser\Ast;
2424

25+
use PackageFactory\ComponentEngine\Parser\Source\Source;
2526
use PackageFactory\ComponentEngine\Parser\Tokenizer\Scanner;
2627
use PackageFactory\ComponentEngine\Parser\Tokenizer\Token;
28+
use PackageFactory\ComponentEngine\Parser\Tokenizer\Tokenizer;
2729
use PackageFactory\ComponentEngine\Parser\Tokenizer\TokenType;
2830

2931
final class AttributeNode implements \JsonSerializable
@@ -34,6 +36,15 @@ private function __construct(
3436
) {
3537
}
3638

39+
public static function fromString(string $attributeAsString): self
40+
{
41+
return self::fromTokens(
42+
Tokenizer::fromSource(
43+
Source::fromString($attributeAsString)
44+
)->getIterator()
45+
);
46+
}
47+
3748
/**
3849
* @param \Iterator<mixed,Token> $tokens
3950
* @return self

src/Parser/Ast/EnumDeclarationNode.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222

2323
namespace PackageFactory\ComponentEngine\Parser\Ast;
2424

25+
use PackageFactory\ComponentEngine\Parser\Source\Source;
2526
use PackageFactory\ComponentEngine\Parser\Tokenizer\Scanner;
2627
use PackageFactory\ComponentEngine\Parser\Tokenizer\Token;
28+
use PackageFactory\ComponentEngine\Parser\Tokenizer\Tokenizer;
2729
use PackageFactory\ComponentEngine\Parser\Tokenizer\TokenType;
2830

2931
final class EnumDeclarationNode implements \JsonSerializable
@@ -34,6 +36,15 @@ private function __construct(
3436
) {
3537
}
3638

39+
public static function fromString(string $enumDeclarationAsString): self
40+
{
41+
return self::fromTokens(
42+
Tokenizer::fromSource(
43+
Source::fromString($enumDeclarationAsString)
44+
)->getIterator()
45+
);
46+
}
47+
3748
/**
3849
* @param \Iterator<mixed,Token> $tokens
3950
* @return self

src/Parser/Ast/ExpressionNode.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ public static function fromTokens(\Iterator $tokens, Precedence $precedence = Pr
8686
case TokenType::NUMBER_OCTAL:
8787
case TokenType::NUMBER_DECIMAL:
8888
case TokenType::NUMBER_HEXADECIMAL:
89+
case TokenType::PERIOD:
8990
$root = NumberLiteralNode::fromTokens($tokens);
9091
break;
9192
case TokenType::KEYWORD_TRUE:

src/Parser/Ast/IdentifierNode.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222

2323
namespace PackageFactory\ComponentEngine\Parser\Ast;
2424

25+
use PackageFactory\ComponentEngine\Parser\Source\Source;
2526
use PackageFactory\ComponentEngine\Parser\Tokenizer\Scanner;
2627
use PackageFactory\ComponentEngine\Parser\Tokenizer\Token;
28+
use PackageFactory\ComponentEngine\Parser\Tokenizer\Tokenizer;
2729
use PackageFactory\ComponentEngine\Parser\Tokenizer\TokenType;
2830

2931
final class IdentifierNode implements \JsonSerializable
@@ -33,6 +35,15 @@ private function __construct(
3335
) {
3436
}
3537

38+
public static function fromString(string $identifierAsString): self
39+
{
40+
return self::fromTokens(
41+
Tokenizer::fromSource(
42+
Source::fromString($identifierAsString)
43+
)->getIterator()
44+
);
45+
}
46+
3647
/**
3748
* @param \Iterator<mixed,Token> $tokens
3849
* @return self

src/Parser/Ast/ModuleNode.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222

2323
namespace PackageFactory\ComponentEngine\Parser\Ast;
2424

25+
use PackageFactory\ComponentEngine\Parser\Source\Source;
2526
use PackageFactory\ComponentEngine\Parser\Tokenizer\TokenType;
2627
use PackageFactory\ComponentEngine\Parser\Tokenizer\Scanner;
2728
use PackageFactory\ComponentEngine\Parser\Tokenizer\Token;
29+
use PackageFactory\ComponentEngine\Parser\Tokenizer\Tokenizer;
2830

2931
final class ModuleNode implements \JsonSerializable
3032
{
@@ -34,6 +36,15 @@ private function __construct(
3436
) {
3537
}
3638

39+
public static function fromString(string $moduleAsString): self
40+
{
41+
return self::fromTokens(
42+
Tokenizer::fromSource(
43+
Source::fromString($moduleAsString)
44+
)->getIterator()
45+
);
46+
}
47+
3748
/**
3849
* @param \Iterator<mixed,Token> $tokens
3950
* @return self

src/Parser/Ast/NumberLiteralNode.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
use PackageFactory\ComponentEngine\Definition\NumberFormat;
2626
use PackageFactory\ComponentEngine\Parser\Tokenizer\Scanner;
2727
use PackageFactory\ComponentEngine\Parser\Tokenizer\Token;
28-
use PackageFactory\ComponentEngine\Type\Primitive\NumberType;
2928

3029
final class NumberLiteralNode implements \JsonSerializable
3130
{
@@ -52,11 +51,6 @@ public static function fromTokens(\Iterator $tokens): self
5251
);
5352
}
5453

55-
public function toType(): NumberType
56-
{
57-
return NumberType::create();
58-
}
59-
6054
public function jsonSerialize(): mixed
6155
{
6256
return [

src/Parser/Ast/StringLiteralNode.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222

2323
namespace PackageFactory\ComponentEngine\Parser\Ast;
2424

25+
use PackageFactory\ComponentEngine\Parser\Source\Source;
2526
use PackageFactory\ComponentEngine\Parser\Tokenizer\Scanner;
2627
use PackageFactory\ComponentEngine\Parser\Tokenizer\Token;
28+
use PackageFactory\ComponentEngine\Parser\Tokenizer\Tokenizer;
2729
use PackageFactory\ComponentEngine\Parser\Tokenizer\TokenType;
2830

2931
final class StringLiteralNode implements \JsonSerializable
@@ -33,6 +35,15 @@ private function __construct(
3335
) {
3436
}
3537

38+
public static function fromString(string $stringLiteralAsString): self
39+
{
40+
return self::fromTokens(
41+
Tokenizer::fromSource(
42+
Source::fromString($stringLiteralAsString)
43+
)->getIterator()
44+
);
45+
}
46+
3647
/**
3748
* @param \Iterator<mixed,Token> $tokens
3849
* @return self

src/Parser/Ast/StructDeclarationNode.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222

2323
namespace PackageFactory\ComponentEngine\Parser\Ast;
2424

25+
use PackageFactory\ComponentEngine\Parser\Source\Source;
2526
use PackageFactory\ComponentEngine\Parser\Tokenizer\Scanner;
2627
use PackageFactory\ComponentEngine\Parser\Tokenizer\Token;
28+
use PackageFactory\ComponentEngine\Parser\Tokenizer\Tokenizer;
2729
use PackageFactory\ComponentEngine\Parser\Tokenizer\TokenType;
2830

2931
final class StructDeclarationNode implements \JsonSerializable
@@ -34,6 +36,15 @@ private function __construct(
3436
) {
3537
}
3638

39+
public static function fromString(string $structDeclarationAsString): self
40+
{
41+
return self::fromTokens(
42+
Tokenizer::fromSource(
43+
Source::fromString($structDeclarationAsString)
44+
)->getIterator()
45+
);
46+
}
47+
3748
/**
3849
* @param \Iterator<mixed,Token> $tokens
3950
* @return self

src/Parser/Ast/TagContentNode.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ private function __construct(
3939
*/
4040
public static function fromTokens(\Iterator $tokens): ?self
4141
{
42-
Scanner::skipSpaceAndComments($tokens);
43-
4442
switch (Scanner::type($tokens)) {
4543
case TokenType::TAG_START_OPENING:
4644
$result = TagNode::fromTokens($tokens);

0 commit comments

Comments
 (0)