Token.fromPbToken constructor

Token.fromPbToken(
  1. Token token
)

Implementation

factory Token.fromPbToken(pb.Token token) {
  switch (token.type) {
    case pb.TokenType.TT_FALSE:
      return BoolToken(false);
    case pb.TokenType.TT_TRUE:
      return BoolToken(true);
    case pb.TokenType.TT_KEYWORD:
      return KeywordToken(token.keyword.value);
    case pb.TokenType.TT_LIST:
      return ListToken(
        token.list.startSymbol,
        token.list.endSymbol,
        token.list.list.map(Token.fromPbToken).toList(),
      );
    case pb.TokenType.TT_NIL:
      return NilToken();
    case pb.TokenType.TT_NUMBER:
      return NumberToken(token.number.value);
    case pb.TokenType.TT_STRING:
      return StringToken(token.string.value);
    case pb.TokenType.TT_SYMBOL:
      return SymbolToken(token.symbol.name);
  }

  return UnknownToken();
}