Commit graph

88 commits

Author SHA1 Message Date
7b3c94c469 Move things into more modules
It will help with testing and profiling
It breaks pyright (it's probably time to abandon pyright)
2024-06-10 05:50:09 -07:00
c3098aa435 Various bug fixes related to the end of file 2024-06-09 17:18:44 -07:00
b843dc84f4 Comment 2024-06-09 08:53:06 -07:00
a3786c62ba Proper positions for synthetic tokens 2024-06-09 07:24:19 -07:00
0c3e6b211c Lots of logging tweaks 2024-06-09 07:12:35 -07:00
38837f5c4d Don't crash with empty lists 2024-06-09 07:12:14 -07:00
c74a36463e Fix: handle zero-length children correctly 2024-06-09 07:11:39 -07:00
bea7903686 Line numbers
Getting flickery :D
2024-06-09 06:22:31 -07:00
bc5a018ce9 Logging, scrolling bad 2024-06-08 18:35:39 -07:00
1dcc86e9fe Prettier harness, start logging properly 2024-06-08 18:12:16 -07:00
a439e1456a Random tweaks 2024-06-08 17:31:33 -07:00
a837d662dd Error recovery: lame version of CPCT+ 2024-06-08 17:30:59 -07:00
3c8ab86a90 Type things in the table so we can do exhaustive action matches 2024-06-08 17:30:39 -07:00
973445a8d8 Scored results 2024-06-06 17:09:14 -07:00
07164d51a0 Fix end of file error reporting 2024-06-06 17:05:41 -07:00
22029edbb2 Even more threaded parsing 2024-06-06 17:02:07 -07:00
f904f7eea3 Stuff to do 2024-06-06 08:19:54 -07:00
68a8e9298b Simplify token handling in parsing 2024-06-06 08:16:38 -07:00
b60b38d78e Start making parsing thread-based 2024-06-06 08:05:40 -07:00
bd70315935 Improve performance by not de-duping before closing
You close *after* you've determined that a successor is new, not
before.
2024-06-06 05:31:15 -07:00
8c3b1b784c Performance 2024-06-05 09:55:12 -07:00
cabc091ee4 Start extracting better expressions 2024-06-02 08:10:18 -07:00
e57a827e5c Better formatting, dump full graph, disallow conflicts 2024-06-02 08:09:47 -07:00
d6131ad53e Stop deleting blank space in errors 2024-06-02 08:09:32 -07:00
f1507a36f1 Oh, that was a BUG in the grammar! 2024-06-01 05:59:58 -07:00
03937e62e6 Allow the generator to be a little more declarative 2024-06-01 05:57:16 -07:00
e203e27407 Allow the grammar to specify a preference for a generator
Overridable, like start production
2024-06-01 05:42:40 -07:00
55c4675fe5 Use precedence and not a lot of different rules 2024-05-31 08:32:05 -07:00
fee1c68dea Wrap errors
Maybe people want to see them
2024-05-31 08:31:47 -07:00
275d8afe26 Raise special errors on ambiguities
Maybe people want to see them
2024-05-31 08:31:30 -07:00
d93b779538 More argument parsing 2024-05-31 07:54:28 -07:00
1500849390 Argument parsing, render refactor 2024-05-31 06:30:13 -07:00
a7b4a3ce8b Grammars have implicit start symbols 2024-05-31 06:29:57 -07:00
57de8a5b85 More grammar shaping 2024-05-31 05:22:00 -07:00
561dcd87ff Allow nonterminals to be renamed 2024-05-30 19:15:20 -07:00
4b8fef9ad6 Starts and ends in the output 2024-05-30 08:36:35 -07:00
dfef449c33 Better tree output 2024-05-30 08:24:36 -07:00
56d24c5fb9 Chaos: split tables, interactions, Terminal
- Tables are split into `actions` and `goto` now to make formatting
  nicer
- Token is renamed Terminal
- Likes are now Florps
- Lexer now loaded dynamically (badly)
2024-05-30 08:02:47 -07:00
71078f76b4 Interactive grammar editing 2024-05-29 19:28:42 -07:00
45a9303a27 Transparent rules
Better parsing/action types
Good grief
2024-05-29 09:07:19 -07:00
4f8aef3f89 Start working on the harness 2024-05-29 07:48:55 -07:00
7c4705714e Faster still.
Also somehow I was not merging things correctly for LALR; this merges
more completely and winds up with 215 states for the fine grammar,
which is like half of what it used to be?
2024-05-28 08:07:11 -07:00
28634677bf A little more faster. 2024-05-28 05:56:44 -07:00
bde22a5c99 A little faster but I think I might be doing this wrong. 2024-05-28 04:58:23 -07:00
8d58c64040 Fix LALR. Small, but very very slow. 2024-05-27 22:31:33 -07:00
0fc04cf11e Fix grammar bugs, work on debugging harness. 2024-05-27 19:02:10 -07:00
797ec8cd76 Correct type annotations for pyright
Work around microsoft/pyright#8008.
2024-05-27 06:50:15 -07:00
7c1d9b5f2b A cleaner API
I've been hacking on this in a different repository, so I thought I'd
bring it over here.
2024-05-05 08:45:45 -07:00
f656dbd8f3 faster: Significant performance boost on large grammar
15s to 5s
2024-04-17 23:25:15 -07:00
6fa89a9757 faster: Finish the big grammar 2024-04-17 17:23:14 -07:00