literal method

MathExpr literal()

Implementation

MathExpr literal() {
  final token = peek();

  return switch (token.type) {
    TokenType.kFunc => declFuncExpr(),
    TokenType.kTrue => trueExpr(),
    TokenType.kFalse => falseExpr(),
    TokenType.kNumber => numberLiteral(),
    TokenType.kString => stringLiteral(),
    TokenType.kNil => nilLiteral(),
    TokenType.kRaw => rawExpr(),
    TokenType.kSelf => selfExpr(),
    TokenType.kLParen => groupExpr(),
    final TokenType type => advanceAndThen(
      () =>
          throw '${token.pos} Expected literal value or variable. Found $type.',
    ),
  };
}