extern crate portus;
use portus::{lang, serialize};
use std::io::{self, Read};
fn main() {
let mut buffer = String::new();
io::stdin().read_to_string(&mut buffer).unwrap();
println!("buffer:\n{}", buffer);
let (ast, mut sc) = lang::Prog::new_with_scope(&buffer).unwrap();
println!("ast:\n{:?}", ast);
let bin = lang::Bin::compile_prog(&ast, &mut sc).unwrap();
println!("instructions:\n{:?}", bin);
let msg = serialize::install::Msg {
sid: 1,
program_uid: 9,
num_events: bin.events.len() as u32,
num_instrs: bin.instrs.len() as u32,
instrs: bin,
};
let buf = serialize::serialize(&msg).unwrap();
println!("serialized:\n{:?}", buf);
}