966682546c
go mod tidy
2023-12-10 00:36:22 +01:00
65868e812d
Move repository over to git.maride.cc
2023-12-09 22:25:24 +01:00
aa809cad77
Apply out-of-bounds fix from github.com/jeremybobbin/php-parser
2023-12-09 22:17:23 +01:00
Laytan Laats
59da1fe671
test: skip failing test for now
2023-07-24 20:38:20 +02:00
Pavel Selitskas
deeda4f6a7
scanner: emit T_STRING when enum not in enum declaration context
2023-07-24 20:34:39 +02:00
Tyler Christensen
87718f9993
php8.2: do not resolve reserved names {true, false, null}
in NamespaceResolver
2023-07-18 15:32:28 +02:00
Tyler Christensen
e3aaf7bd13
php8.1: do not resolve reserved name never
in NamespaceResolver
2023-07-18 15:32:28 +02:00
Tyler Christensen
9281143091
php8: do not resolve reserved name mixed
in NamespaceResolver
2023-07-18 15:32:28 +02:00
Tyler Christensen
6855357aaa
php8.1: resolve intersection types in NamespaceResolver
2023-07-18 15:32:28 +02:00
Tyler Christensen
3c45afd848
php8: resolve union types in NamespaceResolver
2023-07-18 15:32:28 +02:00
Tyler Christensen
5baa28bb27
php8: resolve attributes in NamespaceResolver
2023-07-18 15:32:28 +02:00
Tyler Christensen
6d1eee5a79
php8: resolve enums in NamespaceResolver
2023-07-18 15:32:28 +02:00
Laytan Laats
33d9423421
chore: release v0.10.0
2023-04-17 01:37:56 +02:00
Laytan Laats
9a4744a28d
fix: start and end col not being set for names
2023-04-17 01:14:21 +02:00
Laytan Laats
307175c408
fix: typo using endcol as startcol
2023-04-17 00:06:24 +02:00
Laytan Laats
6b3673ece4
feat: expose the lexer to be used by users
2023-04-11 22:38:29 +02:00
Laytan Laats
f98b59a5f0
fix: print a newline after a doc comment, these are trimmed when parsing and cause the output to look bad
2023-04-10 02:18:02 +02:00
Laytan Laats
6a5a06a206
fix: add some boundary checks so the formatter panics less often
2023-04-10 02:17:36 +02:00
Laytan Laats
68ac672368
build: replace VKCOM import with laytan import
2023-03-31 16:50:08 +02:00
Laytan Laats
92d341cbb5
feat: generate ast.Type "enum"
2023-03-30 02:20:12 +02:00
Laytan Laats
b2e5aefaa7
chore: release v0.9.0
2023-03-26 03:13:26 +02:00
Laytan Laats
ec3527909c
refactor: remove unused function
2023-03-26 01:54:21 +01:00
Laytan Laats
7c12f73974
feat: add start column and end column to position struct
2023-03-26 01:54:00 +01:00
Laytan Laats
92019441d0
fix: use go:build tools instead of ignore so go mod tidy doesn't remove deps
2023-03-26 01:33:03 +01:00
Laytan Laats
25877adda4
feat: add enter and leave checks for traversers
...
- Improved performance (can short circuit/not continue when done)
- Backwards compatible because added interfaces
- Now generating the implementation for easier updates
2023-03-25 22:03:02 +01:00
Laytan Laats
b934f01c67
refactor: remove unused and confusing function implementations
2023-03-25 21:54:47 +01:00
Laytan Laats
3ba9118676
refactor: generate node functions instead of manual
...
Easier to update now, also more reliable (nothing to forget)
2023-03-25 21:53:52 +01:00
Laytan Laats
702cadceab
feat: bump supported version range up to 8.2
2023-03-25 16:14:23 +01:00
Laytan Laats
375ccd136d
test: add php8.2 constants in traits test
2023-03-25 16:11:37 +01:00
Laytan Laats
ce8b54eae1
test: add php8.2 true, null and false types test
2023-03-25 15:52:40 +01:00
Laytan Laats
66cc411e7c
refactor: change makefile to reflect drop of php5 and run make
2023-03-25 15:29:51 +01:00
Laytan Laats
d820a72c72
style: simplify comparison
2023-03-25 15:16:54 +01:00
Laytan Laats
67058cb58c
ci/style: add editorconfig and golangci config
2023-03-25 15:15:54 +01:00
Laytan Laats
6d6856b2a4
style: go mod tidy
2023-03-25 15:15:40 +01:00
Laytan Laats
8b15eadd15
style: go fmt
2023-03-25 15:15:30 +01:00
Laytan Laats
c4170d3955
refactor: move from deprecated io/ioutil package
2023-03-25 15:14:30 +01:00
Laytan Laats
226f7fb5f1
refactor: remove unused function lastNode
2023-03-25 15:12:21 +01:00
Laytan Laats
74a8771740
refactor: move php7 scanner into php7 package
2023-03-25 15:02:34 +01:00
Laytan Laats
a97686125d
refactor!: drop php5 support
2023-03-25 15:00:17 +01:00
Laytan Laats
ffc94c1a63
refactor: move test.php into testdata folder
2023-03-25 14:32:14 +01:00
Laytan Laats
86c10ca380
perf: reduce memory usage by reducing amt of position's created
...
The positions created were taking GB's of memory and were not being
GC'ed.
2022-09-09 00:40:11 +02:00
i582
4f5cd69ae9
cleanup
2022-06-26 03:42:25 +03:00
Makhnev Petr
67faf89b39
changelog: added v0.8.2 ( #30 )
2022-06-26 03:40:01 +03:00
i582
2d99e3a9ec
readme: updated supported PHP versions
2022-06-26 03:36:20 +03:00
Makhnev Petr
e16671724e
php8.1: added intersection types support ( #29 )
2022-06-26 03:31:29 +03:00
Makhnev Petr
7f6cd25376
php8.2: added readonly classes support ( #26 )
2022-06-26 01:18:40 +03:00
Tsygankov-Slava
3dd40d3b5a
readme: fixed cli flags ( #25 )
2022-06-25 20:09:48 +03:00
Makhnev Petr
8bfffab3ab
changelog: added v0.8.1-rc.1 ( #23 )
2021-08-09 15:26:26 +05:00
Makhnev Petr
d85f5a4816
php8: fixed a bug with #
comments ( #22 )
...
Example from issue:
```php
<?php
#
# Comment
#
$a = 100;
```
The problem with the example from the issue is that `#` is immediately followed by a line break.
And since the rule in the lexer for such comments was changed, this case was handled incorrectly.
```
(('#' ^'[') | '//') any_line* when is_not_comment_end => {
lex.ungetStr("?>")
lex.addFreeFloatingToken(tkn, token.T_COMMENT, lex.ts, lex.te)
};
```
This rule has one problem, it checks two characters at once, first for the match `#`, and
then for the mismatch `[`, which leads to the fact that in the case of an empty comment, the first
matcher will capture `#`, and the second line break (`\n`), which will lead to the fact that `any_line`
matcher will not work and will not increase the line number.
The next rule added is specifically for this case.
```
'#' newline when is_not_comment_end => {
lex.ungetStr("?>")
lex.addFreeFloatingToken(tkn, token.T_COMMENT, lex.ts, lex.te)
};
```
2021-08-02 12:37:08 +03:00
Ruud Kamphuis
d846011a9b
readme: handle parse errors in example ( #20 )
2021-08-01 22:00:01 +03:00