Commit graph

322 commits

Author SHA1 Message Date
42d191d036 Successful empty input parser test! 2017-01-14 22:43:05 -08:00
5d1f6229f9 Derive Debug and PartialEq for Programs 2017-01-14 22:40:22 -08:00
2e3306b67b Compare Expressions 2017-01-14 22:40:09 -08:00
a55fdedd1c Get PartialEq on Value types working correctly. Yay! 2017-01-14 22:31:54 -08:00
c7f267d12d Fiddling with PartialEq on Value trait 2017-01-14 10:23:39 -08:00
ec330c2582 Implement Debug on Expression 2017-01-14 10:22:28 -08:00
954bec9ab5 Duplicate use 2017-01-14 10:20:46 -08:00
1b5a47fb86 Small progress on the parser loop... 2017-01-12 21:38:28 -08:00
a3723b2e65 Order derives alphabetically 2017-01-12 21:38:19 -08:00
d8e46e7228 Add manual impl of fmt::Debug to Expression 2017-01-12 21:38:01 -08:00
db2e81d518 Add Debug to Value trait 2017-01-12 21:37:42 -08:00
8bd71a144d Parse the lexed input into a Program in main 2017-01-12 21:18:32 -08:00
c2209a8a8a Add Value trait to type structs 2017-01-12 21:18:20 -08:00
bcedfe2f81 Expand the parser a bit, loop over Lexes and print them 2017-01-12 21:18:07 -08:00
5ec2a11df1 Add Expression type, Program is a list of Expressions 2017-01-12 21:17:48 -08:00
febc3c359f Publically export Lex and Token from lexer 2017-01-12 21:15:42 -08:00
5f4b96e4e2 Misc tiny cleanup bits in the lexer 2017-01-07 19:31:22 -08:00
2a680d07c7 Lex all the special character escapes, without stupid state hacking 2017-01-07 16:20:26 -08:00
2f8f71fc28 A Program node, and an empty parse() method on Parser 2017-01-02 12:17:26 -05:00
da63993fe0 Framework for parser module 2017-01-02 12:09:46 -05:00
bf03cb8ef9 lex() function in lexer module 2017-01-02 12:00:31 -05:00
3dd170ec69 Empty parser module 2017-01-02 11:54:32 -05:00
9cbf8d2d0d Little Number tweaks 2017-01-02 11:52:15 -05:00
149aa50fa9 Move simple types to types/mod.rs 2017-01-02 11:47:54 -05:00
bbf161ede9 DELETE PARSER CRAP 2017-01-02 11:46:45 -05:00
e1f2c6b88b Basic parsing infrastructure .. doesn't actually do anything 2016-12-29 16:58:02 -05:00
1d19a3f722 Fix up lexer tests after movement of stuff 2016-12-29 16:56:47 -05:00
a7c6caec95 Attempt to write tree printing for the parse tree
I have _no_ idea if this will work or not.
2016-12-29 15:14:56 -05:00
7f6ef1ac1e Nodes for Program and Constant 2016-12-29 14:25:43 -05:00
1527d10a80 Shuffle around Constant node stuff 2016-12-29 12:36:22 -05:00
977e6332a7 Move nodes.rs to nodes/mod.rs 2016-12-29 12:34:05 -05:00
4cfd0510e6 Define a Constant node for constants 2016-12-29 12:33:20 -05:00
8f2a93f813 pub use Boolen and Number for types module 2016-12-29 12:33:11 -05:00
8d38ac4441 Add nodes module to parser 2016-12-29 12:22:43 -05:00
1728ea2868 Add boolean module to types 2016-12-29 12:22:29 -05:00
f799d7642d Create types module with a module for numbers; move Number there 2016-12-29 10:10:40 -05:00
93bdc998bd Create emtpy mod.rs for the parser module 2016-12-29 09:44:49 -05:00
c881ee874a Use a string to build up the value of String tokens, so we can properly handle escape characters and such 2016-12-28 18:01:36 -05:00
872d07e6b7 Write a check_tokens() test helper that checks an input string against a list of tokens 2016-12-28 17:41:35 -05:00
c061d9732c Lex characters, including #\newline and #\space
This implementation is pretty dumb I think... >_<
At least, it was annoying as hell to write.
2016-12-28 12:16:28 -07:00
94579233bf Test lexing quotes 2016-12-28 10:57:16 -07:00
b1ef5fdf3e Lex quotes -- need to write a test for this but captain says its time to put devices away... 2016-12-28 08:40:31 -07:00
89e639fbac Remove TODO. I _did_ this. :) 2016-12-28 08:37:55 -07:00
c4048e2c01 Because Emily sooo immature 🙄 2016-12-28 08:37:04 -07:00
5d5ddf30d0 Find escaped characters in strings 2016-12-28 08:35:02 -07:00
575ebceb7c Assert on errors 2016-12-27 12:13:21 -07:00
606f2853a9 Convert all the things 2016-12-27 12:10:15 -07:00
c3113742a3 Convert state_hash() 2016-12-27 11:52:25 -07:00
59a8804fd8 Convert state_dot() 2016-12-27 11:36:43 -07:00
64435689fc Remove semicolon; add &self to generic_error() 2016-12-27 11:30:08 -07:00