summaryrefslogblamecommitdiff
path: root/src/tokens/syntactic.rs
blob: 8684ed9e67edac378295606016122856c253a408 (plain) (tree)





































                                          
use crate::*;


pub struct SyntacticToken {
    /// Location of token in source files.
    pub source: SourceSpan,
    pub variant: SyntacticTokenVariant,
}


pub enum SyntacticTokenVariant {
    LabelDefinition(String),
    MacroDefinition(String),
    MacroDefinitionTerminator,

    Literal(Value),
    Padding(Value),
    Instruction(Instruction),

    Comment(String),
    String(Vec<u8>),

    BlockOpen,
    BlockClose,
    MarkOpen,
    MarkClose,

    Symbol(String),

    Error(SyntacticParseError),
}


pub enum SyntacticParseError {
    UnterminatedComment,
    UnterminatedRawString,
    UnterminatedNullString,
    InvalidPaddingValue(String),
}