forked from katzen-cafe/iowo
21 lines
405 B
Rust
21 lines
405 B
Rust
|
use enumset::enum_set;
|
||
|
|
||
|
use crate::parser::{
|
||
|
syntax_kind::{SyntaxKind::*, TokenSet},
|
||
|
CompletedMarker, Parser,
|
||
|
};
|
||
|
|
||
|
const LIT_TOKENS: TokenSet = enum_set!(INT_NUM | FLOAT_NUM | STRING);
|
||
|
|
||
|
pub fn literal(p: &mut Parser) -> Option<CompletedMarker> {
|
||
|
if !LIT_TOKENS.contains(p.current()) {
|
||
|
return None;
|
||
|
}
|
||
|
|
||
|
let lit = p.start();
|
||
|
|
||
|
p.do_bump();
|
||
|
|
||
|
Some(lit.complete(p, LITERAL))
|
||
|
}
|