Commit graph

77 commits

Author SHA1 Message Date
f18b6a5719 [types] Simplify explicit lifetimes for Int::eq(Obj) 2018-09-01 11:52:49 -07:00
576b81e52c [types] OMG SO MUCH LIFETIME NONSENSE 2018-09-01 08:33:45 -07:00
1e12508348 [types] Number trait, Int type (which does not work), and some API improvements for Objects 2018-08-31 19:15:12 -07:00
3a7fe94b32 [types] Implement From<bool> for Bool 2018-08-26 17:41:50 -07:00
d0441965eb [types] Add Bools to the mix 2018-08-26 09:52:17 -07:00
9a728c9489 [types] Add some tests for equality of pairs 2018-08-25 11:32:19 -07:00
22f3c3a9e3 [types] Value equivalence via PartialEq! 2018-08-25 11:18:59 -07:00
1a3b7adc5a [types] Clean up Object a little, add default implementations 2018-08-25 09:21:51 -07:00
31081ba5a9 [types] Move tests to tests/ directory; implement a bunch of Display tests 2018-08-25 09:21:34 -07:00
d10c72711b [types] Test for displaying empty Pair 2018-08-25 08:33:39 -07:00
fc1f3acfa2 [types] Clean up failing tests 2018-08-25 08:33:23 -07:00
3024efe65e [types] Add some unit tests for Sym 2018-08-25 08:18:32 -07:00
cd7ea8f543 [types] Revert to a more Rusty way to print objects for Debug 2018-08-25 08:00:39 -07:00
c35fce7727 [parser, types] Call subparser_completed 2018-08-24 21:07:04 -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
d825d0ec8a [types] Clean up Pair and Sym types
Reconfigure the top-level object types.
- Obj is an enum pointer type
- Object is a trait that all Scheme types should implement

Define Sym, a symbol type.
Define Pair, a pair/cons/list type.

Implement Display for all types above. Implement casting methods for the above.
2018-08-23 17:05:29 -07:00
f197f1ba8b Rename predicates -> preds 2018-08-23 07:53:04 -07:00
234b60dde9 Some spacing tweaks to predicates 2018-08-20 16:31:10 -07:00
a81e9b4258 I guess we're doing this again... 2018-08-20 16:30:59 -07:00
5a5a0c9c07 Add ObjectPtr::new_pair() 2018-08-20 15:21:38 -07:00
6de9ff6695 [types] Fix the tests 2018-08-17 17:18:01 -07:00
4d3366db84 First attempt at Display for Object::Vector 2017-04-30 16:01:11 -07:00
f21148381e Make sibiltypes::char public 2017-04-30 15:57:29 -07:00
3ffb694ce1 Move Exact to types::number 2017-04-30 15:55:50 -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
38be7d2eee Expose ObjectPtr and ObjectPtr::new from sibiltypes 2017-04-23 09:23:03 -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
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
594b3e44e1 Rough outline of something resembling a parser (again...) 2017-04-15 21:01:28 -07:00
f31094d115 Move rational conversion to math.rs 2017-04-15 11:30:31 -07:00
392c9e5ef8 Add fmt::Display impl to Real 2017-04-15 11:13:05 -07:00
161c122327 Remove println! 2017-04-15 11:06:14 -07:00
25ef33b81f Expose number module from sibiltypes 2017-04-15 11:01:42 -07:00
1d7b3b9df1 Add doc tests for other Real methods 2017-04-15 11:01:29 -07:00
c46081c0c3 Make Rational addition work! 2017-04-15 11:01:12 -07:00