Jack Firth
5a3315d6e8
Rework the regular pattern API a bit
3 years ago
Jack Firth
5a67976d47
Implement regular pattern compiler
3 years ago
Jack Firth
df3a80c11a
Add regular expression implementation
3 years ago
Jack Firth
dfbddc95fb
Add cut expressions
3 years ago
Jack Firth
f36f33efde
Support quantified repetition
3 years ago
Jack Firth
e5d7cab7cb
Rework the grammar APIs
...
- Make symbol kind mismatches trigger contract errors in more places.
- Add a notion of "flat" grammars and "normal" grammars, where normal grammars can have recursive expressions for their substitution instead of just a list of symbols.
3 years ago
Jack Firth
95e911dd98
Remove a test that doesn't matter anymore
3 years ago
Jack Firth
5387bd6e2b
Add semantic actions for other kinds of objects
3 years ago
Jack Firth
60a142f90c
Move symbols into their own module too
3 years ago
Jack Firth
b2611aee1b
Move semantic actions into their own module
3 years ago
Jack Firth
de06a5ed82
Run resyntax again
3 years ago
Jack Firth
434b104127
Refactor lexer stuff a bit
3 years ago
Jack Firth
ac5370f26a
Fix an argument name
3 years ago
Jack Firth
fa72938368
Derive datum and syntax parsers together
3 years ago
Jack Firth
2e53bca272
Unify syntax/datum labels as semantic actions
3 years ago
Jack Firth
31174e67f4
Add support for cuts and splices
3 years ago
Jack Firth
2300abf00c
Clarify that grammars are context-free
3 years ago
Jack Firth
c65391f703
Add a parser API
3 years ago
Jack Firth
605d943d50
Fix more stuff
3 years ago
Jack Firth
9c6624f19e
Rearrange things and implement syntax object builder
3 years ago
Jack Firth
beba017631
Fix a typo
3 years ago
Jack Firth
3b73da824f
Omit symbols from parser derivations
...
The label is enough information on its own. Also, delete some dead code I was using for manual testing.
3 years ago
Jack Firth
d54ce42ddb
Add a comment explaining the most confusing SPFF detail
3 years ago
Jack Firth
bfcab05237
Implement Earley SPPF parse forest construction
3 years ago
Jack Firth
372a19afa0
Another Resyntax pass
3 years ago
Jack Firth
412f3792c3
Revert "Replace a let loop with a for loop"
...
This reverts commit 8ab74df2fa
.
3 years ago
Jack Firth
8ab74df2fa
Replace a let loop with a for loop
3 years ago
Jack Firth
c5a399ff62
Run Resyntax again
3 years ago
Jack Firth
bac8fef8e4
Get rid of some commented out code
3 years ago
Jack Firth
2896ea5eeb
Use `match-define`
3 years ago
Jack Firth
c339773860
Run Resyntax again
3 years ago
Jack Firth
14949f8241
Add new grammar API and Earley parser
3 years ago
Jack Firth
5c953a3d08
Use `hash-update!`
3 years ago
Jack Firth
dea323686f
Revert "Use `hash-update!` where possible"
...
This reverts commit 43d9632859
.
3 years ago
Jack Firth
43d9632859
Use `hash-update!` where possible
3 years ago
Jack Firth
138c11b908
Get rid of unnecessary lambdas in `hash-ref` calls
3 years ago
Jack Firth
d1c41aece2
Add another missing import
3 years ago
Jack Firth
9bee9b98c4
Add missing imports
3 years ago
Jack Firth
8e87b541e1
Use `append-map` where possible
3 years ago
Jack Firth
e9bb15e9d5
Use `'()` instead of `null`
3 years ago
Jack Firth
0d423ff56e
Run `resyntax` again
3 years ago
Jack Firth
b97a41c8ef
Get rid of the `grammar%` class
...
Also, get rid of some dead code.
3 years ago
Jack Firth
19320eb0e2
Move all grammar method logic into functions
3 years ago
Jack Firth
fc61543f29
Make a grammar struct
...
The grammar class delegates to it for now. Eventually I'll remove the class.
3 years ago
Jack Firth
c588b40a23
Fix indentation
3 years ago
Jack Firth
bd8fd280f6
Fix deps
3 years ago
Jack Firth
39505951ea
Reorganize imports and exports of `grammar.rkt`
3 years ago
Jack Firth
b5d3b102f8
Delete the yacc conversion code
...
I don't have any intention of using or maintaining this.
3 years ago
Jack Firth
9d48ab7152
Run `resyntax` over everything
3 years ago
Jack Firth
e18a3399fe
Add new token API
...
Eventually this will replace the other ones, hopefully.
3 years ago