Commit Graph

250 Commits

Author SHA1 Message Date
Ryan Chandler
dd3673ea3e
feature: basic PoC for compiling PHP to a Go-based runtime and custom IR 2022-09-02 23:38:05 +01:00
Ryan Chandler
7134db9472
wip 2022-09-01 15:52:19 +01:00
Ryan Chandler
aa2a6c8507
parser: Visitor trait for traversal 2022-08-22 19:05:06 +01:00
Ryan Chandler
241eca2fb4
compiler: init 2022-08-11 17:20:00 +01:00
Ryan Chandler
0531ed39b9
phpast: goodbye 2022-08-11 17:14:31 +01:00
Ryan Chandler
a2cad0b630
parser: README 2022-08-11 14:54:32 +01:00
Ryan Chandler
cdeb92ac30
phpast: opt-in printing out AST 2022-08-10 00:51:06 +01:00
Ryan Chandler
0627e05642
parser: support /= 2022-08-10 00:50:04 +01:00
Ryan Chandler
a83f1b80bb
parser: support double/float cast 2022-08-10 00:46:27 +01:00
Ryan Chandler
5a44de9650
parser: support int cast 2022-08-10 00:41:35 +01:00
Ryan Chandler
976e303a8a
parser: skip comments in expect macro 2022-08-10 00:39:41 +01:00
Ryan Chandler
479ed3a0eb
parser: add namespace as soft reserved 2022-08-10 00:38:00 +01:00
Ryan Chandler
ab1adb19a0
parser: skip more comments... 2022-08-10 00:37:24 +01:00
Ryan Chandler
d97e23db94
parser: support array type in class props 2022-08-10 00:35:54 +01:00
Ryan Chandler
4068931aa1
parser: support named args in new expressions 2022-08-10 00:34:22 +01:00
Ryan Chandler
cd45e0a423
parser: add support for (bool) cast 2022-08-10 00:31:00 +01:00
Ryan Chandler
25af26339e
parser: support simple variable in property and method calls 2022-08-10 00:28:58 +01:00
Ryan Chandler
efc6e7e7b9
parser: support -= op 2022-08-10 00:26:59 +01:00
Ryan Chandler
f273edc2ee
parser: add support for *= 2022-08-10 00:25:11 +01:00
Ryan Chandler
0a13a9f334
parser: support ??= ops 2022-08-10 00:23:10 +01:00
Ryan Chandler
f226316d44
parser: add support for static scope variables 2022-08-10 00:21:24 +01:00
Ryan Chandler
e7e4a361d5
parser: support promoted properties in methods 2022-08-09 21:33:42 +01:00
Ryan Chandler
fa7472f616
parser: allow fqn and qualified names in extends & implements 2022-08-09 21:28:43 +01:00
Ryan Chandler
874e59d270
parser: support nullsafe property fetch 2022-08-09 21:27:07 +01:00
Ryan Chandler
489cb0e884
lexer: produce nullsafe -> tokens 2022-08-09 21:23:47 +01:00
Ryan Chandler
529bc6f40f
parser: allow static as type 2022-08-09 21:19:03 +01:00
Ryan Chandler
7ff2cb2c80
parser: skip comments in even more places 2022-08-09 21:16:24 +01:00
Ryan Chandler
a76b8d54ef
parser: skip some more comments 2022-08-09 21:02:36 +01:00
Ryan Chandler
6ac532becb
parser: skip comments in more places for now 2022-08-09 21:01:29 +01:00
Ryan Chandler
0faf161ed9
parser: support splatting args into method call and dynamic property/method calls 2022-08-09 20:57:55 +01:00
Ryan Chandler
e4ad01c545
parser: support while statements 2022-08-09 20:32:49 +01:00
Ryan Chandler
18919dc235
parser: support named arguments 2022-08-09 14:16:09 +01:00
Ryan Chandler
af2b8fc5eb
parser: support method calls on static 2022-08-09 12:07:09 +01:00
Ryan Chandler
ef1ccd7bda
parser: bodge comments between expressions 2022-08-09 12:03:16 +01:00
Ryan Chandler
2fb879b763
parser: support short-hand ternaries 2022-08-09 12:00:35 +01:00
Ryan Chandler
0ae93c2ea1
lexer: produce shorthand ternary tokens 2022-08-09 11:58:22 +01:00
Ryan Chandler
dc4cb10ac3
parser: add match as soft reserved keyword 2022-08-09 11:56:23 +01:00
Ryan Chandler
e8fe61e430
parser: add default and enum as soft reserved keywords 2022-08-09 11:55:42 +01:00
Ryan Chandler
5309451588
parser: allow using array & callable at type strings 2022-08-09 11:54:47 +01:00
Ryan Chandler
626af3e31c
parser: bodge comments by skipping them in classes 2022-08-09 11:50:35 +01:00
Ryan Chandler
5e6f976f29
parser: support object cast prefix ops 2022-08-09 11:49:06 +01:00
Ryan Chandler
40c52a6e69
lexer: produce object cast tokens 2022-08-09 11:49:00 +01:00
Ryan Chandler
72e744c4ad
parser: support taking foreach value vars by ref 2022-08-09 11:46:28 +01:00
Ryan Chandler
c2cacd4e95
lexer: allow numeric characters in variables after 1st alphabetic/underscore char 2022-08-09 11:43:27 +01:00
Ryan Chandler
698aef1afc
parser: support using closure args by ref 2022-08-09 11:39:40 +01:00
Ryan Chandler
4aa3b3af6b
parser: support concat assign op 2022-08-09 11:35:19 +01:00
Ryan Chandler
e17d66e2d8
parser: roughly support inc/dec postfix ops 2022-08-09 11:33:19 +01:00
Ryan Chandler
983c6edbd3
lexer: allow numeric characters in identifiers 2022-08-09 11:31:23 +01:00
Ryan Chandler
18a841e591
all: clippy 2022-08-09 00:54:04 +01:00
Ryan Chandler
223018ef5f
parser: add support for prefix cast ops 2022-08-09 00:51:03 +01:00