Implement display and string support resolves #10
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
use crate::parser::Datum;
|
||||
use crate::parser::Datum::*;
|
||||
use std::io;
|
||||
use std::io::prelude::*;
|
||||
use std::mem;
|
||||
|
||||
pub fn add(mut args: Vec<Datum>) -> Datum {
|
||||
@@ -84,3 +86,17 @@ pub fn lt(args: Vec<Datum>) -> Datum {
|
||||
Boolean(true)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn display(args: Vec<Datum>) -> Datum {
|
||||
for i in 1..args.len() {
|
||||
match &args[i] {
|
||||
Boolean(b) => print!("{}", b),
|
||||
Number(n) => print!("{}", n),
|
||||
String(s) => print!("{}", s),
|
||||
List(v) => print!("{:?}", v),
|
||||
_ => panic!("DISPLAY -- cannot-print {:?}", args[1]),
|
||||
};
|
||||
}
|
||||
io::stdout().flush().ok().expect("Could not flush stdout");
|
||||
Unspecified
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user