Andreas Kling
c68dcf45b6
LibRegex: Convert String::format() => String::formatted()
2021-04-21 23:49:02 +02:00
AnotherTest
5a14f7ea2f
LibRegex: Generate a 'Compare' op for empty character classes
...
Otherwise it would match zero-length strings.
Fixes #6256 .
2021-04-12 08:54:58 +02:00
AnotherTest
c128b3fd91
LibRegex: Remove 'ReadDigitFollowPolicy' as it's no longer needed
...
Thanks to @GMTA: 1b071455b1 (r49343474)
2021-04-10 12:10:45 +02:00
AnotherTest
1b071455b1
LibRegex: Treat brace quantifiers with invalid contents as literals
...
Fixes #6208 .
2021-04-10 09:16:03 +02:00
AnotherTest
25d336bc27
LibRegex: Take the regex as a const reference in print_bytecode()
2021-04-10 09:16:03 +02:00
AnotherTest
e9279d1790
LibRegex: Allow a '?' suffix for brace quantifiers
...
This fixes another compat point in #6042 .
2021-04-10 09:16:03 +02:00
AnotherTest
8d7bcc2476
LibRegex: Give ByteCode a copy ctor and and a move assignment operator
...
Previously all move assignments were actually copies. oops.
2021-04-10 09:16:03 +02:00
Jelle Raaijmakers
db321db5f4
LibRegex: Parse \0
as a zero-byte instead of 0x30 ("0")
...
This was causing some regexes to trip up. Fixes #6202 .
2021-04-09 21:53:14 +02:00
AnotherTest
ade97d4094
LibRegex: Make sure there are as many group matches as actual matches
...
Fixes #6131 .
2021-04-05 09:02:06 +02:00
AnotherTest
1bdc1cf77e
LibRegex: Consider named capture groups as normal capture groups too
2021-04-05 09:02:06 +02:00
AnotherTest
be0182d049
LibRegex: Reset capture group indices when resetting parser state
2021-04-05 09:02:06 +02:00
AnotherTest
76f63c2980
LibRegex: Allocate entries for all capture groups in RegexResult
...
Not just the seen ones.
Fixes #6108 .
2021-04-04 16:04:06 +02:00
AnotherTest
0f468a5013
LibRegex: Test alternatives in the expected order
...
That is, first try to match the left side of the alternation, and then
the right side.
Fixes part of #6042 .
2021-04-01 21:55:47 +02:00
AnotherTest
6bbb26fdaf
LibRegex: Allow references to capture groups that aren't parsed yet
...
This only applies to the ECMA262 parser.
This behaviour is an ECMA262-specific quirk, such references always
generate zero-length matches (even on subsequent passes).
Also adds a test in LibJS's test suite.
Fixes #6039 .
2021-04-01 21:55:47 +02:00
Andreas Kling
ef1e5db1d0
Everywhere: Remove klog(), dbg() and purge all LogStream usage :^)
...
Good-bye LogStream. Long live AK::Format!
2021-03-12 17:29:37 +01:00
Andrew Kaster
dc6485cfcb
LibRegex: VERIFY that string builder in print_header is not null.
...
I don't know why g++ thinks this is the case with
ENABLE_ALL_DEBUG_MACROS when building for serenity. Adding an assert to
placate it seems reasonable
2021-02-28 18:19:37 +01:00
Andrew Kaster
e787738c24
Meta: Build AK and LibRegex tests in Lagom and for Serenity
...
These tests were never built for the serenity target. Move their Lagom
build steps to the Lagom CMakeLists.txt, and add serenity build steps
for them. Also, fix the build errors when building them with the
serenity cross-compiler :^)
2021-02-28 18:19:37 +01:00
AnotherTest
e0ac85288e
LibRegex: Allow missing high bound in {x,y} quantifiers
...
Fixes #5518 .
2021-02-27 07:31:01 +01:00
AnotherTest
91bf3dc7fe
LibRegex: Match the escaped part of escaped syntax characters
...
Previously, `\^` would've matched `\`, not `^`.
2021-02-27 07:31:01 +01:00
AnotherTest
f05e518cbc
LibRegex: Implement section B.1.4. of the ECMA262 spec
...
This allows the parser to deal with crazy patterns like the one
in #5517 .
2021-02-27 07:31:01 +01:00
Andreas Kling
5d180d1f99
Everywhere: Rename ASSERT => VERIFY
...
(...and ASSERT_NOT_REACHED => VERIFY_NOT_REACHED)
Since all of these checks are done in release builds as well,
let's rename them to VERIFY to prevent confusion, as everyone is
used to assertions being compiled out in release.
We can introduce a new ASSERT macro that is specifically for debug
checks, but I'm doing this wholesale conversion first since we've
accumulated thousands of these already, and it's not immediately
obvious which ones are suitable for ASSERT.
2021-02-23 20:56:54 +01:00
AnotherTest
09a43969ba
Everywhere: Replace dbgln<flag>(...) with dbgln_if(flag, ...)
...
Replacement made by `find Kernel Userland -name '*.h' -o -name '*.cpp' | sed -i -Ee 's/dbgln\b<(\w+)>\(/dbgln_if(\1, /g'`
2021-02-08 18:08:55 +01:00
asynts
8465683dcf
Everywhere: Debug macros instead of constexpr.
...
This was done with the following script:
find . \( -name '*.cpp' -o -name '*.h' -o -name '*.in' \) -not -path './Toolchain/*' -not -path './Build/*' -exec sed -i -E 's/dbgln<debug_([a-z_]+)>/dbgln<\U\1_DEBUG>/' {} \;
find . \( -name '*.cpp' -o -name '*.h' -o -name '*.in' \) -not -path './Toolchain/*' -not -path './Build/*' -exec sed -i -E 's/if constexpr \(debug_([a-z0-9_]+)/if constexpr \(\U\1_DEBUG/' {} \;
2021-01-25 09:47:36 +01:00
asynts
1a3a0836c0
Everywhere: Use CMake to generate AK/Debug.h.
...
This was done with the help of several scripts, I dump them here to
easily find them later:
awk '/#ifdef/ { print "#cmakedefine01 "$2 }' AK/Debug.h.in
for debug_macro in $(awk '/#ifdef/ { print $2 }' AK/Debug.h.in)
do
find . \( -name '*.cpp' -o -name '*.h' -o -name '*.in' \) -not -path './Toolchain/*' -not -path './Build/*' -exec sed -i -E 's/#ifdef '$debug_macro'/#if '$debug_macro'/' {} \;
done
# Remember to remove WRAPPER_GERNERATOR_DEBUG from the list.
awk '/#cmake/ { print "set("$2" ON)" }' AK/Debug.h.in
2021-01-25 09:47:36 +01:00
asynts
5c5665c1e7
Everywhere: Replace a bundle of dbg with dbgln.
...
These changes are arbitrarily divided into multiple commits to make it
easier to find potentially introduced bugs with git bisect.
2021-01-22 22:14:30 +01:00
Linus Groh
421587c15c
Everywhere: Fix typos
2021-01-22 18:41:29 +01:00
asynts
01879d27c2
Everywhere: Replace a bundle of dbg with dbgln.
...
These changes are arbitrarily divided into multiple commits to make it
easier to find potentially introduced bugs with git bisect.
2021-01-16 11:54:35 +01:00
Andreas Kling
13d7c09125
Libraries: Move to Userland/Libraries/
2021-01-12 12:17:46 +01:00