cdo
1fea81b74b
Remove wildcard assert from desugar
2024-11-03 12:06:27 +00:00
cdo
77e1a77e02
Support wildcards in construct
2024-11-03 11:59:56 +00:00
cdo
892ff89a66
Add integration test using negated class
2024-11-03 11:55:05 +00:00
cdo
3c89cc4e99
Remove class desugaring
2024-11-03 11:55:05 +00:00
cdo
38b5b48289
Support classes in construct step
2024-11-03 11:55:05 +00:00
cdo
3c4146468e
Reorder header includes in compile.c
2024-11-03 11:54:56 +00:00
cdo
f95de25842
Turn off extensions in set_default_target_options
2024-11-02 23:47:09 +00:00
cdo
d6d5951b95
Fix allocation issue in FSA module
2024-11-02 23:15:27 +00:00
cdo
232295fff4
Fix bug in table growing routine
2024-11-02 23:14:59 +00:00
cdo
34fee99232
Fix bug in construct_nfa
...
Intermediate final states were being left in by add_fsa(); we always
want to mark the added FSA's final state as non-final.
2024-11-02 23:12:23 +00:00
cdo
074b174d0f
Create some integration tests
2024-11-02 17:35:04 +00:00
cdo
5dbcaaaf40
Add ASSERT_ACCEPTS and ASSERT_REJECTS testing macros
2024-11-02 17:24:40 +00:00
cdo
c6f0cf6381
Recurse on subexpression when desugaring
2024-11-02 17:24:40 +00:00
cdo
c935279def
Make demo program
2024-11-02 17:24:39 +00:00
cdo
18271a2988
Create compile module combining passes together
2024-11-02 16:23:44 +00:00
cdo
018aec5339
Move procedure for running NFA into FSA module
2024-11-02 16:23:44 +00:00
cdo
557ab451a8
Implement conversion from NFA to DFA
2024-11-02 16:23:44 +00:00
cdo
6b52d4d9cd
Implement min heap
2024-11-02 14:15:22 +00:00
cdo
730ec80220
No longer set state zero to be final in fsa_init()
2024-10-29 13:14:35 +00:00
cdo
d35fa4e9da
Rename construct to construct_nfa and improve tests
2024-10-29 09:29:10 +00:00
cdo
55e4e4f5ee
Add non-base-case construct tests and fix construct logic
2024-10-27 17:07:19 +00:00
cdo
3eb782f59f
Execute NFA rather than inspecting in construct_tests
2024-10-27 14:18:46 +00:00
cdo
d4b7a0a25c
Revert "Use char instead of int for FSA rule input"
...
This reverts commit eb22abfb1b .
2024-10-27 13:55:12 +00:00
cdo
d5b40f9324
Support subexpressions in construct()
2024-10-27 13:35:45 +00:00
cdo
bbecd12c91
Implement star construction
2024-10-27 13:33:40 +00:00
cdo
d54080032c
Remove invalid assert() in construct()
2024-10-27 13:24:12 +00:00
cdo
280168bb6f
Handle initial state being final in merge_fsas()
2024-10-27 13:23:15 +00:00
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