package me.august.lumen.compile.parser.components; import me.august.lumen.compile.parser.TokenParser; import me.august.lumen.compile.parser.ast.expr.Expression; import me.august.lumen.compile.parser.ast.expr.NumExpr; import me.august.lumen.compile.scanner.Token; import me.august.lumen.compile.scanner.Type; import me.august.lumen.compile.scanner.tokens.NumberToken; public class NumberParser implements PrefixParser { @Override public Expression parse(TokenParser parser, Token token) { if (token.getType() == Type.NUMBER) { NumberToken numTok = (NumberToken) token; return new NumExpr(numTok.getValue()); } else { throw new RuntimeException("Unexpected token: " + token); } } }