use std::str::FromStr; use sl::Form; grammar; pub Term: Form = { "true" => Form::new_bool(true), "false" => Form::new_bool(false), NUM => Form::new_int(isize::from_str(<>).unwrap()), SYM => Form::new_symbol(<>), "(" ")" => <>.unwrap_or(Form::new_nil()), "'" => Form::new_pair(Form::new_symbol("quote"), Form::new_pair(<>, Form::new_nil())), "!" => { h.append(t).unwrap() }, }; ListInside: Form = { =>Form::new_pair(<>, Form::new_nil()), => Form::new_pair(h, t), "." => Form::new_pair(a, d), } match { "true", "false", "(", ")", ".", "'", "!", r"[0-9]+" => NUM, r"[a-zA-Z+*/_=?%&|^<>-][\w+*/=_?%&|^<>-]*" => SYM, r"(;[^\n]*\n)|\s+" => { } }