cdo
755f3f6805
Add runtime assertion on unhandled case in concat_fsas()
2024-10-27 13:21:29 +00:00
cdo
edc14bc1de
Tweak build script and README
2024-10-27 02:39:24 +00:00
cdo
99b8d3bcd0
Define PARSE_FAIL and use instead of -1 in parse.c
2024-10-27 02:16:14 +00:00
cdo
8743a45b2a
Use runtime asserts on allocation success in parse.c
2024-10-27 02:15:37 +00:00
cdo
721d0a2b49
Use runtime asserts instead of error returns in desugar.c
...
The error paths are not tested and are mostly for NULL allocations so
it makes more sense to use runtime asserts for now for simplicity's
sake.
2024-10-27 02:15:34 +00:00
cdo
eb22abfb1b
Use char instead of int for FSA rule input
2024-10-27 01:52:33 +00:00
cdo
852102cab9
Implement union construction
2024-10-27 01:50:35 +00:00
cdo
afd4cf928c
Enable test output on failure in test.sh
2024-10-27 01:50:28 +00:00
cdo
007cddc292
Add some runtime assertions for state zero being final
...
I'm using this invariant to save work finding the final state so it
makes sense to test it.
2024-10-27 01:24:43 +01:00
cdo
c58cabd2e6
Replace build scripts with CMake
...
Rebuilding everything each time was getting a bit slow.
2024-10-27 00:12:57 +01:00
cdo
403d081e13
Move headers into include directories
2024-10-27 00:06:15 +01:00
cdo
2804638d84
Support sequences in construct()
2024-10-27 00:06:15 +01:00
cdo
2ac92f62f1
Implement NFA construction for empty expression and literals
2024-10-27 00:06:15 +01:00
cdo
5d980cf64b
Make scripts directly executable
2024-10-27 00:06:15 +01:00
cdo
8a06c7ceb6
Add ASSERT_LT() testing macro
2024-10-26 22:17:53 +01:00
cdo
ad6c385f42
Define FSA data structure
2024-10-26 22:17:53 +01:00
cdo
0ecab6c142
Rename free procedures
2024-10-26 19:36:59 +01:00
cdo
e508cc62f5
Rename structures and free procedures to reflect module change
2024-10-26 19:33:10 +01:00
cdo
b3d54c307b
Ignore clangd files
2024-10-26 19:33:10 +01:00
cdo
b2a2cb9036
Move structures and free procedures back to dedicated files
2024-10-26 19:33:10 +01:00
cdo
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
cdo
ecfbf2e5c4
Implement (non-negated) class desugaring
2024-10-26 19:21:05 +01:00
cdo
8e7e0f1bc0
Finish subexpr invariant test
2024-10-26 19:21:05 +01:00
cdo
07fc46ce38
Add success result to desugar_regex()
2024-10-26 19:21:05 +01:00
cdo
ac4e9911d8
Implement question mark desugaring
2024-10-26 19:21:05 +01:00
cdo
7e7a7f1cb7
Implement plus desugaring
2024-10-26 19:21:05 +01:00
cdo
295b68efa2
Rename some things in parse tree data structures
2024-10-26 19:21:05 +01:00
cdo
fd9fd7ce7f
Add empty to term types
2024-10-26 15:49:37 +01:00
cdo
9494c08f36
Write invariant tests for desugaring
2024-10-26 15:39:13 +01:00
cdo
2bcdfbcd61
Expose parse tree free procedures
2024-10-26 15:09:06 +01:00
cdo
cdaea7a1ec
Remove build/ contents at start of build script
2024-10-26 15:04:26 +01:00
cdo
316cba949d
Rename parser* files to parse*
2024-10-26 15:04:23 +01:00
cdo
5011e516e4
Add parse_ prefix to parser type names
2024-10-26 13:34:27 +01:00
cdo
e906c64bda
Modify grammar slighly to simplify parse tree
2024-10-26 12:44:00 +01:00
cdo
0c4b033d75
Rename regex_t to parse_tree_t and merge module into parser
2024-10-26 12:10:35 +01:00
cdo
a85367c2df
Add more info to README
2024-10-25 19:09:36 +01:00
cdo
01fb9be1e7
Initialize everything explicitly in parser
2024-10-25 18:49:16 +01:00
cdo
b2f474336a
Implement character class parsing
2024-10-25 18:49:16 +01:00
cdo
40db26a62d
Handle quantifiers in parse_term()
2024-10-25 18:22:49 +01:00
cdo
80a26997b8
Add paren support to parser
2024-10-25 18:22:49 +01:00
cdo
da0175105d
Implement special character escaping
2024-10-25 18:22:49 +01:00
cdo
a9b8e24007
Handle . in parse_term()
2024-10-25 18:22:49 +01:00
cdo
f434af5c96
Handle sequences in parser
2024-10-25 18:22:49 +01:00
cdo
584e92c29c
Implement first iteration of parser and write test scripts
2024-10-25 14:24:50 +01:00
cdo
63facb3954
Write testing framework
2024-10-25 14:24:50 +01:00
cdo
1a607488ce
Ignore build/ directory
2024-10-25 14:24:50 +01:00
cdo
27b4b28fba
Define regex_t data structure and write build script
2024-10-25 14:24:50 +01:00
cdo
8f4fe21bcf
Write script for formatting code
2024-10-25 14:22:20 +01:00
cdo
308deb3886
Add AGPL 3.0 license
2024-10-25 14:21:55 +01:00
cdo
2957e913c0
Create README with grammar spec
2024-10-25 13:33:59 +01:00