Skip to content

Commit 2c53bc8

Browse files
authored
Merge pull request #3 from preprocess/feature/new-sigil
New sigil
2 parents 005655e + f6e6a0d commit 2c53bc8

File tree

4 files changed

+38
-43
lines changed

4 files changed

+38
-43
lines changed

composer.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"name": "pre/deferred",
44
"license": "MIT",
55
"require": {
6-
"pre/plugin": "^0.10.0"
6+
"pre/plugin": "^0.11.0"
77
},
88
"autoload": {
99
"psr-4": {
@@ -14,9 +14,13 @@
1414
"phpunit/phpunit": "^5.0|^6.0"
1515
},
1616
"autoload-dev": {
17-
"files": ["tests/stubs.php"]
17+
"files": [
18+
"tests/stubs.php"
19+
]
1820
},
1921
"extra": {
20-
"macros": ["source/macros.yay"]
22+
"macros": [
23+
"source/macros.yay"
24+
]
2125
}
2226
}

source/Deferred.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44

55
final class Deferred
66
{
7-
/**
8-
* @var callable
9-
*/
107
private $deferred;
118

129
public function __construct(callable $deferred)

source/macros.yay

Lines changed: 29 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
<?php
22

3-
macro ·recursion {
4-
·chain(
3+
$(macro :recursion) {
4+
$(chain(
55
defer,
6-
·between(
7-
·token("{"), ·layer()·body, ·token("}")
6+
between(
7+
token("{"), layer() as body, token("}")
88
),
9-
·optional(·token(";")),
10-
·_()·scope,
11-
·_()·simple
12-
)
9+
optional(token(";")),
10+
_() as scope
11+
))
1312
} >> function($ast) {
1413
$bound = false;
15-
$scope = new \Yay\Ast("·scope");
14+
$scope = new \Yay\Ast("scope");
1615

1716
$pushed = [];
1817

19-
foreach ($ast->{"·body"} as $token) {
18+
foreach ($ast->{"body"} as $token) {
2019
$name = $token->value();
2120

2221
if (!$token->is(T_VARIABLE)) {
@@ -31,48 +30,43 @@ macro ·recursion {
3130
continue;
3231
}
3332

34-
$scope->push(new \Yay\Ast("·var", $token));
33+
$scope->push(new \Yay\Ast("var", $token));
3534
$pushed[$name] = true;
3635
$bound = true;
3736
}
3837

3938
if ($bound) {
4039
$ast->append($scope);
41-
} else {
42-
$simple = new \Yay\Ast("·simple");
43-
$simple->push(new \Yay\Ast());
44-
45-
$ast->append($simple);
4640
}
4741
} >> {
48-
··collapse(··trim(
49-
·scope ?·{
50-
$deferred = new \Pre\Deferred\Deferred([·scope ···(, ) { ·var = ·var ?? null}, "fn" => function () use (··trim(·scope ···(, ) {&·var})) {
51-
··trim(·body)
42+
$$(collapse($$(trim(
43+
$(scope ? {
44+
$deferred = new \Pre\Deferred\Deferred([$(scope ... (, ) {$$(trim($(var) = $(var) ?? null))}), "fn" => function () use ($(scope ... (, ) {&$(var)})) {
45+
$$(trim($(body)))
5246
}]["fn"]);
53-
}
47+
})
5448

55-
·simple ?·{
49+
$(scope ! {
5650
$deferred = new \Pre\Deferred\Deferred(function () {
57-
··trim(·body)
51+
$$(trim($(body)))
5852
});
59-
}
60-
))
53+
})
54+
))))
6155
}
6256

63-
macro ·recursion {
64-
·chain(
57+
$(macro :recursion) {
58+
$(chain(
6559
defer,
66-
·ns()·function,
67-
·between(
68-
·token("("), ·layer()·parameters, ·token(")")
60+
ns() as function,
61+
between(
62+
token("("), layer() as parameters, token(")")
6963
),
70-
·token(";")
71-
)
64+
token(";")
65+
))
7266
} >> {
73-
$deferred = ··unsafe(new \Pre\Deferred\Deferred((function (...$parameters) {
67+
$deferred = $$(unsafe(new \Pre\Deferred\Deferred((function (...$parameters) {
7468
return function () use ($parameters) {
75-
·function(...$parameters);
69+
$(function)(...$parameters);
7670
};
77-
})(·parameters)));
71+
})($(parameters)))));
7872
}

tests/specs/deferred.spec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ defer unlink("path/to/file");
22

33
~~~
44

5-
$deferred·0 = new \Pre\Deferred\Deferred((function (...$parameters) {
5+
$deferred___0 = new \Pre\Deferred\Deferred((function (...$parameters) {
66
return function () use ($parameters) {
77
unlink(...$parameters);
88
};
@@ -17,7 +17,7 @@ defer {
1717

1818
~~~
1919

20-
$deferred·0 = new \Pre\Deferred\Deferred([$handle = $handle ?? null, "fn" => function () use (&$handle) {
20+
$deferred___0 = new \Pre\Deferred\Deferred([$handle = $handle ?? null, "fn" => function () use (&$handle) {
2121
fclose($handle);
2222
print "all done";
2323
}]["fn"]);

0 commit comments

Comments
 (0)