cabe40bd7a
[parser] Skeleton IdParser and ListParser for Ids and Lists respectively
2018-08-19 22:30:49 -07:00
281c29ee26
[lexer] Expose token field via method; Clone and Copy Tokens
2018-08-19 22:30:19 -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
6de9ff6695
[types] Fix the tests
2018-08-17 17:18:01 -07:00
cc43ffd135
[lexer] Lexer emits Lexes instead of Tokens
2017-06-26 21:54:57 -07:00
5f3770914f
[lexer] Basic handling of input offsets
2017-06-26 21:54:05 -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
2a7626c75f
Add a type def for lexer Result
2017-06-18 16:50:14 -07:00
d994316392
Character checks for identifier initial and subsequent
2017-05-13 17:21:23 -07:00
237dca4b4b
Add some character class methods to a Lexable trait for char
2017-05-13 15:37:01 -07:00
1dfdc001b3
Add an error class
2017-05-13 15:26:41 -07:00
b5f76deb98
Add some single token tests for the tokens we have
2017-05-02 21:45:10 -07:00
28e5814101
Check for EOF (aka input.next() -> None) and emit what we have before finishing forever
2017-05-02 21:44:57 -07:00
5fe10fe002
Simplify the resume check -- just use an if
2017-05-02 21:44:01 -07:00
c5b769ff45
A peekable lexer
...
Use the chars() iterator on &str, with the Peekable wrapper on Iterators, to iterate the input, rather than needing to hold the whole input and do iteration by indexes.
2017-04-30 17:46:42 -07:00
a4282e7760
Blow away the lexer code =o
2017-04-30 16:32:31 -07:00
4d3366db84
First attempt at Display for Object::Vector
2017-04-30 16:01:11 -07:00
31c68034a8
Fix a good portion of the build errors in sibillexer (but not all...)
2017-04-30 16:00:51 -07:00
f21148381e
Make sibiltypes::char public
2017-04-30 15:57:29 -07:00
027daf692b
lexer::number uses sibiltypes::Object
2017-04-30 15:57:16 -07:00
21263fb2ed
Lexer doesn't have a named_char module anymore
2017-04-30 15:57:02 -07:00
a88bf20a23
Derive Eq on lexer::number::Sign
2017-04-30 15:56:49 -07:00
28ba98582a
More compact formatting
2017-04-30 15:56:32 -07:00
9183e05891
Add FromChar trait to lexer::char
2017-04-30 15:56:21 -07:00
3ffb694ce1
Move Exact to types::number
2017-04-30 15:55:50 -07:00
d783e561da
Strip down the parser (again...)
2017-04-29 08:58:02 -07:00
0133bbed19
[types] Move Char trait down to just above impl
2017-04-23 17:11:56 -07:00
1430bdad29
Make a Char trait that provides some handy methods for Object::Char
2017-04-23 10:57:08 -07:00
fd5df91e27
[lexer,types] Move named_char to types as types/char/names.rs
...
Move char.rs to be char/mod.rs
2017-04-23 10:41:47 -07:00
5cb66d932f
[lexer] Clean up named_char module
2017-04-23 10:02:39 -07:00
38be7d2eee
Expose ObjectPtr and ObjectPtr::new from sibiltypes
2017-04-23 09:23:03 -07:00
076d391d4b
Remove list.rs from the parser
2017-04-22 15:22:48 -07:00
a5f88c221d
Use Objects for Token values
2017-04-22 15:21:13 -07:00
2f8051135f
Couple more tweaks to number printing
2017-04-22 15:05:51 -07:00
15910480ee
Write Numbers
2017-04-22 12:57:43 -07:00
3d13800d30
Clean module imports for real.rs
2017-04-22 12:57:25 -07:00
b5e9ce6ae2
Implement Display for Numbers
2017-04-22 12:57:11 -07:00
a827958656
Remove complex module from types/number
2017-04-22 12:56:54 -07:00
89b29aadbe
Some unit tests for displaying objects -- not every case is covered cause there are still lots of TODOs
2017-04-22 12:48:46 -07:00
d9e3f24146
TODO about using str.chars() instead of my own janky character iteration stuff
2017-04-22 12:30:15 -07:00
d41fe37d6a
Fix writing pairs
2017-04-22 12:29:53 -07:00
c3a2247fdd
Clean up tests for bool, char, and the lib
2017-04-22 12:29:43 -07:00
25c24852cd
Add a comment to the Pair Display TODO
2017-04-22 09:32:47 -07:00
4274822b65
Simplify number/mod.rs a bunch
2017-04-22 09:30:45 -07:00
61f8cfccb5
Simplify bool.rs a bunch
2017-04-22 09:30:28 -07:00
beb32bf2ce
Bunch of work on types
...
- Comment out a bunch of types modules for now
- Implement fmt::Display on Object (this breaks the build because Number doesn't
implement Display yet)
- Move all the Is* traits to predicates.rs
Haven't run tests yet because they won't build...
2017-04-22 09:29:11 -07:00
d63eef3da0
Move value.rs to object.rs
2017-04-22 09:28:44 -07:00
89279e5a22
Convert Value trait to a Object enum; add ObjectPtr type
2017-04-21 19:28:39 -07:00