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
de0a76818e
faster: Correct precedence but don't use it
...
Precedence now works for, like, resolving expressions in a single
big table but uh... it takes the time from 700ms to like 7s so I've
reverted it for now.
2024-04-17 17:13:18 -07:00
7147557e2b
faster: Snapshot a big grammar I'm playing with
2024-04-17 11:07:56 -07:00
d0be3ea267
faster: Precedence support, necessary for IfStatement
2024-04-17 11:06:14 -07:00
c100613ff5
faster: Trace parse when reporting ambiguity, fix first
2024-04-16 21:45:47 -07:00
86d7306082
faster: An attempt at better error messages
2024-04-15 21:23:03 -07:00
c840174dc6
faster: Pre-compute successors and lookups
2024-04-15 20:15:31 -07:00
a818a4a498
faster: All symbols are integers
2024-04-15 16:05:42 -07:00
ee60951ffc
faster: only consider possible values when generating successors
2024-04-15 09:55:44 -07:00