pub trait Expression { fn gen_code(&self); }