From c6a79be33f246ea281ba3bcf8c54cdaf8beaaff8 Mon Sep 17 00:00:00 2001 From: Max Sagebaum Date: Tue, 12 Nov 2024 12:45:07 +0100 Subject: [PATCH] Updates for clang. --- .../pure2-regex_04_start_end.cpp.execution | 1 + .../pure2-regex_19_lookahead.cpp.execution | 10 ++++++++++ .../pure2-regex_21_atomic_patterns.cpp.execution | 8 ++++++++ source/reflect.h | 2 +- source/reflect.h2 | 2 +- 5 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 regression-tests/test-results/clang-18-c++20/pure2-regex_21_atomic_patterns.cpp.execution diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_04_start_end.cpp.execution index 6fef36434a..a1e2b9b631 100644 --- a/regression-tests/test-results/clang-18-c++20/pure2-regex_04_start_end.cpp.execution +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_04_start_end.cpp.execution @@ -8,4 +8,5 @@ Running tests_04_start_end: 07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results 08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results 09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - +10_n: OK regex: \GX.*X parsed_regex: \GX.*X str: aaaXbX result_expr: - expected_results - diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_19_lookahead.cpp.execution index d4c65d951e..0f723eb774 100644 --- a/regression-tests/test-results/clang-18-c++20/pure2-regex_19_lookahead.cpp.execution +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_19_lookahead.cpp.execution @@ -27,6 +27,14 @@ Running tests_19_lookahead: 26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa 27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc 28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +29_y: OK regex: (?=foo) parsed_regex: (?=foo) str: foo result_expr: @+ expected_results 0 +30_y: OK regex: (?=foo) parsed_regex: (?=foo) str: XfooY result_expr: @+ expected_results 1 +31_y: OK regex: .*(?=foo) parsed_regex: .*(?=foo) str: XfooY result_expr: @+ expected_results 1 +32_y: OK regex: (?=.*P)P parsed_regex: (?=.*P)P str: aP result_expr: @+ expected_results 2 +33_y: OK regex: X(?=foo)f parsed_regex: X(?=foo)f str: ..XfooY.. result_expr: @+ expected_results 4 +34_y: OK regex: X(?=foo) parsed_regex: X(?=foo) str: ..XfooY.. result_expr: @+ expected_results 3 +35_y: OK regex: (?=XY*foo) parsed_regex: (?=XY*foo) str: Xfoo result_expr: @+ expected_results 0 +36_y: OK regex: ^(?=XY*foo) parsed_regex: ^(?=XY*foo) str: Xfoo result_expr: @+ expected_results 0 37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] 38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab 39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a\nxb\n result_expr: - expected_results - @@ -44,4 +52,6 @@ Running tests_19_lookahead: 51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a\nb\nc\n result_expr: $1:$& expected_results b\n:b\nc 52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a\nb\nc\n result_expr: $1:$& expected_results b\n:b\nc 53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - +54_y: OK regex: (?)foo parsed_regex: (?)foo str: bar>ABCfoo result_expr: $& expected_results foo +55_y: OK regex: (?ABC)foo parsed_regex: (?ABC)foo str: bar>ABCfoo result_expr: $& expected_results ABCfoo diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_21_atomic_patterns.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_21_atomic_patterns.cpp.execution new file mode 100644 index 0000000000..4812cfbb85 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_21_atomic_patterns.cpp.execution @@ -0,0 +1,8 @@ +Running tests_21_atomic_patterns: +01_y: OK regex: (?>a+)b parsed_regex: (?>a+)b str: aaab result_expr: - expected_results - +02_y: OK regex: ((?>a+)b) parsed_regex: ((?>a+)b) str: aaab result_expr: $1 expected_results aaab +03_y: OK regex: (?>(a+))b parsed_regex: (?>(a+))b str: aaab result_expr: $1 expected_results aaa +04_y: OK regex: ((?>[^()]+)|\([^()]*\))+ parsed_regex: ((?>[^()]+)|\([^()]*\))+ str: ((abc(ade)ufh()()x result_expr: $& expected_results abc(ade)ufh()()x +05_y: OK regex: round\(((?>[^()]+))\) parsed_regex: round\(((?>[^()]+))\) str: _I(round(xs * sz),1) result_expr: $1 expected_results xs * sz +06_y: OK regex: ^((?>(?:aa)?b)?) parsed_regex: ^((?>(?:aa)?b)?) str: aab result_expr: $1 expected_results aab + diff --git a/source/reflect.h b/source/reflect.h index c9f727620b..8f629c318a 100644 --- a/source/reflect.h +++ b/source/reflect.h @@ -4955,7 +4955,7 @@ size_t i{0}; (*cpp2::impl::assert_not_null(r)).set_string("(" + cpp2::to_string(syntax) + cpp2::to_string((*cpp2::impl::assert_not_null((*cpp2::impl::assert_not_null(r)).inner)).to_string()) + ")"); if (!(lookahead)) { - (*cpp2::impl::assert_not_null(r)).inner = CPP2_UFCS(reverse)((*cpp2::impl::assert_not_null((*cpp2::impl::assert_not_null(r)).inner))); + (*cpp2::impl::assert_not_null(r)).inner = (*cpp2::impl::assert_not_null((*cpp2::impl::assert_not_null(r)).inner)).reverse(); } return r; diff --git a/source/reflect.h2 b/source/reflect.h2 index 1146da54d6..94752f843f 100644 --- a/source/reflect.h2 +++ b/source/reflect.h2 @@ -3145,7 +3145,7 @@ group_token: @polymorphic_base type = r*..set_string("((syntax)$(r*.inner*..to_string())$)"); if !lookahead { - r*.inner = r*.inner*.reverse(); + r*.inner = r*.inner*..reverse(); } return r;