const ATOMS: [(&str, Rule); 128] = [ ("#t", Rule::boolean), ("#f", Rule::boolean), ("#true", Rule::boolean), ("#false", Rule::boolean), ("#\\alarm", Rule::character), ("#\\backspace", Rule::character), ("#\\delete", Rule::character), ("#\\escape", Rule::character), ("#\\newline", Rule::character), ("#\\null", Rule::character), ("#\\return", Rule::character), ("#\\space", Rule::character), ("#\\tab", Rule::character), ("#\\a", Rule::character), ("#\\x41", Rule::character), ("#b+1010", Rule::number), ("#b-1010", Rule::number), ("#b1010", Rule::number), ("#b+inf.0", Rule::number), ("#b-inf.0", Rule::number), ("#b+nan.0", Rule::number), ("#b-nan.0", Rule::number), ("#o+52", Rule::number), ("#o-52", Rule::number), ("#o52", Rule::number), ("#o+inf.0", Rule::number), ("#o-inf.0", Rule::number), ("#o+nan.0", Rule::number), ("#o-nan.0", Rule::number), ("#x+2A", Rule::number), ("#x-2A", Rule::number), ("#x2a", Rule::number), ("#x+inf.0", Rule::number), ("#x-inf.0", Rule::number), ("#x+nan.0", Rule::number), ("#x-nan.0", Rule::number), ("#d+42", Rule::number), ("#d-42", Rule::number), ("#d42", Rule::number), ("#d+inf.0", Rule::number), ("#d-inf.0", Rule::number), ("#d+nan.0", Rule::number), ("#d-nan.0", Rule::number), ("+42", Rule::number), ("-42", Rule::number), ("42", Rule::number), ("+inf.0", Rule::number), ("-inf.0", Rule::number), ("+nan.0", Rule::number), ("-nan.0", Rule::number), ("42e+10", Rule::number), ("42e-10", Rule::number), ("42e10", Rule::number), ("42E+10", Rule::number), ("42E-10", Rule::number), ("42E10", Rule::number), ("+42e+10", Rule::number), ("+42e-10", Rule::number), ("+42e10", Rule::number), ("+42E+10", Rule::number), ("+42E-10", Rule::number), ("+42E10", Rule::number), ("-42e+10", Rule::number), ("-42e-10", Rule::number), ("-42e10", Rule::number), ("-42E+10", Rule::number), ("-42E-10", Rule::number), ("-42E10", Rule::number), (".42e+10", Rule::number), (".42e-10", Rule::number), (".42e10", Rule::number), (".42E+10", Rule::number), (".42E-10", Rule::number), (".42E10", Rule::number), (".42e+10", Rule::number), ("+.42e-10", Rule::number), ("+.42e10", Rule::number), ("+.42E+10", Rule::number), ("+.42E-10", Rule::number), ("+.42E10", Rule::number), ("-.42e+10", Rule::number), ("-.42e-10", Rule::number), ("-.42e10", Rule::number), ("-.42E+10", Rule::number), ("-.42E-10", Rule::number), ("-.42E10", Rule::number), ("10.42e+10", Rule::number), ("10.42e-10", Rule::number), ("10.42e10", Rule::number), ("10.42E+10", Rule::number), ("10.42E-10", Rule::number), ("10.42E10", Rule::number), ("10.42e+10", Rule::number), ("+10.42e-10", Rule::number), ("+10.42e10", Rule::number), ("+10.42E+10", Rule::number), ("+10.42E-10", Rule::number), ("+10.42E10", Rule::number), ("-10.42e+10", Rule::number), ("-10.42e-10", Rule::number), ("-10.42e10", Rule::number), ("-10.42E+10", Rule::number), ("-10.42E-10", Rule::number), ("-10.42E10", Rule::number), (r#""""#, Rule::string), (r#""a""#, Rule::string), (r#""Hello World!""#, Rule::string), (r#""Hello World!\nGoodbye""#, Rule::string), (r#""Hello World!\x21;nGoodbye""#, Rule::string), (r#""Hello World! Goodbye""#, Rule::string), (r#""Hello World! \ Goodbye""#, Rule::string), (r#"hello"#, Rule::symbol), (r#"..."#, Rule::symbol), (r#"+"#, Rule::symbol), (r#"+soup+"#, Rule::symbol), (r#"<=?"#, Rule::symbol), (r#"->string"#, Rule::symbol), (r#"a34kTMNs"#, Rule::symbol), (r#"lambda"#, Rule::symbol), (r#"list->vector"#, Rule::symbol), (r#"q"#, Rule::symbol), (r#"V17a"#, Rule::symbol), (r#"the-word-recursion-has-many-meanings"#, Rule::symbol), (r#"|two words|"#, Rule::symbol), (r#"|two\x20;words|"#, Rule::symbol), ("#u8() ; comment", Rule::bytevector), ("#u8(0)", Rule::bytevector), ("#u8(0 1 2 3 4 #| comment |# 5 6 7 8 9)", Rule::bytevector), ];