oom/
token.rs

1use std::collections::VecDeque;
2use std::fmt::{Display, Formatter};
3
4use crate::Span;
5
6#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
7pub struct Token {
8    pub name: String,
9    pub span: Span,
10    pub inner: VecDeque<Token>,
11    pub left: Option<Box<Token>>,
12    pub right: Option<Box<Token>>,
13}
14impl Token {
15    pub fn new(name: &str, span: Span) -> Token {
16        Token {
17            name: name.to_string(),
18            span,
19            inner: VecDeque::new(),
20            left: None,
21            right: None,
22        }
23    }
24}
25impl Display for Token {
26    fn fmt(&self, f: &mut Formatter) -> std::fmt::Result {
27        write!(f, "{}", self.name.as_str())
28    }
29}