home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 January / maximum-cd-2011-01.iso / DiscContents / calibre-0.7.26.msi / file_2404 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-10-31  |  4.5 KB  |  152 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4.  
  5. class _TokenType(tuple):
  6.     parent = None
  7.     
  8.     def split(self):
  9.         buf = []
  10.         node = self
  11.         while node is not None:
  12.             buf.append(node)
  13.             node = node.parent
  14.         buf.reverse()
  15.         return buf
  16.  
  17.     
  18.     def __init__(self, *args):
  19.         self.subtypes = set()
  20.  
  21.     
  22.     def __contains__(self, val):
  23.         if self is val and type(val) is self.__class__:
  24.             pass
  25.         return val[:len(self)] == self
  26.  
  27.     
  28.     def __getattr__(self, val):
  29.         if not val or not val[0].isupper():
  30.             return tuple.__getattribute__(self, val)
  31.         new = _TokenType(self + (val,))
  32.         setattr(self, val, new)
  33.         self.subtypes.add(new)
  34.         new.parent = self
  35.         return new
  36.  
  37.     
  38.     def __hash__(self):
  39.         return hash(tuple(self))
  40.  
  41.     
  42.     def __repr__(self):
  43.         if not self or '.':
  44.             pass
  45.         return 'Token' + '' + '.'.join(self)
  46.  
  47.  
  48. Token = _TokenType()
  49. Text = Token.Text
  50. Whitespace = Text.Whitespace
  51. Error = Token.Error
  52. Other = Token.Other
  53. Keyword = Token.Keyword
  54. Name = Token.Name
  55. Literal = Token.Literal
  56. String = Literal.String
  57. Number = Literal.Number
  58. Punctuation = Token.Punctuation
  59. Operator = Token.Operator
  60. Comment = Token.Comment
  61. Generic = Token.Generic
  62. Token.Token = Token
  63. Token.String = String
  64. Token.Number = Number
  65.  
  66. def is_token_subtype(ttype, other):
  67.     return ttype in other
  68.  
  69.  
  70. def string_to_tokentype(s):
  71.     if isinstance(s, _TokenType):
  72.         return s
  73.     if not s:
  74.         return Token
  75.     node = Token
  76.     for item in s.split('.'):
  77.         node = getattr(node, item)
  78.     
  79.     return node
  80.  
  81. STANDARD_TYPES = {
  82.     Token: '',
  83.     Text: '',
  84.     Whitespace: 'w',
  85.     Error: 'err',
  86.     Other: 'x',
  87.     Keyword: 'k',
  88.     Keyword.Constant: 'kc',
  89.     Keyword.Declaration: 'kd',
  90.     Keyword.Namespace: 'kn',
  91.     Keyword.Pseudo: 'kp',
  92.     Keyword.Reserved: 'kr',
  93.     Keyword.Type: 'kt',
  94.     Name: 'n',
  95.     Name.Attribute: 'na',
  96.     Name.Builtin: 'nb',
  97.     Name.Builtin.Pseudo: 'bp',
  98.     Name.Class: 'nc',
  99.     Name.Constant: 'no',
  100.     Name.Decorator: 'nd',
  101.     Name.Entity: 'ni',
  102.     Name.Exception: 'ne',
  103.     Name.Function: 'nf',
  104.     Name.Property: 'py',
  105.     Name.Label: 'nl',
  106.     Name.Namespace: 'nn',
  107.     Name.Other: 'nx',
  108.     Name.Tag: 'nt',
  109.     Name.Variable: 'nv',
  110.     Name.Variable.Class: 'vc',
  111.     Name.Variable.Global: 'vg',
  112.     Name.Variable.Instance: 'vi',
  113.     Literal: 'l',
  114.     Literal.Date: 'ld',
  115.     String: 's',
  116.     String.Backtick: 'sb',
  117.     String.Char: 'sc',
  118.     String.Doc: 'sd',
  119.     String.Double: 's2',
  120.     String.Escape: 'se',
  121.     String.Heredoc: 'sh',
  122.     String.Interpol: 'si',
  123.     String.Other: 'sx',
  124.     String.Regex: 'sr',
  125.     String.Single: 's1',
  126.     String.Symbol: 'ss',
  127.     Number: 'm',
  128.     Number.Float: 'mf',
  129.     Number.Hex: 'mh',
  130.     Number.Integer: 'mi',
  131.     Number.Integer.Long: 'il',
  132.     Number.Oct: 'mo',
  133.     Operator: 'o',
  134.     Operator.Word: 'ow',
  135.     Punctuation: 'p',
  136.     Comment: 'c',
  137.     Comment.Multiline: 'cm',
  138.     Comment.Preproc: 'cp',
  139.     Comment.Single: 'c1',
  140.     Comment.Special: 'cs',
  141.     Generic: 'g',
  142.     Generic.Deleted: 'gd',
  143.     Generic.Emph: 'ge',
  144.     Generic.Error: 'gr',
  145.     Generic.Heading: 'gh',
  146.     Generic.Inserted: 'gi',
  147.     Generic.Output: 'go',
  148.     Generic.Prompt: 'gp',
  149.     Generic.Strong: 'gs',
  150.     Generic.Subheading: 'gu',
  151.     Generic.Traceback: 'gt' }
  152.