home *** CD-ROM | disk | FTP | other *** search
/ Netrunner 2004 October / NETRUNNER0410.ISO / regular / iria107a.lzh / script / sre_constants.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-11-17  |  5.5 KB  |  197 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.0)
  3.  
  4. MAXREPEAT = 65535
  5.  
  6. class error(Exception):
  7.     pass
  8.  
  9. FAILURE = 'failure'
  10. SUCCESS = 'success'
  11. ANY = 'any'
  12. ANY_ALL = 'any_all'
  13. ASSERT = 'assert'
  14. ASSERT_NOT = 'assert_not'
  15. AT = 'at'
  16. BRANCH = 'branch'
  17. CALL = 'call'
  18. CATEGORY = 'category'
  19. CHARSET = 'charset'
  20. GROUPREF = 'groupref'
  21. GROUPREF_IGNORE = 'groupref_ignore'
  22. IN = 'in'
  23. IN_IGNORE = 'in_ignore'
  24. INFO = 'info'
  25. JUMP = 'jump'
  26. LITERAL = 'literal'
  27. LITERAL_IGNORE = 'literal_ignore'
  28. MARK = 'mark'
  29. MAX_REPEAT = 'max_repeat'
  30. MAX_UNTIL = 'max_until'
  31. MIN_REPEAT = 'min_repeat'
  32. MIN_UNTIL = 'min_until'
  33. NEGATE = 'negate'
  34. NOT_LITERAL = 'not_literal'
  35. NOT_LITERAL_IGNORE = 'not_literal_ignore'
  36. RANGE = 'range'
  37. REPEAT = 'repeat'
  38. REPEAT_ONE = 'repeat_one'
  39. SUBPATTERN = 'subpattern'
  40. AT_BEGINNING = 'at_beginning'
  41. AT_BEGINNING_LINE = 'at_beginning_line'
  42. AT_BOUNDARY = 'at_boundary'
  43. AT_NON_BOUNDARY = 'at_non_boundary'
  44. AT_END = 'at_end'
  45. AT_END_LINE = 'at_end_line'
  46. CATEGORY_DIGIT = 'category_digit'
  47. CATEGORY_NOT_DIGIT = 'category_not_digit'
  48. CATEGORY_SPACE = 'category_space'
  49. CATEGORY_NOT_SPACE = 'category_not_space'
  50. CATEGORY_WORD = 'category_word'
  51. CATEGORY_NOT_WORD = 'category_not_word'
  52. CATEGORY_LINEBREAK = 'category_linebreak'
  53. CATEGORY_NOT_LINEBREAK = 'category_not_linebreak'
  54. CATEGORY_LOC_WORD = 'category_loc_word'
  55. CATEGORY_LOC_NOT_WORD = 'category_loc_not_word'
  56. CATEGORY_UNI_DIGIT = 'category_uni_digit'
  57. CATEGORY_UNI_NOT_DIGIT = 'category_uni_not_digit'
  58. CATEGORY_UNI_SPACE = 'category_uni_space'
  59. CATEGORY_UNI_NOT_SPACE = 'category_uni_not_space'
  60. CATEGORY_UNI_WORD = 'category_uni_word'
  61. CATEGORY_UNI_NOT_WORD = 'category_uni_not_word'
  62. CATEGORY_UNI_LINEBREAK = 'category_uni_linebreak'
  63. CATEGORY_UNI_NOT_LINEBREAK = 'category_uni_not_linebreak'
  64. OPCODES = [
  65.     FAILURE,
  66.     SUCCESS,
  67.     ANY,
  68.     ANY_ALL,
  69.     ASSERT,
  70.     ASSERT_NOT,
  71.     AT,
  72.     BRANCH,
  73.     CALL,
  74.     CATEGORY,
  75.     CHARSET,
  76.     GROUPREF,
  77.     GROUPREF_IGNORE,
  78.     IN,
  79.     IN_IGNORE,
  80.     INFO,
  81.     JUMP,
  82.     LITERAL,
  83.     LITERAL_IGNORE,
  84.     MARK,
  85.     MAX_UNTIL,
  86.     MIN_UNTIL,
  87.     NOT_LITERAL,
  88.     NOT_LITERAL_IGNORE,
  89.     NEGATE,
  90.     RANGE,
  91.     REPEAT,
  92.     REPEAT_ONE,
  93.     SUBPATTERN]
  94. ATCODES = [
  95.     AT_BEGINNING,
  96.     AT_BEGINNING_LINE,
  97.     AT_BOUNDARY,
  98.     AT_NON_BOUNDARY,
  99.     AT_END,
  100.     AT_END_LINE]
  101. CHCODES = [
  102.     CATEGORY_DIGIT,
  103.     CATEGORY_NOT_DIGIT,
  104.     CATEGORY_SPACE,
  105.     CATEGORY_NOT_SPACE,
  106.     CATEGORY_WORD,
  107.     CATEGORY_NOT_WORD,
  108.     CATEGORY_LINEBREAK,
  109.     CATEGORY_NOT_LINEBREAK,
  110.     CATEGORY_LOC_WORD,
  111.     CATEGORY_LOC_NOT_WORD,
  112.     CATEGORY_UNI_DIGIT,
  113.     CATEGORY_UNI_NOT_DIGIT,
  114.     CATEGORY_UNI_SPACE,
  115.     CATEGORY_UNI_NOT_SPACE,
  116.     CATEGORY_UNI_WORD,
  117.     CATEGORY_UNI_NOT_WORD,
  118.     CATEGORY_UNI_LINEBREAK,
  119.     CATEGORY_UNI_NOT_LINEBREAK]
  120.  
  121. def makedict(list):
  122.     d = { }
  123.     i = 0
  124.     for item in list:
  125.         d[item] = i
  126.         i = i + 1
  127.     
  128.     return d
  129.  
  130. OPCODES = makedict(OPCODES)
  131. ATCODES = makedict(ATCODES)
  132. CHCODES = makedict(CHCODES)
  133. OP_IGNORE = {
  134.     GROUPREF: GROUPREF_IGNORE,
  135.     IN: IN_IGNORE,
  136.     LITERAL: LITERAL_IGNORE,
  137.     NOT_LITERAL: NOT_LITERAL_IGNORE }
  138. AT_MULTILINE = {
  139.     AT_BEGINNING: AT_BEGINNING_LINE,
  140.     AT_END: AT_END_LINE }
  141. CH_LOCALE = {
  142.     CATEGORY_DIGIT: CATEGORY_DIGIT,
  143.     CATEGORY_NOT_DIGIT: CATEGORY_NOT_DIGIT,
  144.     CATEGORY_SPACE: CATEGORY_SPACE,
  145.     CATEGORY_NOT_SPACE: CATEGORY_NOT_SPACE,
  146.     CATEGORY_WORD: CATEGORY_LOC_WORD,
  147.     CATEGORY_NOT_WORD: CATEGORY_LOC_NOT_WORD,
  148.     CATEGORY_LINEBREAK: CATEGORY_LINEBREAK,
  149.     CATEGORY_NOT_LINEBREAK: CATEGORY_NOT_LINEBREAK }
  150. CH_UNICODE = {
  151.     CATEGORY_DIGIT: CATEGORY_UNI_DIGIT,
  152.     CATEGORY_NOT_DIGIT: CATEGORY_UNI_NOT_DIGIT,
  153.     CATEGORY_SPACE: CATEGORY_UNI_SPACE,
  154.     CATEGORY_NOT_SPACE: CATEGORY_UNI_NOT_SPACE,
  155.     CATEGORY_WORD: CATEGORY_UNI_WORD,
  156.     CATEGORY_NOT_WORD: CATEGORY_UNI_NOT_WORD,
  157.     CATEGORY_LINEBREAK: CATEGORY_UNI_LINEBREAK,
  158.     CATEGORY_NOT_LINEBREAK: CATEGORY_UNI_NOT_LINEBREAK }
  159. SRE_FLAG_TEMPLATE = 1
  160. SRE_FLAG_IGNORECASE = 2
  161. SRE_FLAG_LOCALE = 4
  162. SRE_FLAG_MULTILINE = 8
  163. SRE_FLAG_DOTALL = 16
  164. SRE_FLAG_UNICODE = 32
  165. SRE_FLAG_VERBOSE = 64
  166. SRE_INFO_PREFIX = 1
  167. SRE_INFO_LITERAL = 2
  168. SRE_INFO_CHARSET = 4
  169. if __name__ == '__main__':
  170.     import string
  171.     
  172.     def dump(f, d, prefix):
  173.         items = d.items()
  174.         items.sort((lambda a, b: cmp(a[1], b[1])))
  175.         for k, v in items:
  176.             f.write('#define %s_%s %s\n' % (prefix, string.upper(k), v))
  177.         
  178.  
  179.     f = open('sre_constants.h', 'w')
  180.     f.write("/*\n * Secret Labs' Regular Expression Engine\n *\n * regular expression matching engine\n *\n * NOTE: This file is generated by sre_constants.py.  If you need\n * to change anything in here, edit sre_constants.py and run it.\n *\n * Copyright (c) 1997-2000 by Secret Labs AB.  All rights reserved.\n *\n * See the _sre.c file for information on usage and redistribution.\n */\n\n")
  181.     dump(f, OPCODES, 'SRE_OP')
  182.     dump(f, ATCODES, 'SRE')
  183.     dump(f, CHCODES, 'SRE')
  184.     f.write('#define SRE_FLAG_TEMPLATE %d\n' % SRE_FLAG_TEMPLATE)
  185.     f.write('#define SRE_FLAG_IGNORECASE %d\n' % SRE_FLAG_IGNORECASE)
  186.     f.write('#define SRE_FLAG_LOCALE %d\n' % SRE_FLAG_LOCALE)
  187.     f.write('#define SRE_FLAG_MULTILINE %d\n' % SRE_FLAG_MULTILINE)
  188.     f.write('#define SRE_FLAG_DOTALL %d\n' % SRE_FLAG_DOTALL)
  189.     f.write('#define SRE_FLAG_UNICODE %d\n' % SRE_FLAG_UNICODE)
  190.     f.write('#define SRE_FLAG_VERBOSE %d\n' % SRE_FLAG_VERBOSE)
  191.     f.write('#define SRE_INFO_PREFIX %d\n' % SRE_INFO_PREFIX)
  192.     f.write('#define SRE_INFO_LITERAL %d\n' % SRE_INFO_LITERAL)
  193.     f.write('#define SRE_INFO_CHARSET %d\n' % SRE_INFO_CHARSET)
  194.     f.close()
  195.     print 'done'
  196.  
  197.