'import' Keyword.Reserved ' ' Text "'" Literal.String '/re' Literal.String "'" Literal.String '\n' Text 'import' Keyword.Reserved ' ' Text "'" Literal.String '/sys' Literal.String "'" Literal.String '\n\n\n' Text '# IPv6address = hexpart [ ":" IPv4address ]' Comment.Single '\n' Text '# IPv4address = 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT' Comment.Single '\n' Text '# hexpart = [ hexseq ] [ "::" [ hexseq ] ]' Comment.Single '\n' Text '# hexseq = hex4 *( ":" hex4)' Comment.Single '\n' Text '# hex4 = 1*4HEXDIG' Comment.Single '\n' Text 'hexpart' Name ' ' Text '=' Operator ' ' Text "r'" Literal.String '({0}|)(?:::({0}|)|)' Literal.String "'" Literal.String '.' Operator 'format' Name ' ' Text "r'" Literal.String '(?:[' Literal.String '\\' Literal.String 'da-f]{1,4})(?::[' Literal.String '\\' Literal.String 'da-f]{1,4})*' Literal.String "'" Literal.String '\n' Text 'addrv4' Name ' ' Text '=' Operator ' ' Text "r'" Literal.String '(' Literal.String '\\' Literal.String 'd{1,3})' Literal.String '\\' Literal.String '.(' Literal.String '\\' Literal.String 'd{1,3})' Literal.String '\\' Literal.String '.(' Literal.String '\\' Literal.String 'd{1,3})' Literal.String '\\' Literal.String '.(' Literal.String '\\' Literal.String 'd{1,3})' Literal.String "'" Literal.String '\n' Text 'addrv6' Name ' ' Text '=' Operator ' ' Text 're' Name '.' Operator 'compile' Name ' ' Text '$' Operator ' ' Text "r'" Literal.String '(?i)(?:{})(?::{})?$' Literal.String "'" Literal.String '.' Operator 'format' Name ' ' Text 'hexpart' Name ' ' Text 'addrv4' Name '\n\n\n' Text '# Parse a base-N number given a list of its digits.' Comment.Single '\n' Text '#' Comment.Single '\n' Text '# :param q: the number of digits in that numeral system' Comment.Single '\n' Text '#' Comment.Single '\n' Text '# :param digits: an iterable of integers in range [0..q]' Comment.Single '\n' Text '#' Comment.Single '\n' Text '# :return: a decimal integer' Comment.Single '\n' Text '#' Comment.Single '\n' Text 'base_n' Name ' ' Text '=' Operator ' ' Text 'q' Name ' ' Text 'digits' Name ' ' Text '->' Operator ' ' Text 'foldl' Name ' ' Text '(' Punctuation 'x' Name ' ' Text 'y' Name ' ' Text '->' Operator ' ' Text 'x' Name ' ' Text '*' Operator ' ' Text 'q' Name ' ' Text '+' Operator ' ' Text 'y' Name ')' Punctuation ' ' Text '0' Literal.Number.Integer ' ' Text 'digits' Name '\n\n\n' Text '# Parse a sequence of hexadecimal numbers' Comment.Single '\n' Text '#' Comment.Single '\n' Text '# :param q: a string of colon-separated base-16 integers' Comment.Single '\n' Text '#' Comment.Single '\n' Text '# :return: an iterable of Python ints' Comment.Single '\n' Text '#' Comment.Single '\n' Text 'unhex' Name ' ' Text '=' Operator ' ' Text 'q' Name ' ' Text '->' Operator ' ' Text 'q' Name ' ' Text 'and' Operator.Word ' ' Text 'map' Name.Builtin ' ' Text '(' Punctuation 'p' Name ' ' Text '->' Operator ' ' Text 'int' Name.Builtin ' ' Text 'p' Name ' ' Text '16' Literal.Number.Integer ')' Punctuation ' ' Text '(' Punctuation 'q' Name '.' Operator 'split' Name ' ' Text "'" Literal.String ':' Literal.String "'" Literal.String ')' Punctuation '\n\n\n' Text '# Parse an IPv6 address as specified in RFC 4291.' Comment.Single '\n' Text '#' Comment.Single '\n' Text '# :param address: a string, obviously.' Comment.Single '\n' Text '#' Comment.Single '\n' Text '# :return: an integer which, written in binary form, points to the same node.' Comment.Single '\n' Text '#' Comment.Single '\n' Text 'inet_pton6' Name ' ' Text '=' Operator ' ' Text 'address' Name ' ' Text '->' Operator '\n ' Text 'not' Keyword.Reserved ' ' Text '(' Punctuation 'match' Name ' ' Text '=' Operator ' ' Text 'addrv6' Name '.' Operator 'match' Name ' ' Text 'address' Name ')' Punctuation ' ' Text '=>' Operator ' ' Text 'raise' Keyword.Reserved ' ' Text '$' Operator ' ' Text 'ValueError' Name.Exception ' ' Text "'" Literal.String 'not a valid IPv6 address' Literal.String "'" Literal.String '\n ' Text 'start' Name ',' Operator ' ' Text 'end' Name ',' Operator ' ' Text '*' Operator 'ipv4' Name ' ' Text '=' Operator ' ' Text 'match' Name '.' Operator 'groups' Name '!' Operator '\n\n ' Text 'is_ipv4' Name ' ' Text '=' Operator ' ' Text 'not' Keyword.Reserved ' ' Text '$' Operator ' ' Text 'None' Name.Builtin.Pseudo ' ' Text 'in' Operator.Word ' ' Text 'ipv4' Name '\n ' Text 'shift' Name ' ' Text '=' Operator ' ' Text '(' Punctuation '7' Literal.Number.Integer ' ' Text '-' Operator ' ' Text 'start' Name '.' Operator 'count' Name ' ' Text "'" Literal.String ':' Literal.String "'" Literal.String ' ' Text '-' Operator ' ' Text '2' Literal.Number.Integer ' ' Text '*' Operator ' ' Text 'is_ipv4' Name ')' Punctuation ' ' Text '*' Operator ' ' Text '16' Literal.Number.Integer '\n\n ' Text '(' Punctuation 'end' Name ' ' Text 'is' Operator.Word ' ' Text 'None' Name.Builtin.Pseudo ' ' Text 'and' Operator.Word ' ' Text 'shift' Name ')' Punctuation ' ' Text 'or' Operator.Word ' ' Text 'shift' Name ' ' Text '<' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '=>' Operator ' ' Text 'raise' Keyword.Reserved ' ' Text '$' Operator ' ' Text 'ValueError' Name.Exception ' ' Text "'" Literal.String 'not a valid IPv6 address' Literal.String "'" Literal.String '\n ' Text 'hexaddr' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'base_n' Name ' ' Text '0x10000' Literal.Number.Hex ' ' Text '(' Punctuation 'unhex' Name ' ' Text 'start' Name ')' Punctuation ' ' Text '<<' Operator ' ' Text 'shift' Name ')' Punctuation ' ' Text '+' Operator ' ' Text 'base_n' Name ' ' Text '0x10000' Literal.Number.Hex ' ' Text '(' Punctuation 'unhex' Name ' ' Text '$' Operator ' ' Text 'end' Name ' ' Text 'or' Operator.Word ' ' Text "'" Literal.String "'" Literal.String ')' Punctuation '\n ' Text 'if' Keyword.Reserved ' ' Text '(' Punctuation 'is_ipv4' Name ' ' Text '=>' Operator ' ' Text '(' Punctuation 'hexaddr' Name ' ' Text '<<' Operator ' ' Text '32' Literal.Number.Integer ')' Punctuation ' ' Text '+' Operator ' ' Text 'base_n' Name ' ' Text '0x100' Literal.Number.Hex ' ' Text '(' Punctuation 'map' Name.Builtin ' ' Text 'int' Name.Builtin ' ' Text 'ipv4' Name ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'otherwise' Keyword.Reserved ' ' Text '=>' Operator ' ' Text 'hexaddr' Name ')' Punctuation '\n\n\n' Text 'inet6_type' Name ' ' Text '=' Operator ' ' Text 'q' Name ' ' Text '->' Operator ' ' Text 'if' Keyword.Reserved '\n ' Text 'q' Name ' ' Text '==' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '=>' Operator ' ' Text "'" Literal.String 'unspecified' Literal.String "'" Literal.String '\n ' Text 'q' Name ' ' Text '==' Operator ' ' Text '1' Literal.Number.Integer ' ' Text '=>' Operator ' ' Text "'" Literal.String 'loopback' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '32' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0x000000000000ffff' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'IPv4-mapped' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '64' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0xfe80000000000000' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'link-local' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '120' Literal.Number.Integer ')' Punctuation ' ' Text '!=' Operator ' ' Text '0x00000000000000ff' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'general unicast' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '112' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text '(' Punctuation '1' Literal.Number.Integer ' ' Text '<<' Operator ' ' Text '4' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0x0000000000000000' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'multicast w/ reserved scope value' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '112' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text '(' Punctuation '1' Literal.Number.Integer ' ' Text '<<' Operator ' ' Text '4' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0x000000000000000f' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'multicast w/ reserved scope value' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '112' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text '(' Punctuation '1' Literal.Number.Integer ' ' Text '<<' Operator ' ' Text '4' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0x0000000000000001' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'interface-local multicast' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '112' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text '(' Punctuation '1' Literal.Number.Integer ' ' Text '<<' Operator ' ' Text '4' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0x0000000000000004' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'admin-local multicast' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '112' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text '(' Punctuation '1' Literal.Number.Integer ' ' Text '<<' Operator ' ' Text '4' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0x0000000000000005' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'site-local multicast' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '112' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text '(' Punctuation '1' Literal.Number.Integer ' ' Text '<<' Operator ' ' Text '4' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0x0000000000000008' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'organization-local multicast' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '112' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text '(' Punctuation '1' Literal.Number.Integer ' ' Text '<<' Operator ' ' Text '4' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0x000000000000000e' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'global multicast' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '112' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text '(' Punctuation '1' Literal.Number.Integer ' ' Text '<<' Operator ' ' Text '4' Literal.Number.Integer ')' Punctuation ' ' Text '!=' Operator ' ' Text '0x0000000000000002' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'multicast w/ unknown scope value' Literal.String "'" Literal.String '\n ' Text '(' Punctuation 'q' Name ' ' Text '>>' Operator ' ' Text '24' Literal.Number.Integer ')' Punctuation ' ' Text '%' Operator ' ' Text '(' Punctuation '1' Literal.Number.Integer ' ' Text '<<' Operator ' ' Text '112' Literal.Number.Integer ')' Punctuation ' ' Text '==' Operator ' ' Text '0x00000000000001ff' Literal.Number.Hex ' ' Text '=>' Operator ' ' Text "'" Literal.String 'solicited-node multicast' Literal.String "'" Literal.String '\n ' Text 'otherwise' Keyword.Reserved ' ' Text '=>' Operator ' ' Text "'" Literal.String 'link-local multicast' Literal.String "'" Literal.String '\n\n\n' Text 'print' Name.Builtin ' ' Text '$' Operator ' ' Text '(' Punctuation 'x' Name ' ' Text '->' Operator ' ' Text 'inet6_type' Name ' ' Text 'x' Name ',' Operator ' ' Text 'hex' Name.Builtin ' ' Text 'x' Name ')' Punctuation ' ' Text '$' Operator ' ' Text 'inet_pton6' Name ' ' Text '$' Operator ' ' Text 'sys' Name '.' Operator 'stdin' Name '.' Operator 'read' Name '!.' Operator 'strip' Name '!' Operator '\n' Text