Commit Graph

73 Commits

Author SHA1 Message Date
9b88dee9ef node: implement func_get_contents 2020-04-16 18:56:11 +12:00
ac093a05a3 node: add a common arityErr{} 2020-04-16 18:56:03 +12:00
c29a4894ce node: simplify some substr->slice expressions 2020-04-16 18:55:27 +12:00
23e06f517c node: implement var_dump, var_export, print_r, max, min, floor, substr, rename 2020-04-16 18:38:38 +12:00
a839ceaf30 node: add heuristic for breaking array/map literals onto multiple lines 2020-04-16 18:38:21 +12:00
fd59ff9bb4 node: better handling for unquoting heredoc fragments 2020-04-16 18:38:05 +12:00
fe654d70cc node: fix whitespace in generated comments 2020-04-16 18:37:27 +12:00
e95a5a1162 node: prototype of regularising the parse emission context 2020-04-15 19:09:20 +12:00
979049ae42 node: implement float literals 2020-04-15 19:09:20 +12:00
9253058a73 node: add bailout cases for eval() and extract() 2020-04-15 19:09:05 +12:00
78bd54ad13 node: implement switch, break, continue (basic) 2020-04-12 14:41:33 +12:00
cbcfb46de7 node: fix node.Identifier appearing outside of resolveName() calls 2020-04-12 14:41:08 +12:00
8af07570cd node: implement UnaryPlus/UnaryMinus 2020-04-12 14:40:57 +12:00
3c76a68843 node: convert comments to /* */ format, to fix non-statement contexts 2020-04-12 14:40:46 +12:00
df0061041f node: implement heredocs + string interpolation 2020-04-12 14:40:19 +12:00
5ba0185bcb node: use multiline quoting logic consistently in all places 2020-04-12 14:39:38 +12:00
f6362c4ebf node: implement sprintf, trim, rtrim, ltrim, strtolower, strtoupper, file_put_contents, str_replace 2020-04-11 13:11:39 +12:00
1188a769ce node: fix panic in explode/implode parameter reordering 2020-04-11 13:11:07 +12:00
b2ef112f50 node: implement shorthand assignment operators, callable rvalues 2020-04-11 12:51:09 +12:00
86266ae676 gotype: initial commit of Go type abstraction 2020-04-11 12:49:08 +12:00
71a4efbbda node: elide some more parens in assignment expressions 2020-04-11 12:47:37 +12:00
5105293ce6 node: basic support for *expr.Closure 2020-04-11 12:46:28 +12:00
6b8d4d879a node: handle trailing commas in array literals 2020-04-11 12:45:26 +12:00
48f3014429 node: add more diagnostics for mixed array/map literals 2020-04-11 12:45:05 +12:00
d3d3d34116 node: emit static ::class as class name string literal 2020-04-11 12:44:37 +12:00
7461bfe187 node: convert use of strlen/cound/sizeof/explode/implode 2020-04-10 20:08:40 +12:00
92abcfe5b9 node: implement *expr.Ternary (a hoisting pass would be better) 2020-04-10 20:08:15 +12:00
ce3cd1065d node: implement *expr.BooleanNot 2020-04-10 20:07:57 +12:00
199654f552 node: make sure transferred comments do not comment out legitimate source lines(!) 2020-04-10 20:07:45 +12:00
8986937340 node/error: handle the case where no position is available for inner node 2020-04-10 16:20:38 +12:00
f1b7f301cc stmt/if: collapse else if from else(if( into elseif( 2020-04-10 11:23:37 +12:00
72b8da5e4a stmt/if: fix generated else on newline causing parse error 2020-04-10 11:23:08 +12:00
91e39e7e2f node: elide some extra parentheses for commutative binary ops (plus/concat) 2020-04-09 19:40:18 +12:00
314d65a459 node: support magic __FILE__, __LINE__ etc constants 2020-04-09 19:39:23 +12:00
0dfabadcf2 node: remove outdated FIXME comment 2020-04-09 19:39:06 +12:00
4f86ec11e7 node: transform null->nil; normalise case for true/false 2020-04-08 20:33:53 +12:00
fc41691e4a node: rename ret variable 2020-04-08 20:33:37 +12:00
c580f8a8e1 node: remove unlikely check for rvalue super() calls 2020-04-08 20:24:59 +12:00
750bfd9bb2 node: support define() 2020-04-08 20:24:44 +12:00
142e26bbfe node: support const and class const 2020-04-08 20:24:36 +12:00
885d100fbf node: implement stmt.ConstList 2020-04-08 20:02:30 +12:00
51ca4ecd77 node: fix issue with lvalue err ordering 2020-04-08 19:58:56 +12:00
760d1ddbbd node: elide parentheses in some cases 2020-04-08 19:58:35 +12:00
334db21fd6 node: support die() 2020-04-08 19:58:09 +12:00
daf5000404 node: support namespace, support tracking package imports 2020-04-08 19:57:59 +12:00
c52acb7249 node/try-catch: group err vars; simplify names; treat Exception as base case 2020-04-07 23:26:44 +12:00
e9aa553216 stmt: propagate err checks to top-level function calls and assignment calls 2020-04-07 23:25:43 +12:00
52ccea5d65 node: initial try/catch support, track the error handler (WIP) 2020-04-07 22:52:42 +12:00
0d7024dbee node: remove throw "" -> errors.New("") transform, as PHP cannot throw scalars 2020-04-07 22:52:12 +12:00
d6cd0e8191 node: parse and requote php single-quoted strings 2020-04-07 22:51:31 +12:00