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