29 Commits

Author SHA1 Message Date
403d081e13 Move headers into include directories 2024-10-27 00:06:15 +01:00
2804638d84 Support sequences in construct() 2024-10-27 00:06:15 +01:00
2ac92f62f1 Implement NFA construction for empty expression and literals 2024-10-27 00:06:15 +01:00
ad6c385f42 Define FSA data structure 2024-10-26 22:17:53 +01:00
0ecab6c142 Rename free procedures 2024-10-26 19:36:59 +01:00
e508cc62f5 Rename structures and free procedures to reflect module change 2024-10-26 19:33:10 +01:00
b2a2cb9036 Move structures and free procedures back to dedicated files 2024-10-26 19:33:10 +01:00
3a578e190f Assert success of alloc in deep_copy_* loops
Returning false here would leave the destination sequence in an
invalid state and may lead to leaked memory; until this is solved
properly it is safer to assert().
2024-10-26 19:21:05 +01:00
ecfbf2e5c4 Implement (non-negated) class desugaring 2024-10-26 19:21:05 +01:00
07fc46ce38 Add success result to desugar_regex() 2024-10-26 19:21:05 +01:00
ac4e9911d8 Implement question mark desugaring 2024-10-26 19:21:05 +01:00
7e7a7f1cb7 Implement plus desugaring 2024-10-26 19:21:05 +01:00
295b68efa2 Rename some things in parse tree data structures 2024-10-26 19:21:05 +01:00
fd9fd7ce7f Add empty to term types 2024-10-26 15:49:37 +01:00
9494c08f36 Write invariant tests for desugaring 2024-10-26 15:39:13 +01:00
2bcdfbcd61 Expose parse tree free procedures 2024-10-26 15:09:06 +01:00
316cba949d Rename parser* files to parse* 2024-10-26 15:04:23 +01:00
5011e516e4 Add parse_ prefix to parser type names 2024-10-26 13:34:27 +01:00
e906c64bda Modify grammar slighly to simplify parse tree 2024-10-26 12:44:00 +01:00
0c4b033d75 Rename regex_t to parse_tree_t and merge module into parser 2024-10-26 12:10:35 +01:00
01fb9be1e7 Initialize everything explicitly in parser 2024-10-25 18:49:16 +01:00
b2f474336a Implement character class parsing 2024-10-25 18:49:16 +01:00
40db26a62d Handle quantifiers in parse_term() 2024-10-25 18:22:49 +01:00
80a26997b8 Add paren support to parser 2024-10-25 18:22:49 +01:00
da0175105d Implement special character escaping 2024-10-25 18:22:49 +01:00
a9b8e24007 Handle . in parse_term() 2024-10-25 18:22:49 +01:00
f434af5c96 Handle sequences in parser 2024-10-25 18:22:49 +01:00
584e92c29c Implement first iteration of parser and write test scripts 2024-10-25 14:24:50 +01:00
27b4b28fba Define regex_t data structure and write build script 2024-10-25 14:24:50 +01:00