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
use std::collections::BTreeSet;

use crate::span::SpanId;
use crate::token::{STokenKind, TokenKind};

#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub enum ExpectedThing {
    EndOfFile,
    Simple(STokenKind),
    Ident,
    Number,
    String,
    TextBlock,
    Expr,
    BinaryOp,
}

#[derive(Clone, Debug, PartialEq, Eq)]
pub enum ParseError {
    Expected {
        span: SpanId,
        expected: BTreeSet<ExpectedThing>,
        instead: TokenKind,
    },
}