home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import sys
- import re
-
- class FieldStrings:
-
- def __init__(self, bug_handler, run_level = 1):
- self._FieldStrings__run_level = run_level
- self._FieldStrings__bug_handler = bug_handler
- self._FieldStrings__initiate_values()
-
-
- def __initiate_values(self):
- self._FieldStrings__field_instruction_dict = {
- 'EDITTIME': (self._FieldStrings__num_type_and_format_func, 'editing-time'),
- 'NUMCHARS': (self._FieldStrings__num_type_and_format_func, 'number-of-characters-in-doc'),
- 'NUMPAGES': (self._FieldStrings__num_type_and_format_func, 'number-of-pages-in-doc'),
- 'NUMWORDS': (self._FieldStrings__num_type_and_format_func, 'number-of-words-in-doc'),
- 'REVNUM': (self._FieldStrings__num_type_and_format_func, 'revision-number'),
- 'SECTIONPAGES': (self._FieldStrings__num_type_and_format_func, 'num-of-pages-in-section'),
- 'SECTION': (self._FieldStrings__num_type_and_format_func, 'insert-section-number'),
- 'QUOTE': (self._FieldStrings__num_type_and_format_func, 'quote'),
- 'PAGE': (self._FieldStrings__default_inst_func, 'insert-page-number'),
- 'page': (self._FieldStrings__default_inst_func, 'insert-page-number'),
- 'CREATEDATE': (self._FieldStrings__date_func, 'insert-date'),
- 'PRINTDATE': (self._FieldStrings__date_func, 'insert-date'),
- 'SAVEDATE': (self._FieldStrings__date_func, 'last-saved'),
- 'TIME': (self._FieldStrings__date_func, 'insert-time'),
- 'AUTHOR': (self._FieldStrings__simple_info_func, 'user-name'),
- 'COMMENTS': (self._FieldStrings__simple_info_func, 'comments'),
- 'FILENAME': (self._FieldStrings__simple_info_func, 'file-name'),
- 'filename': (self._FieldStrings__simple_info_func, 'file-name'),
- 'KEYWORDS': (self._FieldStrings__simple_info_func, 'keywords'),
- 'LASTSAVEDBY': (self._FieldStrings__simple_info_func, 'last-saved-by'),
- 'SUBJECT': (self._FieldStrings__simple_info_func, 'subject'),
- 'TEMPLATE': (self._FieldStrings__simple_info_func, 'based-on-template'),
- 'TITLE': (self._FieldStrings__simple_info_func, 'document-title'),
- 'USERADDRESS': (self._FieldStrings__simple_info_func, 'user-address'),
- 'USERINITIALS': (self._FieldStrings__simple_info_func, 'user-initials'),
- 'USERNAME': (self._FieldStrings__simple_info_func, 'user-name'),
- 'EQ': (self._FieldStrings__equation_func, 'equation'),
- 'HYPERLINK': (self._FieldStrings__hyperlink_func, 'hyperlink'),
- 'INCLUDEPICTURE': (self._FieldStrings__include_pict_func, 'include-picture'),
- 'INCLUDETEXT': (self._FieldStrings__include_text_func, 'include-text-from-file'),
- 'INDEX': (self._FieldStrings__index_func, 'index'),
- 'NOTEREF': (self._FieldStrings__note_ref_func, 'reference-to-note'),
- 'PAGEREF': (self._FieldStrings__page_ref_func, 'reference-to-page'),
- 'REF': (self._FieldStrings__ref_func, 'reference'),
- 'ref': (self._FieldStrings__ref_func, 'reference'),
- 'SEQ': (self._FieldStrings__sequence_func, 'numbering-sequence'),
- 'SYMBOL': (self._FieldStrings__symbol_func, 'symbol'),
- 'TA': (self._FieldStrings__ta_func, 'anchor-for-table-of-authorities'),
- 'TOA': (self._FieldStrings__toc_table_func, 'table-of-authorities'),
- 'TOC': (self._FieldStrings__toc_table_func, 'table-of-contents'),
- 'AUTONUMOUT': (self._FieldStrings__no_switch_func, 'auto-num-out?'),
- 'COMPARE': (self._FieldStrings__no_switch_func, 'compare'),
- 'DOCVARIABLE': (self._FieldStrings__no_switch_func, 'document-variable'),
- 'GOTOBUTTON': (self._FieldStrings__no_switch_func, 'go-button'),
- 'NEXT': (self._FieldStrings__no_switch_func, 'next'),
- 'NEXTIF': (self._FieldStrings__no_switch_func, 'next-if'),
- 'SKIPIF': (self._FieldStrings__no_switch_func, 'skip-if'),
- 'IF': (self._FieldStrings__no_switch_func, 'if'),
- 'MERGEFIELD': (self._FieldStrings__no_switch_func, 'merge-field'),
- 'MERGEREC': (self._FieldStrings__no_switch_func, 'merge-record'),
- 'MERGESEQ': (self._FieldStrings__no_switch_func, 'merge-sequence'),
- 'PLACEHOLDER': (self._FieldStrings__no_switch_func, 'place-holder'),
- 'PRIVATE': (self._FieldStrings__no_switch_func, 'private'),
- 'RD': (self._FieldStrings__no_switch_func, 'referenced-document'),
- 'SET': (self._FieldStrings__no_switch_func, 'set'),
- 'ADVANCE': (self._FieldStrings__default_inst_func, 'advance'),
- 'ASK': (self._FieldStrings__default_inst_func, 'prompt-user'),
- 'AUTONUMLGL': (self._FieldStrings__default_inst_func, 'automatic-number'),
- 'AUTONUM': (self._FieldStrings__default_inst_func, 'automatic-number'),
- 'AUTOTEXTLIST': (self._FieldStrings__default_inst_func, 'auto-list-text'),
- 'AUTOTEXT': (self._FieldStrings__default_inst_func, 'auto-text'),
- 'BARCODE': (self._FieldStrings__default_inst_func, 'barcode'),
- 'CONTACT': (self._FieldStrings__default_inst_func, 'contact'),
- 'DATABASE': (self._FieldStrings__default_inst_func, 'database'),
- 'DATE': (self._FieldStrings__default_inst_func, 'date'),
- 'date': (self._FieldStrings__default_inst_func, 'date'),
- 'DOCPROPERTY': (self._FieldStrings__default_inst_func, 'document-property'),
- 'FILESIZE': (self._FieldStrings__default_inst_func, 'file-size'),
- 'FILLIN': (self._FieldStrings__default_inst_func, 'fill-in'),
- 'INFO': (self._FieldStrings__default_inst_func, 'document-info'),
- 'LINK': (self._FieldStrings__default_inst_func, 'link'),
- 'PA': (self._FieldStrings__default_inst_func, 'page'),
- 'PRINT': (self._FieldStrings__default_inst_func, 'print'),
- 'STYLEREF': (self._FieldStrings__default_inst_func, 'style-reference'),
- 'USERPROPERTY': (self._FieldStrings__default_inst_func, 'user-property'),
- 'FORMCHECKBOX': (self._FieldStrings__default_inst_func, 'form-checkbox'),
- 'FORMTEXT': (self._FieldStrings__default_inst_func, 'form-text'),
- 'MACROBUTTON': (self._FieldStrings__default_inst_func, 'macro-button') }
- self._FieldStrings__number_dict = {
- 'Arabic': 'arabic',
- 'alphabetic': 'alphabetic',
- 'ALPHABETIC': 'capital-alphabetic',
- 'roman': 'roman',
- 'ROMAN': 'capital-roman',
- 'Ordinal': 'ordinal',
- 'CardText': 'cardinal-text',
- 'OrdText': 'ordinal-text',
- 'Hex': 'hexidecimal',
- 'DollarText': 'dollar-text',
- 'Upper': 'upper-case',
- 'Lower': 'lower-case',
- 'FirstCap': 'first-cap',
- 'Caps': 'caps' }
- self._FieldStrings__text_format_dict = {
- 'Upper': 'upper',
- 'Lower': 'lower',
- 'FirstCap': 'first-cap',
- 'Caps': 'caps' }
- self._FieldStrings__symbol_num_exp = re.compile('SYMBOL (.*?) ')
- self._FieldStrings__symbol_font_exp = re.compile('\\\\f "(.*?)"')
- self._FieldStrings__symbol_size_exp = re.compile('\\\\s (\\d+)')
- self._FieldStrings__date_exp = re.compile('\\\\@\\s{1,}"(.*?)"')
- self._FieldStrings__num_type_exp = re.compile('\\\\\\*\\s{1,}(Arabic|alphabetic|ALPHABETIC|roman|ROMAN|Ordinal|CardText|OrdText|Hex|DollarText|Upper|Lower|FirstCap|Caps)')
- self._FieldStrings__format_text_exp = re.compile('\\\\\\*\\s{1,}(Upper|Lower|FirstCap|Caps)')
- self._FieldStrings__merge_format_exp = re.compile('\\\\\\*\\s{1,}MERGEFORMAT')
- self._FieldStrings__ta_short_field_exp = re.compile('\\\\s\\s{1,}"(.*?)"')
- self._FieldStrings__ta_long_field_exp = re.compile('\\\\l\\s{1,}"(.*?)"')
- self._FieldStrings__ta_category_exp = re.compile('\\\\c\\s{1,}(\\d+)')
- self._FieldStrings__index_insert_blank_line_exp = re.compile('\\\\h\\s{1,}""')
- self._FieldStrings__index_insert_letter_exp = re.compile('\\\\h\\s{1,}"()"')
- self._FieldStrings__index_columns_exp = re.compile('\\\\c\\s{1,}"(.*?)"')
- self._FieldStrings__bookmark_exp = re.compile('\\\\b\\s{1,}(.*?)\\s')
- self._FieldStrings__d_separator = re.compile('\\\\d\\s{1,}(.*?)\\s')
- self._FieldStrings__e_separator = re.compile('\\\\e\\s{1,}(.*?)\\s')
- self._FieldStrings__l_separator = re.compile('\\\\l\\s{1,}(.*?)\\s')
- self._FieldStrings__p_separator = re.compile('\\\\p\\s{1,}(.*?)\\s')
- self._FieldStrings__index_sequence = re.compile('\\\\s\\s{1,}(.*?)\\s')
- self._FieldStrings__index_entry_typ_exp = re.compile('\\\\f\\s{1,}"(.*?)"')
- self._FieldStrings__quote_exp = re.compile('"(.*?)"')
- self._FieldStrings__filter_switch = re.compile('\\\\c\\s{1,}(.*?)\\s')
- self._FieldStrings__link_switch = re.compile('\\\\l\\s{1,}(.*?)\\s')
-
-
- def process_string(self, my_string, type):
- changed_string = ''
- lines = my_string.split('\n')
- for line in lines:
- if line[0:2] == 'tx':
- changed_string += line[17:]
- continue
-
- fields = changed_string.split()
- field_name = fields[0]
- (action, name) = self._FieldStrings__field_instruction_dict.get(field_name, (None, None))
- match_obj = re.search(self._FieldStrings__merge_format_exp, changed_string)
- if match_obj and name:
- name += '<update>dynamic'
- elif name:
- name += '<update>static'
-
- if action:
- the_list = action(field_name, name, changed_string)
- else:
- msg = 'no key for "%s" "%s"\n' % (field_name, changed_string)
- sys.stderr.write(msg)
- if self._FieldStrings__run_level > 3:
- msg = 'no key for "%s" "%s"\n' % (field_name, changed_string)
- raise self._FieldStrings__bug_handler, msg
- self._FieldStrings__run_level > 3
- the_list = self._FieldStrings__fall_back_func(field_name, line)
- return the_list
- return action
-
-
- def __default_inst_func(self, field_name, name, line):
- return [
- None,
- None,
- name]
-
-
- def __fall_back_func(self, field_name, line):
- the_string = field_name
- the_string += '<update>none'
- return [
- None,
- None,
- the_string]
-
-
- def __equation_func(self, field_name, name, line):
- return [
- None,
- None,
- name]
-
-
- def __no_switch_func(self, field_name, name, line):
- return [
- None,
- None,
- name]
-
-
- def __num_type_and_format_func(self, field_name, name, line):
- the_string = name
- num_format = self._FieldStrings__parse_num_format(line)
- if num_format:
- the_string += '<number-format>%s' % num_format
-
- num_type = self._FieldStrings__parse_num_type(line)
- if num_type:
- the_string += '<number-type>%s' % num_type
-
- if field_name == 'QUOTE':
- match_group = re.search('QUOTE\\s{1,}"(.*?)"', line)
- if match_group:
- arg = match_group.group(1)
- the_string += '<argument>%s' % arg
-
-
- return [
- None,
- None,
- the_string]
-
-
- def __num_format_func(self, field_name, name, line):
- the_string = name
- num_format = self._FieldStrings__parse_num_format(line)
- if num_format:
- the_string += '<number-format>%s' % num_format
-
- return [
- None,
- None,
- the_string]
-
-
- def __parse_num_format(self, the_string):
- match_group = re.search(self._FieldStrings__date_exp, the_string)
- if match_group:
- return match_group(1)
-
-
- def __parse_num_type(self, the_string):
- match_group = re.search(self._FieldStrings__num_type_exp, the_string)
- if match_group:
- name = match_group.group(1)
- changed_name = self._FieldStrings__number_dict.get(name)
- if changed_name:
- return changed_name
- sys.stderr.write('module is fields_string\n')
- sys.stderr.write('method is __parse_num_type\n')
- sys.stderr.write('no dictionary entry for %s\n' % name)
-
-
-
- def __date_func(self, field_name, name, line):
- the_string = name
- match_group = re.search(self._FieldStrings__date_exp, line)
- if match_group:
- the_string += '<date-format>%s' % match_group.group(1)
-
- return [
- None,
- None,
- the_string]
-
-
- def __simple_info_func(self, field_name, name, line):
- the_string = name
- match_group = re.search(self._FieldStrings__format_text_exp, line)
- if match_group:
- name = match_group.group(1)
- changed_name = self._FieldStrings__text_format_dict.get(name)
- if changed_name:
- the_string += '<format>%s' % changed_name
- else:
- sys.stderr.write('module is fields_string\n')
- sys.stderr.write('method is __parse_num_type\n')
- sys.stderr.write('no dictionary entry for %s\n' % name)
-
- return [
- None,
- None,
- the_string]
-
-
- def __hyperlink_func(self, field_name, name, line):
- self._FieldStrings__link_switch = re.compile('\\\\l\\s{1,}(.*?)\\s')
- the_string = name
- match_group = re.search(self._FieldStrings__link_switch, line)
- if match_group:
- link = match_group.group(1)
- link = link.replace('"', '"')
- the_string += '<link>%s' % link
-
- line = re.sub(self._FieldStrings__link_switch, '', line)
- match_group = re.search(self._FieldStrings__quote_exp, line)
- if match_group:
- arg = match_group.group(1)
- the_string += '<argument>%s' % arg
-
- index = line.find('\\m')
- if index > -1:
- the_string += '<html2-image-map>true'
-
- index = line.find('\\n')
- if index > -1:
- the_string += '<new-window>true'
-
- index = line.find('\\h')
- if index > -1:
- the_string += '<no-history>true'
-
- return [
- None,
- None,
- the_string]
-
-
- def __include_text_func(self, field_name, name, line):
- the_string = name
- match_group = re.search(self._FieldStrings__format_text_exp, line)
- if match_group:
- name = match_group.group(1)
- changed_name = self._FieldStrings__text_format_dict.get(name)
- if changed_name:
- the_string += '<format>%s' % changed_name
- else:
- sys.stderr.write('module is fields_string\n')
- sys.stderr.write('method is __parse_num_type\n')
- sys.stderr.write('no dictionary entry for %s\n' % name)
-
- match_group = re.search(self._FieldStrings__filter_switch, line)
- if match_group:
- arg = match_group.group(1)
- the_string += '<filter>%s' % arg
-
- line = re.sub(self._FieldStrings__filter_switch, '', line)
- match_group = re.search(self._FieldStrings__quote_exp, line)
- if match_group:
- arg = match_group.group(1)
- arg = arg.replace('"', '"')
- the_string += '<argument>%s' % arg
- else:
- sys.stderr.write('Module is field_strings\n')
- sys.stderr.write('method is include_text_func\n')
- sys.stderr.write('no argument for include text\n')
- index = line.find('\\!')
- if index > -1:
- the_string += '<no-field-update>true'
-
- return [
- None,
- None,
- the_string]
-
-
- def __include_pict_func(self, field_name, name, line):
- the_string = name
- match_group = re.search(self._FieldStrings__filter_switch, line)
- if match_group:
- arg = match_group.group(1)
- arg = arg.replace('"', '"')
- the_string += '<filter>%s' % arg
-
- line = re.sub(self._FieldStrings__filter_switch, '', line)
- match_group = re.search(self._FieldStrings__quote_exp, line)
- if match_group:
- arg = match_group.group(1)
- the_string += '<argument>%s' % arg
- else:
- sys.stderr.write('Module is field_strings\n')
- sys.stderr.write('method is include_pict_func\n')
- sys.stderr.write('no argument for include pict\n')
- index = line.find('\\d')
- if index > -1:
- the_string += '<external>true'
-
- return [
- None,
- None,
- the_string]
-
-
- def __ref_func(self, field_name, name, line):
- the_string = name
- match_group = re.search(self._FieldStrings__format_text_exp, line)
- if match_group:
- name = match_group.group(1)
- changed_name = self._FieldStrings__text_format_dict.get(name)
- if changed_name:
- the_string += '<format>%s' % changed_name
- else:
- sys.stderr.write('module is fields_string\n')
- sys.stderr.write('method is __parse_num_type\n')
- sys.stderr.write('no dictionary entry for %s\n' % name)
-
- line = re.sub(self._FieldStrings__merge_format_exp, '', line)
- words = line.split()
- words = words[1:]
- for word in words:
- if word[0:1] != '\\':
- the_string += '<bookmark>%s' % word
- continue
-
- index = line.find('\\f')
- if index > -1:
- the_string += '<include-note-number>true'
-
- index = line.find('\\h')
- if index > -1:
- the_string += '<hyperlink>true'
-
- index = line.find('\\n')
- if index > -1:
- the_string += '<insert-number>true'
-
- index = line.find('\\r')
- if index > -1:
- the_string += '<insert-number-relative>true'
-
- index = line.find('\\p')
- if index > -1:
- the_string += '<paragraph-relative-position>true'
-
- index = line.find('\\t')
- if index > -1:
- the_string += '<suppress-non-delimeter>true'
-
- index = line.find('\\w')
- if index > -1:
- the_string += '<insert-number-full>true'
-
- return [
- None,
- None,
- the_string]
-
-
- def __toc_table_func(self, field_name, name, line):
- the_string = name
- index = line.find('\\c "Figure"')
- if index > -1:
- the_string = the_string.replace('table-of-contents', 'table-of-figures')
-
- return [
- name,
- None,
- the_string]
-
-
- def __sequence_func(self, field_name, name, line):
- fields = line.split()
- label = fields[1]
- my_string = '%s<label>%s' % (name, label)
- return [
- None,
- None,
- my_string]
-
-
- def __ta_func(self, field_name, name, line):
- the_string = name
- match_group = re.search(self._FieldStrings__ta_short_field_exp, line)
- if match_group:
- short_name = match_group.group(1)
- the_string += '<short-field>%s' % short_name
-
- match_group = re.search(self._FieldStrings__ta_long_field_exp, line)
- if match_group:
- long_name = match_group.group(1)
- the_string += '<long-field>%s' % long_name
-
- match_group = re.search(self._FieldStrings__ta_category_exp, line)
- if match_group:
- category = match_group.group(1)
- the_string += '<category>%s' % category
-
- index = line.find('\\b')
- if index > -1:
- the_string += '<bold>true'
-
- index = line.find('\\i')
- if index > -1:
- the_string += '<italics>true'
-
- return [
- None,
- None,
- the_string]
-
-
- def __index_func(self, field_name, name, line):
- the_string = name
- match_group = re.search(self._FieldStrings__index_insert_blank_line_exp, line)
- if match_group:
- the_string += '<insert-blank-line>true'
- else:
- match_group = re.search(self._FieldStrings__index_insert_letter_exp, line)
- if match_group:
- insert_letter = match_group.group(1)
- the_string += '<insert-letter>%s' % insert_letter
-
- match_group = re.search(self._FieldStrings__index_columns_exp, line)
- if match_group:
- columns = match_group.group(1)
- the_string += '<number-of-columns>%s' % columns
-
- match_group = re.search(self._FieldStrings__bookmark_exp, line)
- if match_group:
- bookmark = match_group.group(1)
- the_string += '<use-bookmark>%s' % bookmark
-
- match_group = re.search(self._FieldStrings__d_separator, line)
- if match_group:
- separator = match_group.group(1)
- separator = separator.replace('"', '"')
- the_string += '<sequence-separator>%s' % separator
-
- match_group = re.search(self._FieldStrings__e_separator, line)
- if match_group:
- separator = match_group.group(1)
- separator = separator.replace('"', '"')
- the_string += '<page-separator>%s' % separator
-
- match_group = re.search(self._FieldStrings__index_sequence, line)
- if match_group:
- sequence = match_group.group(1)
- separator = separator.replace('"', '"')
- the_string += '<use-sequence>%s' % sequence
-
- match_group = re.search(self._FieldStrings__index_entry_typ_exp, line)
- if match_group:
- entry_type = match_group.group(1)
- the_string += '<entry-type>%s' % entry_type
-
- match_group = re.search(self._FieldStrings__p_separator, line)
- if match_group:
- limit = match_group.group(1)
- the_string += '<limit-to-letters>%s' % limit
-
- match_group = re.search(self._FieldStrings__l_separator, line)
- if match_group:
- separator = match_group.group(1)
- separator = separator.replace('"', '"')
- the_string += '<multi-page-separator>%s' % separator
-
- index = line.find('\\a')
- if index > -1:
- the_string += '<accented>true'
-
- index = line.find('\\r')
- if index > -1:
- the_string += '<sub-entry-on-same-line>true'
-
- index = line.find('\\t')
- if index > -1:
- the_string += '<enable-yomi-text>true'
-
- return [
- None,
- None,
- the_string]
-
-
- def __page_ref_func(self, field_name, name, line):
- the_string = name
- num_format = self._FieldStrings__parse_num_format(line)
- if num_format:
- the_string += '<number-format>%s' % num_format
-
- num_type = self._FieldStrings__parse_num_type(line)
- if num_type:
- the_string += '<number-type>%s' % num_type
-
- line = re.sub(self._FieldStrings__merge_format_exp, '', line)
- words = line.split()
- words = words[1:]
- for word in words:
- if word[0:1] != '\\':
- the_string += '<bookmark>%s' % word
- continue
-
- index = line.find('\\h')
- if index > -1:
- the_string += '<hyperlink>true'
-
- index = line.find('\\p')
- if index > -1:
- the_string += '<paragraph-relative-position>true'
-
- return [
- None,
- None,
- the_string]
-
-
- def __note_ref_func(self, field_name, name, line):
- the_string = name
- line = re.sub(self._FieldStrings__merge_format_exp, '', line)
- words = line.split()
- words = words[1:]
- for word in words:
- if word[0:1] != '\\':
- the_string += '<bookmark>%s' % word
- continue
-
- index = line.find('\\h')
- if index > -1:
- the_string += '<hyperlink>true'
-
- index = line.find('\\p')
- if index > -1:
- the_string += '<paragraph-relative-position>true'
-
- index = line.find('\\f')
- if index > -1:
- the_string += '<include-note-number>true'
-
- return [
- None,
- None,
- the_string]
-
-
- def __symbol_func(self, field_name, name, line):
- num = ''
- font = ''
- font_size = ''
- changed_line = ''
- search_obj = re.search(self._FieldStrings__symbol_num_exp, line)
- if search_obj:
- num = search_obj.group(1)
- num = int(num)
- num = '%X' % num
-
- search_obj = re.search(self._FieldStrings__symbol_font_exp, line)
- if search_obj:
- font = search_obj.group(1)
- changed_line += 'cw<ci<font-style<nu<%s\n' % font
-
- search_obj = re.search(self._FieldStrings__symbol_size_exp, line)
- if search_obj:
- font_size = search_obj.group(1)
- font_size = int(font_size)
- font_size = '%.2f' % font_size
- changed_line += 'cw<ci<font-size_<nu<%s\n' % font_size
-
- changed_line += "tx<hx<__________<'%s\n" % num
- return [
- 'Symbol',
- None,
- changed_line]
-
-
-