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
4d7d709b2f
Keep working on Numbers and stuff -- trying to get integrated with the new sibillexer crate
2017-04-15 09:37:48 -07:00
5e71947128
Partial implementation of Rational addition
2017-04-14 07:48:02 -07:00
403536ec4c
Lots of churn for Real
2017-04-14 07:47:51 -07:00
2b2d1029f3
Make Number its own struct with real/imag elements
2017-04-14 07:47:39 -07:00
27c4a80631
Add gcd() and lcm() methods to Int
2017-04-13 20:51:47 -07:00
74f98379b9
Move Complex struct to its own file
2017-04-12 09:36:30 -07:00
a60ec25c8e
Implement irrational addition
2017-04-12 09:36:18 -07:00
1b816e19df
Add a failing test to add rationals
2017-04-12 09:15:28 -07:00
9c52bcb040
Remove convert_down() from Number
2017-04-12 08:50:50 -07:00
e503e6da7c
Clean up the enum matching for Reals
2017-04-12 08:50:37 -07:00