iowo/crates/lang/src/parser/grammar/expression/lit.rs

21 lines
410 B
Rust
Raw Normal View History

2024-04-24 11:07:38 +02:00
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;
}
2024-04-24 19:55:16 +02:00
let lit = p.start("lit");
2024-04-24 11:07:38 +02:00
p.do_bump();
Some(lit.complete(p, LITERAL))
}