reval 0.6.4

Simple Rust expression evaluator
Documentation
use unicode_xid::UnicodeXID;

const IF: &str = "if";
const REF: &str = "ref";
const NEG: &str = "neg";
const FLOAT: &str = "float";
const INT: &str = "int";
const DEC: &str = "dec";

const KEYWORDS: [&str; 6] = [IF, REF, NEG, FLOAT, INT, DEC];

pub(crate) fn is_reserved_keyword(name: &str) -> bool {
    KEYWORDS.contains(&name)
}

pub(crate) fn is_valid_identifier(name: &str) -> bool {
    let mut chars = name.chars();
    match chars.next() {
        Some(start) => {
            start == '_' || start.is_xid_start() && chars.all(UnicodeXID::is_xid_continue)
        }
        None => false,
    }
}

#[cfg(test)]
mod test {}