|
37455641ec
|
[parser] Attempt to write a unit test; realize you need a way to check for equality of objects 🤷
|
2018-08-25 07:59:43 -07:00 |
|
|
683c9df243
|
[parser] Handle the result of passing a subparser's result to the next parser in the stack
|
2018-08-25 07:58:49 -07:00 |
|
|
580a71c997
|
[parser] This resolved a warning about this variable's value being unread -- idk what is going on here
|
2018-08-25 07:57:45 -07:00 |
|
|
c35fce7727
|
[parser, types] Call subparser_completed
|
2018-08-24 21:07:04 -07:00 |
|
|
d3520be67e
|
[parser] Add subparser_completed() method to NodeParser and implementing Parsers
|
2018-08-24 21:06:24 -07:00 |
|
|
0a9f235836
|
[parser] Be a little nicer about line wrapping
|
2018-08-24 17:21:45 -07:00 |
|
|
7b90b5d229
|
[parser] Fix crash
- Create a ProgramParser on each call of next()
- Fix up ending condition check
|
2018-08-24 17:19:33 -07:00 |
|
|
fea93f44eb
|
[parser] Clean up the prints
|
2018-08-24 17:12:54 -07:00 |
|
|
e822a6b6ec
|
[parser] Clean up a little; add some prints for debugging
|
2018-08-24 15:43:19 -07:00 |
|
|
1ff349e147
|
[parser] Clean up some syntax and warnings
|
2018-08-24 08:33:06 -07:00 |
|
|
976675027f
|
[parser] Handle None from input
|
2018-08-24 08:26:08 -07:00 |
|
|
96e92230ed
|
[parser] Fill in the iteration cases
|
2018-08-24 08:14:39 -07:00 |
|
|
dbd6329dd6
|
[parser] Hand off lex to current parser and collect the result
|
2018-08-24 08:05:39 -07:00 |
|
|
d13396bb5d
|
[parser] Fill in some framing comments; pass lexer errors out directly
|
2018-08-24 08:00:33 -07:00 |
|
|
d9abd033e7
|
[parser] Flatten the matches
|
2018-08-24 07:54:00 -07:00 |
|
|
2f9c16ff38
|
[parser] Working out the structure of this stupid Parser::next()
|
2018-08-23 20:36:41 -07:00 |
|
|
4bade1af4a
|
[parser] Fill out ProgramParser
|
2018-08-23 20:27:50 -07:00 |
|
|
80bf4b7bf1
|
[parser] Expand ParseError; add a ProgramParser to start things off
|
2018-08-23 20:21:59 -07:00 |
|
|
6aed66d2b5
|
[parser] Add ProgramParser in its own module
|
2018-08-23 20:20:12 -07:00 |
|
|
4cd46d85a9
|
[parser] Improve this error message
|
2018-08-23 18:04:56 -07:00 |
|
|
9c06b293f9
|
[parser] Determine when to parse a new list and when to prepare to parse the current list
|
2018-08-23 18:04:44 -07:00 |
|
|
8e9fde7a9f
|
[parser, types] Add Obj::take() and use it to take the Obj from the parser when it is done
|
2018-08-23 18:04:04 -07:00 |
|
|
929846152e
|
[parser, types] Clean up obj parsers
- Define ListParser, SymParser in their own separate modules
- Add some stuff to types to make working with them more ergonomic
|
2018-08-23 17:52:56 -07:00 |
|
|
0208ecb4d2
|
[parser] Continuing to sketch the parser
|
2018-08-20 16:14:17 -07:00 |
|
|
8475720a71
|
Add accessor for Lex::value
|
2018-08-20 15:21:20 -07:00 |
|
|
cabe40bd7a
|
[parser] Skeleton IdParser and ListParser for Ids and Lists respectively
|
2018-08-19 22:30:49 -07:00 |
|
|
027854d162
|
[parser] Print things in main() as the thing
|
2018-08-19 22:11:08 -07:00 |
|
|
d7bffdc432
|
[parser] Add parsers field to Parser
This will be a stack of node-specific parsers. As you descend the tree, a new
parser will be created for each node we visit.
|
2018-08-19 22:04:05 -07:00 |
|
|
52ede10d5e
|
[parser] Remove program.rs
|
2018-08-19 21:15:07 -07:00 |
|
|
efe0c27d93
|
Make the Parser dump tokens and quit
Write a main() for sibilparser that just does that.
|
2017-06-18 17:34:46 -07:00 |
|
|
d783e561da
|
Strip down the parser (again...)
|
2017-04-29 08:58:02 -07:00 |
|
|
076d391d4b
|
Remove list.rs from the parser
|
2017-04-22 15:22:48 -07:00 |
|
|
1365ab71db
|
More rough sketching of a parser
|
2017-04-16 11:42:08 -07:00 |
|
|
594b3e44e1
|
Rough outline of something resembling a parser (again...)
|
2017-04-15 21:01:28 -07:00 |
|
|
636b0dda9b
|
Create empty sibilparser crate
|
2017-04-15 10:19:49 -07:00 |
|