use std::ops::Range;
use super::core::Token;
pub type Tokens = Vec<(Token, Range<usize>)>;
pub fn make_loc(start: usize, end: usize) -> Range<usize> {
start..end
}
pub fn mk_token(token: Token, start: usize, end: usize) -> (Token, Range<usize>) {
(token, make_loc(start, end))
}
pub fn mk_tokens(specs: &[(Token, usize, usize)]) -> Tokens {
specs
.iter()
.cloned()
.map(|(t, s, e)| mk_token(t, s, e))
.collect()
}
pub fn mk_tokens_with_dummy_span(tokens: Vec<Token>) -> Tokens {
tokens
.into_iter()
.map(|token| mk_token(token, 0, 0))
.collect()
}