aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/shedlang/compiler/tokeniser/UnexpectedTokenException.java
blob: 714edf6bf0aa6047451fa585e917a755a0f3851a (plain)
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
package org.shedlang.compiler.tokeniser;

import org.shedlang.compiler.errors.SourceError;
import org.shedlang.compiler.sources.FileFragmentSource;

public class UnexpectedTokenException extends SourceError {
    private final String expected;
    private final Token<?> actual;

    public UnexpectedTokenException(
        String expected,
        Token<?> actual
    ) {
        super(
            "Expected: " + expected + "\nBut got: " + actual.tokenType() + " \"" + actual.value() + "\"",
            new FileFragmentSource(actual.sourceRange())
        );
        this.expected = expected;
        this.actual = actual;
    }

    public String getExpected() {
        return expected;
    }

    public Token<?> getActual() {
        return actual;
    }
}