#![allow(missing_docs)]
use logos::Logos;
#[derive(Debug, Clone, Copy, PartialEq, Logos)]
pub enum Token {
#[token("{")]
LeftBrace,
#[token("}")]
RightBrace,
#[token("[")]
LeftBracket,
#[token("]")]
RightBracket,
#[token(",")]
Comma,
#[token(":")]
Colon,
#[token("null")]
Null,
#[token("true")]
True,
#[token("false")]
False,
#[token("\n")]
#[token("\r")]
Newline,
#[regex(r"[ \t]+", logos::skip)]
#[regex(r#""(?:[^"\\]|\\.)*""#)]
#[regex(r#"'(?:[^'\\]|\\.)*'"#)]
String,
#[regex(r"[a-zA-Z_$][a-zA-Z0-9_$-]*")]
UnquotedString,
#[regex(r"(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?")]
#[regex(r"-(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?")]
Number,
#[regex(r"//[^\r\n]*")]
#[regex(r"#[^\r\n]*")]
SingleLineComment,
#[regex(r"/\*([^*]|\*[^/])*\*/")]
MultiLineComment,
Eof,
Error, }