polserver/testsuite/escript/string
Kevin Eady 5cf6949ea7
Add support for regular expressions (#818)
* implementation

* tests

* maybe fix windows compilation?

* undo change of match_flag_type

* switch to boost regex

* move flags to BRegExp object

* fix tests due to cmake 4 update

* update grammar

* update prettifier

* move flag parsing to BRegExp ctor

* add AST nodes, update instr generation and execution

* copy tests but use regular expression literals

* fix grammar for handling division correctly

* modify return values a bit, update tests
- string.match: make groups hold structs of matched, offset
- string.match: add offset
- string.replace: use a groups array like string.match vs individual arguments

* bundle of changes

- standardize error messages
- add more tests for coverage
- move BRegExp creation to static method:  previous implementation had
  ctor throwing, which was no good inside executor since it didn't have
  a try/catch

* more tests; add OT_REGEXP to basic.em

* move string regex stuff to bregexp and support regex/wregex via std::visit

* maybe fix compilation errors?

* add unicode escape sequence handling

* really maybe fix compilation error?

* fix compiler warnings

* refactor a bit to remove duplicate code

* address discord comments
- just return wstring, no need for vector<wchar_t> method

* Add string.split by string and regexp

* Use Max_Split instead of Limit
This makes it match basic::SplitWords

* add support for empty string delim in SplitWords

* remove duplicate code across string.split and mf_SplitWords

* Squashed commit of the following:

commit b3148e069f
Author: turleypol <turley@polserver.com>
Date:   Sat Sep 27 17:02:22 2025 +0200

    memorylocation of input string is not allowed to changed, switched back
    to uniqueptr

commit 5a4d1c8fcb
Author: turleypol <turley@polserver.com>
Date:   Sat Sep 27 10:18:01 2025 +0200

    no need to use ptr for input

commit 90fa0edc66
Author: turleypol <turley@polserver.com>
Date:   Sat Sep 27 09:56:29 2025 +0200

    fixed typo

commit bed4ff3ac9
Author: turleypol <turley@polserver.com>
Date:   Sat Sep 27 09:47:36 2025 +0200

    make Callback for BContinuation move only

* use uninit when group isn't matched

* fix multiline flag handling; add test

* add docs and doc example tests

* some cleanup

* address review comments
- allow move assignment

* add core-changes
2025-11-17 18:02:45 +01:00
..
string01.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string01.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string02.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string02.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string03.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string03.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string04.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string04.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string05.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string05.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string06.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string06.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string07.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string07.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string08.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string08.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string09.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string09.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string10.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string10.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string11.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string11.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string12.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string12.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string13.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string13.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string14.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string14.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string15.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string15.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string16.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string16.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string17.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string17.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string18.out Unit Tests: putting some orde rin escript unit tests 2015-12-19 02:31:08 +01:00
string18.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string19.out Unit tests: adding escript tests for new \xFF escape sequence 2015-12-19 03:09:09 +01:00
string19.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string20.out Tests: re-added string20, support multiple runs 2016-01-25 02:26:54 +01:00
string20.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string21.out fixed crash in str.format when invalid param index is given (#307) 2020-09-13 11:38:17 +02:00
string21.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string22.out Fix escape sequences, double-slash in strings (#368) 2021-02-22 21:20:55 +01:00
string22.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string23.out Undo breakage caused by multiline strings (#375) 2021-02-26 22:59:55 +01:00
string23.src Format testsuite scripts, pol-core support modules (#713) 2024-10-04 10:29:55 +02:00
string24.out Add support for regular expressions (#818) 2025-11-17 18:02:45 +01:00
string24.src Add support for regular expressions (#818) 2025-11-17 18:02:45 +01:00