summaryrefslogtreecommitdiff
path: root/src/tokens/syntactic.rs
blob: 8684ed9e67edac378295606016122856c253a408 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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),
}