UnionToken::get(), '&' => IntersectionToken::get(), '(' => OpeningParenthesisToken::get(), ')' => ClosingParenthesisToken::get(), '<' => OpeningBracketToken::get(), '>' => ClosingBracketToken::get(), '[' => OpeningSquareBracketToken::get(), ']' => ClosingSquareBracketToken::get(), '{' => OpeningCurlyBracketToken::get(), '}' => ClosingCurlyBracketToken::get(), '::' => DoubleColonToken::get(), ':' => ColonToken::get(), '?' => NullableToken::get(), ',' => CommaToken::get(), '...' => TripleDotsToken::get(), 'int', 'integer' => IntegerToken::get(), 'array' => ArrayToken::array(), 'non-empty-array' => ArrayToken::nonEmptyArray(), 'iterable' => ArrayToken::iterable(), 'list' => ListToken::list(), 'non-empty-list' => ListToken::nonEmptyList(), 'class-string' => ClassStringToken::get(), 'callable' => CallableToken::get(), 'value-of' => ValueOfToken::get(), 'null' => new TypeToken(NullType::get()), 'true' => new TypeToken(BooleanValueType::true()), 'false' => new TypeToken(BooleanValueType::false()), 'mixed' => new TypeToken(MixedType::get()), 'float' => new TypeToken(NativeFloatType::get()), 'positive-int' => new TypeToken(PositiveIntegerType::get()), 'negative-int' => new TypeToken(NegativeIntegerType::get()), 'non-positive-int' => new TypeToken(NonPositiveIntegerType::get()), 'non-negative-int' => new TypeToken(NonNegativeIntegerType::get()), 'string' => new TypeToken(NativeStringType::get()), 'non-empty-string' => new TypeToken(NonEmptyStringType::get()), 'numeric-string' => new TypeToken(NumericStringType::get()), 'bool', 'boolean' => new TypeToken(NativeBooleanType::get()), 'array-key' => new TypeToken(ArrayKeyType::default()), 'object' => new TypeToken(UndefinedObjectType::get()), 'scalar' => new TypeToken(ScalarConcreteType::get()), default => match (true) { str_starts_with($symbol, "'") || str_starts_with($symbol, '"') => new StringValueToken($symbol), filter_var($symbol, FILTER_VALIDATE_INT) !== false => new IntegerValueToken((int)$symbol), is_numeric($symbol) => new FloatValueToken((float)$symbol), default => $this->delegate->tokenize($symbol), }, }; } }