# phpman > perldoc > Type::Parser

## NAME
    [Type::Parser](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3AParser/markdown) - parse type constraint strings

## SYNOPSIS
     use v5.10;
     use strict;
     use warnings;

     use [Type::Parser](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3AParser/markdown) qw( eval_type );
     use [Type::Registry](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ARegistry/markdown);

     my $reg = [Type::Registry](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ARegistry/markdown)->for_me;
     $reg->add_types("[Types::Standard](https://www.chedong.com/phpMan.php/perldoc/Types%3A%3AStandard/markdown)");

     my $type = eval_type("Int | ArrayRef[Int]", $reg);

     $type->[check(10)](https://www.chedong.com/phpMan.php/man/check/10/markdown);        # true
     $type->check([1..4]);    # true
     $type->check({foo=>1});  # false

## STATUS
    This module is covered by the Type-Tiny stability policy.

## DESCRIPTION
    Generally speaking, you probably don't want to be using this module directly. Instead use the
    "lookup" method from [Type::Registry](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ARegistry/markdown) which wraps it.

### Functions
    "parse($string)"
        Parse the type constraint string into something like an AST.

        If called in list context, also returns any "tail" found on the original string.

    "extract_type($string, $registry)"
        Compile a type constraint string into a [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) object.

        If called in list context, also returns any "tail" found on the original string.

    "eval_type($string, $registry)"
        Compile a type constraint string into a [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) object.

        Throws an error if the "tail" contains any non-whitespace character.

### Constants
    The following constants correspond to values returned by "$token->type".

    "TYPE"
    "QUOTELIKE"
    "STRING"
    "HEXNUM"
    "CLASS"
    "L_BRACKET"
    "R_BRACKET"
    "COMMA"
    "SLURPY"
    "UNION"
    "INTERSECT"
    "NOT"
    "L_PAREN"
    "R_PAREN"
    "MYSTERY"

## BUGS
    Please report any bugs to <<https://github.com/tobyink/p5-type-tiny/issues>>.

## SEE ALSO
    [Type::Registry](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ARegistry/markdown).

## AUTHOR
    Toby Inkster <<tobyink@cpan.org>>.

## COPYRIGHT AND LICENCE
    This software is copyright (c) 2013-2014, 2017-2021 by Toby Inkster.

    This is free software; you can redistribute it and/or modify it under the same terms as the Perl
    5 programming language system itself.

## DISCLAIMER OF WARRANTIES
    THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
    WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
    PURPOSE.

