b1621f2522
tests: Add tests for token-class functions
2023-09-28 00:08:51 -05:00
0661789d42
Lexer: reduce code duplication in Rule mapping
...
produce_token renamed to map_rule
- Skips leading whitespace before any Rule evaluations
- Handles creation and destruction of Rule
2023-09-27 22:51:51 -05:00
d4245844ce
lexer: Add Invalid token to aid in implementing features
2023-09-27 21:17:35 -05:00
335fea8d73
conlang: add delimiter types, lexer rules, and tests
2023-09-27 18:26:38 -05:00
bed21941e8
conlang: Add keyword types, rules, and tests
2023-09-27 18:21:19 -05:00
097e2c4f11
conlang: Rename literals; split, compose, and document Rules
...
- Renamed literal Types to reflect their literal nature
- This allows for consistent naming across future non-literal Types
- Complicated lexer Rules have been split into composable sub-rules,
and moved into the Rule struct.
- This improves modularity, and allows sharing of sub-rules across rules.
- Documented each lexer rule with (at least) a one-line blurb
describing its function
2023-09-27 18:13:01 -05:00
46e72e4889
conlang: add toy program to interact with the tokenizer
2023-09-25 18:06:03 -05:00
09f22d6bf3
lexer: Tokenize float literals ( resolves #4 )
2023-09-25 16:51:18 -05:00
8ddf73dc76
lexer: refactor string escape to separate rule (fixes '\\"')
2023-09-25 16:49:18 -05:00
fe2b9880d6
lexer: Fix infinite loop while trimming whitespace
2023-09-25 16:46:06 -05:00
247bb1f8f8
integer: Match based on base, if present
2023-09-25 16:43:50 -05:00
03660fd641
tests: fix whitespace
2023-09-25 14:31:57 -05:00
e49a3e9fec
lexer: Tokenize string literals ( resolves #5 )
2023-09-25 14:26:56 -05:00
6f6d8ec916
lexer: Tokenize integer literals ( resolves #3 )
2023-09-25 14:25:00 -05:00
8f07b29ff3
lexer: Tokenize identifiers (resolves #2.)
2023-09-25 14:22:27 -05:00
443cd11803
lexer: Refactor rule
and assoc. tests
...
- Lexer now ignores leading whitespace
- Rule now has shorter, clearer function names
- Tests for comment lexing are now consolidated into a module
- Tests using the assert_has_type_and_len wrapper can now specify
an expected length
2023-09-25 14:13:28 -05:00
71053f1992
lerox: Consolidate traits
...
The auto-implementation scheme doesn't really fit the application
2023-09-25 13:52:21 -05:00
06597fa1e9
libconlang: implement comment tokenization (for #1 )
2023-09-22 23:56:10 -05:00
90ef1f542d
lerox: Add lerox, a silly little combinator library
2023-09-22 23:54:09 -05:00
8f66a64924
Initial Commit
2023-09-21 15:41:12 -05:00