85 Commits

Author SHA1 Message Date
5d109f5f06 Write some matching benchmarks 2024-11-10 15:17:00 +00:00
e1b5725e74 Create benchmarking library 2024-11-10 15:17:00 +00:00
15a6195bf0 Use entr's -c flag in script 2024-11-10 15:17:00 +00:00
b7737fba39 Tweak README 2024-11-03 13:20:26 +00:00
dad687216b Surround input regex with .*( ).* in demo 2024-11-03 12:31:06 +00:00
656726a8c1 Move regex_t into parse.h and rename to parse_tree_t 2024-11-03 12:23:58 +00:00
1f248ad4cd Remove desugaring step 2024-11-03 12:16:52 +00:00
e283fd2c52 Support + and ? in construct_nfa() 2024-11-03 12:16:38 +00:00
1fea81b74b Remove wildcard assert from desugar 2024-11-03 12:06:27 +00:00
77e1a77e02 Support wildcards in construct 2024-11-03 11:59:56 +00:00
892ff89a66 Add integration test using negated class 2024-11-03 11:55:05 +00:00
3c89cc4e99 Remove class desugaring 2024-11-03 11:55:05 +00:00
38b5b48289 Support classes in construct step 2024-11-03 11:55:05 +00:00
3c4146468e Reorder header includes in compile.c 2024-11-03 11:54:56 +00:00
f95de25842 Turn off extensions in set_default_target_options 2024-11-02 23:47:09 +00:00
d6d5951b95 Fix allocation issue in FSA module 2024-11-02 23:15:27 +00:00
232295fff4 Fix bug in table growing routine 2024-11-02 23:14:59 +00:00
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
074b174d0f Create some integration tests 2024-11-02 17:35:04 +00:00
5dbcaaaf40 Add ASSERT_ACCEPTS and ASSERT_REJECTS testing macros 2024-11-02 17:24:40 +00:00
c6f0cf6381 Recurse on subexpression when desugaring 2024-11-02 17:24:40 +00:00
c935279def Make demo program 2024-11-02 17:24:39 +00:00
18271a2988 Create compile module combining passes together 2024-11-02 16:23:44 +00:00
018aec5339 Move procedure for running NFA into FSA module 2024-11-02 16:23:44 +00:00
557ab451a8 Implement conversion from NFA to DFA 2024-11-02 16:23:44 +00:00
6b52d4d9cd Implement min heap 2024-11-02 14:15:22 +00:00
730ec80220 No longer set state zero to be final in fsa_init() 2024-10-29 13:14:35 +00:00
d35fa4e9da Rename construct to construct_nfa and improve tests 2024-10-29 09:29:10 +00:00
55e4e4f5ee Add non-base-case construct tests and fix construct logic 2024-10-27 17:07:19 +00:00
3eb782f59f Execute NFA rather than inspecting in construct_tests 2024-10-27 14:18:46 +00:00
d4b7a0a25c Revert "Use char instead of int for FSA rule input"
This reverts commit eb22abfb1b6dbdf6dc702e3d9d99314cbbb22d7b.
2024-10-27 13:55:12 +00:00
d5b40f9324 Support subexpressions in construct() 2024-10-27 13:35:45 +00:00
bbecd12c91 Implement star construction 2024-10-27 13:33:40 +00:00
d54080032c Remove invalid assert() in construct() 2024-10-27 13:24:12 +00:00
280168bb6f Handle initial state being final in merge_fsas() 2024-10-27 13:23:15 +00:00
755f3f6805 Add runtime assertion on unhandled case in concat_fsas() 2024-10-27 13:21:29 +00:00
edc14bc1de Tweak build script and README 2024-10-27 02:39:24 +00:00
99b8d3bcd0 Define PARSE_FAIL and use instead of -1 in parse.c 2024-10-27 02:16:14 +00:00
8743a45b2a Use runtime asserts on allocation success in parse.c 2024-10-27 02:15:37 +00:00
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
eb22abfb1b Use char instead of int for FSA rule input 2024-10-27 01:52:33 +00:00
852102cab9 Implement union construction 2024-10-27 01:50:35 +00:00
afd4cf928c Enable test output on failure in test.sh 2024-10-27 01:50:28 +00:00
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
c58cabd2e6 Replace build scripts with CMake
Rebuilding everything each time was getting a bit slow.
2024-10-27 00:12:57 +01:00
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
5d980cf64b Make scripts directly executable 2024-10-27 00:06:15 +01:00
8a06c7ceb6 Add ASSERT_LT() testing macro 2024-10-26 22:17:53 +01:00