use crate::tokenizer::TokenKind;
pub fn op_700(kind: &TokenKind) -> Option<&'static str> {
Some(match kind {
TokenKind::Is => "is",
TokenKind::Equals => "=",
TokenKind::NotEquals => "\\=",
TokenKind::Lt => "<",
TokenKind::Gt => ">",
TokenKind::Lte => "=<",
TokenKind::Gte => ">=",
TokenKind::ArithEq => "=:=",
TokenKind::ArithNeq => "=\\=",
TokenKind::TermEq => "==",
TokenKind::TermNeq => "\\==",
_ => return None,
})
}
pub fn word_op_700(s: &str) -> Option<&'static str> {
match s {
"@<" => Some("@<"),
"@>" => Some("@>"),
"@=<" => Some("@=<"),
"@>=" => Some("@>="),
"=.." => Some("=.."),
_ => None,
}
}
pub fn op_500(kind: &TokenKind) -> Option<&'static str> {
Some(match kind {
TokenKind::Plus => "+",
TokenKind::Minus => "-",
TokenKind::BitAnd => "/\\",
TokenKind::BitOr => "\\/",
TokenKind::Xor => "xor",
_ => return None,
})
}
pub fn op_400(kind: &TokenKind) -> Option<&'static str> {
Some(match kind {
TokenKind::Star => "*",
TokenKind::Slash => "/",
TokenKind::IntDiv => "//",
TokenKind::Mod => "mod",
TokenKind::Rem => "rem",
TokenKind::Div => "div",
TokenKind::ShiftLeft => "<<",
TokenKind::ShiftRight => ">>",
_ => return None,
})
}
pub fn op_as_atom(kind: &TokenKind) -> Option<&'static str> {
Some(match kind {
TokenKind::Plus => "+",
TokenKind::Minus => "-",
TokenKind::Star => "*",
TokenKind::Slash => "/",
TokenKind::IntDiv => "//",
TokenKind::Lt => "<",
TokenKind::Gt => ">",
TokenKind::Lte => "=<",
TokenKind::Gte => ">=",
TokenKind::Equals => "=",
TokenKind::NotEquals => "\\=",
TokenKind::TermEq => "==",
TokenKind::TermNeq => "\\==",
TokenKind::ArithEq => "=:=",
TokenKind::ArithNeq => "=\\=",
TokenKind::Is => "is",
TokenKind::Mod => "mod",
TokenKind::Rem => "rem",
TokenKind::Not => "\\+",
TokenKind::Backslash => "\\",
TokenKind::Arrow => "->",
TokenKind::Semicolon => ";",
TokenKind::Pow => "**",
TokenKind::Caret => "^",
TokenKind::Colon => ":",
TokenKind::ShiftLeft => "<<",
TokenKind::ShiftRight => ">>",
TokenKind::Div => "div",
TokenKind::BitAnd => "/\\",
TokenKind::BitOr => "\\/",
TokenKind::Xor => "xor",
_ => return None,
})
}