Module Expr Str Import alias ImportFrom alias ImportFrom alias Assign NameStore Call AttributeLoad NameLoad attr Str BinOpBitOr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str BinOpBitOr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str BinOpBitOr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str BinOpBitOr AttributeLoad NameLoad attr AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body If UnaryOpNot NameLoad body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore Call AttributeLoad NameLoad attr Str Str Assign NameStore Call NameLoad NameLoad If BoolOpOr CompareLt NameLoad Num CompareGt NameLoad Num body Return NameLoad If CompareIs Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num NameLoad body Return NameLoad If CompareIs Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num NameLoad body Return NameLoad Return Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad NameLoad While NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareIs NameLoad NameLoad body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareIs NameLoad NameLoad body Break Assign NameStore Call NameLoad NameLoad If UnaryOpNot Call AttributeLoad NameLoad attr body Return NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body While NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse Break Return NameLoad decorator_list
N/A N/A 
    Email address validation plugin for gmail.com email addresses.

    Notes:

        must be between 6-30 characters
        must start with letter or number
        must end with letter or number
        must use letters, numbers, or dots (.)
        consecutive dots (..) are not permitted
        dots (.) at the beginning or end are not permitted
        case is ignored
        plus (+) is allowed, everything after + is ignored
      1. All characters prefixing the plus symbol (+) and stripping all dot
           symbol (.) must be between 6-30 characters.


    Grammar:

        local-part       ->      main-part [ tags ]
        main-part        ->      alphanum { [dot] alphanum }
        tags             ->      { + [ dot-atom ] }
        dot-atom    	 ->      atom { [ dot   atom ] }
        atom             ->      { A-Za-z0-9!#$%&'*+\-/=?^_`{|}~ }
        alphanum         ->      alpha | num
        dot              ->      .
 N/A re flanker.addresslib.tokenizer TokenStream flanker.addresslib.tokenizer ATOM N/A GMAIL_BASE N/A N/A re compile 
                        [A-Za-z0-9\.]+
                         N/A N/A re MULTILINE N/A re VERBOSE N/A ALPHANUM N/A N/A re compile 
                        [A-Za-z0-9]+
                         N/A N/A re MULTILINE N/A re VERBOSE N/A PLUS N/A N/A re compile 
                        [\+]
                         N/A N/A re MULTILINE N/A re VERBOSE N/A DOT N/A N/A re compile 
                        [\.]
                         N/A N/A re MULTILINE N/A re VERBOSE validate N/A N/A localpart N/A N/A N/A N/A localpart N/A N/A False N/A lparts N/A N/A localpart split + N/A real_localpart N/A lparts N/A 0 N/A stripped_localpart N/A N/A real_localpart replace . N/A l N/A len stripped_localpart N/A N/A N/A l 6 N/A l 30 N/A N/A False N/A N/A N/A N/A ALPHANUM match N/A real_localpart N/A 0 None N/A N/A False N/A N/A N/A N/A ALPHANUM match N/A real_localpart N/A -1 None N/A N/A False N/A N/A _validate real_localpart N/A _validate N/A N/A localpart N/A N/A N/A stream N/A TokenStream localpart N/A True N/A N/A mpart N/A N/A stream get_token ALPHANUM N/A N/A mpart None N/A N/A False N/A mpart N/A N/A stream get_token DOT N/A N/A mpart None N/A N/A N/A tgs N/A _tags stream N/A N/A N/A N/A stream end_of_stream N/A N/A False N/A True N/A _tags N/A N/A stream N/A N/A N/A True N/A N/A pls N/A N/A stream get_token PLUS N/A pls N/A N/A N/A N/A stream get_token ATOM N/A N/A N/A True N/A