Skip to content

Commit 9421d21

Browse files
committed
Self-build fails, checking in current results of building reflect.h2 and cpp2regex.h2
1 parent 263e699 commit 9421d21

File tree

2 files changed

+66
-61
lines changed

2 files changed

+66
-61
lines changed

include/cpp2regex.h

+58-47
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ namespace cpp2 {
1515

1616
namespace regex {
1717

18+
template<typename CharT> using bstring = std::basic_string<CharT>;
19+
template <typename CharT> using bview = std::basic_string_view<CharT>;
20+
1821
#line 38 "cpp2regex.h2"
1922
template<typename Iter> class match_group;
2023

@@ -54,12 +57,59 @@ template<typename CharT, typename Inner> class negated_class_entry;
5457
#line 211 "cpp2regex.h2"
5558
template<typename CharT, string_util::fixed_string Name, typename Inner> class shorthand_class_entry;
5659

60+
#line 220 "cpp2regex.h2"
61+
template <typename CharT> using digits_class = named_class_entry<CharT,"digits",range_class_entry<CharT,'0','9'>>;
62+
template <typename CharT> using lower_class = named_class_entry<CharT,"lower",range_class_entry<CharT,'a','z'>>;
63+
template <typename CharT> using upper_class = named_class_entry<CharT,"upper",range_class_entry<CharT,'A','Z'>>;
64+
65+
#line 226 "cpp2regex.h2"
66+
template <typename CharT> using alnum_class = named_class_entry<CharT,"alnum",combined_class_entry<CharT,lower_class<CharT>,upper_class<CharT>,digits_class<CharT>>>;
67+
template <typename CharT> using alpha_class = named_class_entry<CharT,"alpha",combined_class_entry<CharT,lower_class<CharT>,upper_class<CharT>>>;
68+
template <typename CharT> using ascii_class = named_class_entry<CharT,"ascii",range_class_entry<CharT,'\x00','\x7F'>>;
69+
template <typename CharT> using blank_class = named_class_entry<CharT,"blank",list_class_entry<CharT,' ','\t'>>;
70+
template <typename CharT> using cntrl_class = named_class_entry<CharT,"cntrl",combined_class_entry<CharT,range_class_entry<CharT,'\x00','\x1F'>,single_class_entry<CharT,'\x7F'>>>;
71+
template <typename CharT> using graph_class = named_class_entry<CharT,"graph",range_class_entry<CharT,'\x21','\x7E'>>;
72+
template<typename CharT> using hor_space_class = named_class_entry<CharT,"hspace",list_class_entry<CharT,'\t',' '>>;
73+
template <typename CharT> using print_class = named_class_entry<CharT,"print",range_class_entry<CharT,'\x20','\x7E'>>;
74+
template <typename CharT> using punct_class = named_class_entry<CharT,"punct",list_class_entry<CharT,'[','!','"','#','$','%','&','\'','(',')','*','+',',','-','.','/',':',';','<','=','>','?','@','[','\\',']','^','_','`','{','|','}','~',']'>>;
75+
template <typename CharT> using space_class = named_class_entry<CharT,"space",list_class_entry<CharT,' ','\t','\r','\n','\v','\f'>>;
76+
template<typename CharT> using ver_space_class = named_class_entry<CharT,"vspace",list_class_entry<CharT,'\n','\v','\f','\r'>>;
77+
template <typename CharT> using word_class = named_class_entry<CharT,"word",combined_class_entry<CharT,alnum_class<CharT>,single_class_entry<CharT,'_'>>>;
78+
template <typename CharT> using xdigit_class = named_class_entry<CharT,"xdigit",combined_class_entry<CharT,range_class_entry<CharT,'A','F'>,range_class_entry<CharT,'a','f'>,digits_class<CharT>>>;
79+
80+
#line 242 "cpp2regex.h2"
81+
template <typename CharT> using short_digits_class = shorthand_class_entry<CharT,"\\d",digits_class<CharT>>;
82+
template <typename CharT> using short_hor_space_class = shorthand_class_entry<CharT,"\\h",hor_space_class<CharT>>;
83+
template <typename CharT> using short_space_class = shorthand_class_entry<CharT,"\\s",space_class<CharT>>;
84+
template<typename CharT> using short_vert_space_class = shorthand_class_entry<CharT,"\\v",ver_space_class<CharT>>;
85+
template <typename CharT> using short_word_class = shorthand_class_entry<CharT,"\\w",word_class<CharT>>;
86+
87+
template <typename CharT> using short_not_digits_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\D",digits_class<CharT>>>;
88+
template <typename CharT> using short_not_hor_space_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\H",hor_space_class<CharT>>>;
89+
template <typename CharT> using short_not_space_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\S",space_class<CharT>>>;
90+
template<typename CharT> using short_not_vert_space_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\V",ver_space_class<CharT>>>;
91+
template <typename CharT> using short_not_word_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\W",word_class<CharT>>>;
92+
5793
#line 259 "cpp2regex.h2"
5894
template<typename CharT> class alternative_token_matcher;
5995

6096
#line 337 "cpp2regex.h2"
6197
template<typename CharT, bool negate, bool case_insensitive, typename ...List> class class_token_matcher;
6298

99+
#line 397 "cpp2regex.h2"
100+
template <typename CharT, bool case_insensitive> using named_class_no_new_line = class_token_matcher<CharT,true,case_insensitive,single_class_entry<CharT,'\n'>>;
101+
template <typename CharT, bool case_insensitive> using named_class_digits = class_token_matcher<CharT,false,case_insensitive,digits_class<CharT>>;
102+
template <typename CharT, bool case_insensitive> using named_class_hor_space = class_token_matcher<CharT,false,case_insensitive,hor_space_class<CharT>>;
103+
template <typename CharT, bool case_insensitive> using named_class_space = class_token_matcher<CharT,false,case_insensitive,space_class<CharT>>;
104+
template <typename CharT, bool case_insensitive> using named_class_ver_space = class_token_matcher<CharT,false,case_insensitive,ver_space_class<CharT>>;
105+
template <typename CharT, bool case_insensitive> using named_class_word = class_token_matcher<CharT,false,case_insensitive,word_class<CharT>>;
106+
107+
template <typename CharT, bool case_insensitive> using named_class_not_digits = class_token_matcher<CharT,true,case_insensitive,digits_class<CharT>>;
108+
template <typename CharT, bool case_insensitive> using named_class_not_hor_space = class_token_matcher<CharT,true,case_insensitive,hor_space_class<CharT>>;
109+
template <typename CharT, bool case_insensitive> using named_class_not_space = class_token_matcher<CharT,true,case_insensitive,space_class<CharT>>;
110+
template <typename CharT, bool case_insensitive> using named_class_not_ver_space = class_token_matcher<CharT,true,case_insensitive,ver_space_class<CharT>>;
111+
template <typename CharT, bool case_insensitive> using named_class_not_word = class_token_matcher<CharT,true,case_insensitive,word_class<CharT>>;
112+
63113
#line 492 "cpp2regex.h2"
64114
class range_flags;
65115

@@ -104,9 +154,7 @@ namespace cpp2 {
104154

105155
namespace regex {
106156

107-
template<typename CharT> using bstring = std::basic_string<CharT>;
108-
template <typename CharT> using bview = std::basic_string_view<CharT>;
109-
157+
#line 29 "cpp2regex.h2"
110158
//-----------------------------------------------------------------------
111159
//
112160
// Helper structures for the expression matching.
@@ -335,39 +383,14 @@ template<typename CharT, string_util::fixed_string Name, typename Inner> class s
335383
#line 218 "cpp2regex.h2"
336384
// Named basic character classes
337385
//
338-
template <typename CharT> using digits_class = named_class_entry<CharT,"digits",range_class_entry<CharT,'0','9'>>;
339-
template <typename CharT> using lower_class = named_class_entry<CharT,"lower",range_class_entry<CharT,'a','z'>>;
340-
template <typename CharT> using upper_class = named_class_entry<CharT,"upper",range_class_entry<CharT,'A','Z'>>;
341386

387+
#line 224 "cpp2regex.h2"
342388
// Named other classes
343389
//
344-
template <typename CharT> using alnum_class = named_class_entry<CharT,"alnum",combined_class_entry<CharT,lower_class<CharT>,upper_class<CharT>,digits_class<CharT>>>;
345-
template <typename CharT> using alpha_class = named_class_entry<CharT,"alpha",combined_class_entry<CharT,lower_class<CharT>,upper_class<CharT>>>;
346-
template <typename CharT> using ascii_class = named_class_entry<CharT,"ascii",range_class_entry<CharT,'\x00','\x7F'>>;
347-
template <typename CharT> using blank_class = named_class_entry<CharT,"blank",list_class_entry<CharT,' ','\t'>>;
348-
template <typename CharT> using cntrl_class = named_class_entry<CharT,"cntrl",combined_class_entry<CharT,range_class_entry<CharT,'\x00','\x1F'>,single_class_entry<CharT,'\x7F'>>>;
349-
template <typename CharT> using graph_class = named_class_entry<CharT,"graph",range_class_entry<CharT,'\x21','\x7E'>>;
350-
template<typename CharT> using hor_space_class = named_class_entry<CharT,"hspace",list_class_entry<CharT,'\t',' '>>;
351-
template <typename CharT> using print_class = named_class_entry<CharT,"print",range_class_entry<CharT,'\x20','\x7E'>>;
352-
template <typename CharT> using punct_class = named_class_entry<CharT,"punct",list_class_entry<CharT,'[','!','"','#','$','%','&','\'','(',')','*','+',',','-','.','/',':',';','<','=','>','?','@','[','\\',']','^','_','`','{','|','}','~',']'>>;
353-
template <typename CharT> using space_class = named_class_entry<CharT,"space",list_class_entry<CharT,' ','\t','\r','\n','\v','\f'>>;
354-
template<typename CharT> using ver_space_class = named_class_entry<CharT,"vspace",list_class_entry<CharT,'\n','\v','\f','\r'>>;
355-
template <typename CharT> using word_class = named_class_entry<CharT,"word",combined_class_entry<CharT,alnum_class<CharT>,single_class_entry<CharT,'_'>>>;
356-
template <typename CharT> using xdigit_class = named_class_entry<CharT,"xdigit",combined_class_entry<CharT,range_class_entry<CharT,'A','F'>,range_class_entry<CharT,'a','f'>,digits_class<CharT>>>;
357390

391+
#line 240 "cpp2regex.h2"
358392
// Shorthand class entries
359393
//
360-
template <typename CharT> using short_digits_class = shorthand_class_entry<CharT,"\\d",digits_class<CharT>>;
361-
template <typename CharT> using short_hor_space_class = shorthand_class_entry<CharT,"\\h",hor_space_class<CharT>>;
362-
template <typename CharT> using short_space_class = shorthand_class_entry<CharT,"\\s",space_class<CharT>>;
363-
template<typename CharT> using short_vert_space_class = shorthand_class_entry<CharT,"\\v",ver_space_class<CharT>>;
364-
template <typename CharT> using short_word_class = shorthand_class_entry<CharT,"\\w",word_class<CharT>>;
365-
366-
template <typename CharT> using short_not_digits_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\D",digits_class<CharT>>>;
367-
template <typename CharT> using short_not_hor_space_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\H",hor_space_class<CharT>>>;
368-
template <typename CharT> using short_not_space_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\S",space_class<CharT>>>;
369-
template<typename CharT> using short_not_vert_space_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\V",ver_space_class<CharT>>>;
370-
template <typename CharT> using short_not_word_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\W",word_class<CharT>>>;
371394

372395
#line 255 "cpp2regex.h2"
373396
// Regex syntax: | Example: ab|ba
@@ -459,18 +482,6 @@ template<typename CharT, bool negate, bool case_insensitive, typename ...List> c
459482
#line 395 "cpp2regex.h2"
460483
// Named short classes
461484
//
462-
template <typename CharT, bool case_insensitive> using named_class_no_new_line = class_token_matcher<CharT,true,case_insensitive,single_class_entry<CharT,'\n'>>;
463-
template <typename CharT, bool case_insensitive> using named_class_digits = class_token_matcher<CharT,false,case_insensitive,digits_class<CharT>>;
464-
template <typename CharT, bool case_insensitive> using named_class_hor_space = class_token_matcher<CharT,false,case_insensitive,hor_space_class<CharT>>;
465-
template <typename CharT, bool case_insensitive> using named_class_space = class_token_matcher<CharT,false,case_insensitive,space_class<CharT>>;
466-
template <typename CharT, bool case_insensitive> using named_class_ver_space = class_token_matcher<CharT,false,case_insensitive,ver_space_class<CharT>>;
467-
template <typename CharT, bool case_insensitive> using named_class_word = class_token_matcher<CharT,false,case_insensitive,word_class<CharT>>;
468-
469-
template <typename CharT, bool case_insensitive> using named_class_not_digits = class_token_matcher<CharT,true,case_insensitive,digits_class<CharT>>;
470-
template <typename CharT, bool case_insensitive> using named_class_not_hor_space = class_token_matcher<CharT,true,case_insensitive,hor_space_class<CharT>>;
471-
template <typename CharT, bool case_insensitive> using named_class_not_space = class_token_matcher<CharT,true,case_insensitive,space_class<CharT>>;
472-
template <typename CharT, bool case_insensitive> using named_class_not_ver_space = class_token_matcher<CharT,true,case_insensitive,ver_space_class<CharT>>;
473-
template <typename CharT, bool case_insensitive> using named_class_not_word = class_token_matcher<CharT,true,case_insensitive,word_class<CharT>>;
474485

475486
#line 411 "cpp2regex.h2"
476487
// Regex syntax: \<number> Example: \1
@@ -504,9 +515,9 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match
504515
#line 491 "cpp2regex.h2"
505516
// Options for range matching.
506517
class range_flags {
507-
public: static const int not_greedy;// Try to take as few as possible.
508-
public: static const int greedy;// Try to take as many as possible.
509-
public: static const int possessive;// Do not give back after a greedy match. No backtracking.
518+
public: // Try to take as few as possible.
519+
public: // Try to take as many as possible.
520+
public: // Do not give back after a greedy match. No backtracking.
510521

511522
public: range_flags() = default;
512523
public: range_flags(range_flags const&) = delete; /* No 'that' constructor, suppress copy */
@@ -568,8 +579,8 @@ template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_mat
568579
// Regular expression implementation
569580
template<typename CharT, typename matcher_wrapper> class regular_expression
570581
{
571-
public: template<typename Iter> using matcher = matcher_wrapper_type<matcher_wrapper,Iter,CharT>;// TODO: Remove when nested types are allowed: https://github.com/hsutter/cppfront/issues/727
572-
public: template<typename Iter> using context = matcher_context_type<matcher<Iter>>;// TODO: Remove when nested types are allowed: https://github.com/hsutter/cppfront/issues/727
582+
public: // TODO: Remove when nested types are allowed: https://github.com/hsutter/cppfront/issues/727
583+
public: // TODO: Remove when nested types are allowed: https://github.com/hsutter/cppfront/issues/727
573584

574585
public: template<typename Iter> class search_return
575586
{

source/reflect.h

+8-14
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,19 @@ class alias_declaration;
3939
#line 1051 "reflect.h2"
4040
class value_member_info;
4141

42+
#line 1565 "reflect.h2"
43+
using error_func = std::function<void(cpp2::impl::in<std::string> x)>;
44+
4245
#line 1569 "reflect.h2"
4346
class expression_flags;
4447

4548
#line 1585 "reflect.h2"
4649
class regex_token;
4750

51+
#line 1605 "reflect.h2"
52+
using token_ptr = std::shared_ptr<regex_token>;
53+
using token_vec = std::vector<token_ptr>;
54+
4855
#line 1611 "reflect.h2"
4956
class regex_token_check;
5057

@@ -542,9 +549,6 @@ auto cpp2_union(meta::type_declaration& t) -> void;
542549
#line 1545 "reflect.h2"
543550
auto print(cpp2::impl::in<meta::type_declaration> t) -> void;
544551

545-
#line 1565 "reflect.h2"
546-
using error_func = std::function<void(cpp2::impl::in<std::string> x)>;
547-
548552
#line 1569 "reflect.h2"
549553
class expression_flags
550554
{
@@ -560,14 +564,7 @@ public: [[nodiscard]] constexpr auto operator^(expression_flags const& that) con
560564
public: [[nodiscard]] constexpr auto has(expression_flags const& that) const& -> bool;
561565
public: constexpr auto set(expression_flags const& that) & -> void;
562566
public: constexpr auto clear(expression_flags const& that) & -> void;
563-
public: static const expression_flags case_insensitive;
564-
public: static const expression_flags multiple_lines;
565-
public: static const expression_flags single_line;
566-
public: static const expression_flags no_group_captures;
567-
public: static const expression_flags perl_code_syntax;
568-
public: static const expression_flags perl_code_syntax_in_classes;
569-
public: static const expression_flags none;
570-
public: [[nodiscard]] constexpr auto get_raw_value() const& -> cpp2::u8;
567+
public: public: public: public: public: public: public: public: [[nodiscard]] constexpr auto get_raw_value() const& -> cpp2::u8;
571568
public: constexpr explicit expression_flags();
572569
public: constexpr expression_flags(expression_flags const& that);
573570
public: constexpr auto operator=(expression_flags const& that) -> expression_flags& ;
@@ -607,9 +604,6 @@ class regex_token
607604
#line 1603 "reflect.h2"
608605
};
609606

610-
using token_ptr = std::shared_ptr<regex_token>;
611-
using token_vec = std::vector<token_ptr>;
612-
613607
#line 1609 "reflect.h2"
614608
// Adds a check in code generation.
615609
//

0 commit comments

Comments
 (0)