aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenParser.java
blob: 78052eb1969ef1b7b09c0e751fc81030015d9807 (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
package org.zwobble.mammoth.internal.styles.parsing;

import java.util.Optional;

public class TokenParser {
    public static Optional<String> parseClassName(TokenIterator<TokenType> tokens) {
        if (tokens.trySkip(TokenType.SYMBOL, ".")) {
            return Optional.of(parseIdentifier(tokens));
        } else {
            return Optional.empty();
        }
    }

    public static String parseIdentifier(TokenIterator<TokenType> tokens) {
        return EscapeSequences.decode(tokens.nextValue(TokenType.IDENTIFIER));
    }

    public static String parseString(TokenIterator<TokenType> tokens) {
        return parseStringToken(tokens.next(TokenType.STRING));
    }

    static String parseStringToken(Token<TokenType> token) {
        String value = token.getValue();
        return EscapeSequences.decode(value.substring(1, value.length() - 1));
    }
}