aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/shedlang/compiler/tokeniser/Token.java
blob: eb2d6ba9bee349cd807b55b9c07e17fcd5c8fd59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package org.shedlang.compiler.tokeniser;

import org.zwobble.sourcetext.SourceRange;

public record Token<T>(SourceRange sourceRange, T tokenType) {
    public static <T> Token<T> token(SourceRange sourceRange, T tokenType) {
        return new Token<T>(sourceRange, tokenType);
    }

    public String describe() {
        return tokenType + ": " + sourceRange.charSequence();
    }

    public CharSequence value() {
        return this.sourceRange.charSequence();
    }
}