Commit Graph

119 Commits

Author SHA1 Message Date
Saif Eddin Gmati
89866d952c
chore: allow soft reserved keywords to be used as function names (#185)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-09 07:57:02 +01:00
Ryan Chandler
78479f5861
lexer: dont consume close tags in single line comments 2022-12-09 02:06:15 +00:00
Ryan Chandler
54e2e4f8b7
parser: handle close tag at top-level 2022-12-09 01:54:01 +00:00
Ryan Chandler
825577d18d
fix: better heredoc/nowdoc implementation (#183) 2022-12-09 01:44:20 +00:00
Saif Eddin Gmati
bd2023c3c4
chore: remove fallback expression parser (#181)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-08 21:34:16 +01:00
Ryan Chandler
00834ed3ff
parser: support blockless statements
Closes #33.
2022-12-08 19:32:13 +00:00
azjezz
2db9d4641b
chore: add true, false, and null as reserved keywords
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-08 18:59:35 +01:00
Saif Eddin Gmati
4d0cd75fa9
fix: fix parsing by_ref parameters (#179)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-08 18:07:03 +01:00
Saif Eddin Gmati
e74d0ec18e
chore: refactor expression parser to avoid stack overflow issue (#177)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-08 15:49:54 +01:00
azjezz
ad0623ed20
chore: remove Parser structure
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-07 23:11:37 +01:00
azjezz
8de571f97f
fix: don't allow static, parent, and self as expressions
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-07 21:00:35 +01:00
Ryan Chandler
aaafc612de
parser: move array item logic into separate fn 2022-12-07 17:33:37 +00:00
Saif Eddin Gmati
ab55a334d5
chore: inline some functions (#176) 2022-12-07 17:15:40 +00:00
Saif Eddin Gmati
39f5821b08
chore: start moving toward using functions (#175) 2022-12-07 16:59:10 +00:00
Saif Eddin Gmati
a776f0a045
chore: split control flow statements, and array expressions parsers to their own functions (#174)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-07 17:05:22 +01:00
Saif Eddin Gmati
52b60e11f8
chore: separate source from state (#173)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-07 16:58:59 +01:00
azjezz
972fbfa046
chore: fix tests
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-07 09:01:54 +01:00
Ryan Chandler
3ae4555d81
chore: fmt 2022-12-07 01:02:04 +00:00
Ryan Chandler
054b10667b
parser: support bodyless while statements 2022-12-07 00:38:05 +00:00
Ryan Chandler
897a2a0131
parser: support one-liner if statements 2022-12-07 00:34:34 +00:00
Ryan Chandler
12c7c14c39
parser: support bodyless else statements 2022-12-07 00:28:30 +00:00
Ryan Chandler
e7c83fe768
feature: allow opening / closing tags in middle of scripting code (#172) 2022-12-07 00:20:11 +00:00
Ryan Chandler
f17fd22cdb
fix: store integers and floats as ByteStrings with notation (#170) 2022-12-06 18:13:45 +00:00
Ryan Chandler
d85b682d4f
fix: allow self/parent as identifier 2022-12-06 16:55:34 +00:00
Ryan Chandler
72f2588509
chore: fmt 2022-12-06 15:41:24 +00:00
Ryan Chandler
7d153443f6
lexer&parser: make self and parent dedicated token kinds (#169) 2022-12-06 15:41:09 +00:00
Ryan Chandler
07b7cf9104
parser: disallow using positional arguments after named arguments (#168) 2022-12-06 15:40:58 +00:00
Saif Eddin Gmati
34b9f80e46
chore: avoid cloning tokens (#166)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-06 14:05:20 +01:00
Saif Eddin Gmati
452592b8fe
chore: small perf improvements for the lexer (#165)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-06 12:47:27 +01:00
Saif Eddin Gmati
a3e0614f30
chore: small changes regarding node span (#164) 2022-12-06 11:54:12 +01:00
Ryan Chandler
7750ed39e6
feature: add support for list expressions (#163) 2022-12-06 10:31:40 +00:00
azjezz
eed02aa4e2
chore: finish refactoring flags -> modifiers, and fix end span for functions and enums
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-06 09:51:13 +01:00
Saif Eddin Gmati
9a2a903fb9
chore: refactor ast (#162)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-06 09:33:29 +01:00
Ryan Chandler
2020c66cd8
lexer: fix escape sequences creating separate idents 2022-12-05 19:40:33 +00:00
Ryan Chandler
010fe7be26
lexer: use Err type for unrecognised tokens instead of unimplemented 2022-12-05 19:28:19 +00:00
Ryan Chandler
ae2f617700
chore: skip some comments 2022-12-05 19:25:40 +00:00
azjezz
c25fe105f9
chore: fix readme code
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-05 20:17:21 +01:00
azjezz
59fc4af394
fix: allow static closures to use self/static/parent types if they are within class scope
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-05 19:59:50 +01:00
azjezz
f92b8c4c73
fix improve dnf types parser
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-05 19:46:21 +01:00
Saif Eddin Gmati
b152b0e961
feat: keep track of variable and identifier positions (#160) 2022-12-05 17:53:41 +01:00
Ryan Chandler
26a856e8ec
parser: skip comments in param list 2022-12-05 14:50:19 +00:00
Saif Eddin Gmati
3b196ae496
feat: group attributes and keep track of their position (#158)
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-05 15:14:20 +01:00
Ryan Chandler
c6a18d3950
chore: format 2022-12-05 14:05:07 +00:00
Ryan Chandler
b73c7ea9d1
fix: allow using semi reserved ident as argument name 2022-12-05 14:01:34 +00:00
Ryan Chandler
b1f10231e0
parser: allow passing array items by ref 2022-12-05 13:55:35 +00:00
Ryan Chandler
5815f65737
fix: various bits 2022-12-05 13:46:48 +00:00
Ryan Chandler
4c8c117114
chore: typo 2022-12-05 13:42:34 +00:00
azjezz
45ab4cc955
chore: format integration tests
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-05 13:46:08 +01:00
azjezz
7ab417c801
fix: formatting
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-12-05 13:37:05 +01:00
Ryan Chandler
4b73900b59
lexer: fix comment tokenization skipping next character 2022-12-05 12:23:31 +00:00