home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
-
- class ListTable:
-
- def __init__(self, bug_handler, run_level = 1):
- self._ListTable__bug_handler = bug_handler
- self._ListTable__initiate_values()
- self._ListTable__run_level = run_level
-
-
- def __initiate_values(self):
- self._ListTable__list_table_final = ''
- self._ListTable__state = 'default'
- self._ListTable__final_dict = { }
- self._ListTable__list_dict = { }
- self._ListTable__all_lists = []
- self._ListTable__level_text_string = ''
- self._ListTable__level_text_list = []
- self._ListTable__found_level_text_length = 0
- self._ListTable__level_text_position = None
- self._ListTable__prefix_string = None
- self._ListTable__level_numbers_string = ''
- self._ListTable__state_dict = {
- 'default': self._ListTable__default_func,
- 'level': self._ListTable__level_func,
- 'list': self._ListTable__list_func,
- 'unsure_ob': self._ListTable__after_bracket_func,
- 'level_number': self._ListTable__level_number_func,
- 'level_text': self._ListTable__level_text_func,
- 'list_name': self._ListTable__list_name_func }
- self._ListTable__main_list_dict = {
- 'cw<ls<ls-tem-id_': 'list-template-id',
- 'cw<ls<list-hybri': 'list-hybrid',
- 'cw<ls<lis-tbl-id': 'list-table-id' }
- self._ListTable__level_dict = {
- 'cw<ls<level-star': 'list-number-start',
- 'cw<ls<level-spac': 'list-space',
- 'cw<ls<level-inde': 'level-indent',
- 'cw<ls<fir-ln-ind': 'first-line-indent',
- 'cw<ls<left-inden': 'left-indent',
- 'cw<ls<tab-stop__': 'tabs',
- 'cw<ls<level-type': 'numbering-type',
- 'cw<pf<right-inde': 'right-indent',
- 'cw<pf<left-inden': 'left-indent',
- 'cw<pf<fir-ln-ind': 'first-line-indent',
- 'cw<ci<italics___': 'italics',
- 'cw<ci<bold______': 'bold',
- 'cw<ss<para-style': 'paragraph-style-name' }
-
-
- def __parse_lines(self, line):
- lines = line.split('\n')
- self._ListTable__ob_count = 0
- self._ListTable__ob_group = 0
- for line in lines:
- self._ListTable__token_info = line[:16]
- if self._ListTable__token_info == 'ob<nu<open-brack':
- self._ListTable__ob_count = line[-4:]
- self._ListTable__ob_group += 1
-
- if self._ListTable__token_info == 'cb<nu<clos-brack':
- self._ListTable__cb_count = line[-4:]
- self._ListTable__ob_group -= 1
-
- action = self._ListTable__state_dict.get(self._ListTable__state)
- if action == None:
- print self._ListTable__state
-
- action(line)
-
- self._ListTable__write_final_string()
-
-
- def __default_func(self, line):
- if self._ListTable__token_info == 'ob<nu<open-brack':
- self._ListTable__state = 'unsure_ob'
-
-
-
- def __found_list_func(self, line):
- self._ListTable__state = 'list'
- self._ListTable__list_ob_count = self._ListTable__ob_count
- self._ListTable__all_lists.append([])
- the_dict = {
- 'list-id': [] }
- self._ListTable__all_lists[-1].append(the_dict)
-
-
- def __list_func(self, line):
- if self._ListTable__token_info == 'cb<nu<clos-brack' and self._ListTable__cb_count == self._ListTable__list_ob_count:
- self._ListTable__state = 'default'
- elif self._ListTable__token_info == 'ob<nu<open-brack':
- self._ListTable__state = 'unsure_ob'
- else:
- att = self._ListTable__main_list_dict.get(self._ListTable__token_info)
- if att:
- value = line[20:]
- self._ListTable__all_lists[-1][0][att] = value
-
-
-
- def __found_level_func(self, line):
- self._ListTable__state = 'level'
- self._ListTable__level_ob_count = self._ListTable__ob_count
- self._ListTable__all_lists[-1].append([])
- the_dict = { }
- self._ListTable__all_lists[-1][-1].append(the_dict)
- self._ListTable__level_dict
-
-
- def __level_func(self, line):
- if self._ListTable__token_info == 'cb<nu<clos-brack' and self._ListTable__cb_count == self._ListTable__level_ob_count:
- self._ListTable__state = 'list'
- elif self._ListTable__token_info == 'ob<nu<open-brack':
- self._ListTable__state = 'unsure_ob'
- else:
- att = self._ListTable__level_dict.get(self._ListTable__token_info)
- if att:
- value = line[20:]
- self._ListTable__all_lists[-1][-1][0][att] = value
-
-
-
- def __level_number_func(self, line):
- if self._ListTable__token_info == 'cb<nu<clos-brack' and self._ListTable__cb_count == self._ListTable__level_number_ob_count:
- self._ListTable__state = 'level'
- self._ListTable__all_lists[-1][-1][0]['level-numbers'] = self._ListTable__level_numbers_string
- self._ListTable__level_numbers_string = ''
- elif self._ListTable__token_info == 'tx<hx<__________':
- self._ListTable__level_numbers_string += '\\'%s' % line[18:]
- elif self._ListTable__token_info == 'tx<nu<__________':
- self._ListTable__level_numbers_string += line[17:]
-
-
-
- def __level_text_func(self, line):
- if self._ListTable__token_info == 'cb<nu<clos-brack' and self._ListTable__cb_count == self._ListTable__level_text_ob_count:
- if self._ListTable__prefix_string:
- if self._ListTable__all_lists[-1][-1][0]['numbering-type'] == 'bullet':
- self._ListTable__prefix_string = self._ListTable__prefix_string.replace('_', '')
- self._ListTable__all_lists[-1][-1][0]['bullet-type'] = self._ListTable__prefix_string
-
-
- self._ListTable__state = 'level'
- self._ListTable__level_text_string = ''
- self._ListTable__found_level_text_length = 0
- elif self._ListTable__token_info == 'tx<hx<__________':
- self._ListTable__parse_level_text_length(line)
- elif self._ListTable__token_info == 'tx<nu<__________':
- text = line[17:]
- if text and text[-1] == ';':
- text = text.replace(';', '')
-
- if not self._ListTable__level_text_position:
- self._ListTable__prefix_string = text
- else:
- self._ListTable__all_lists[-1][-1][0][self._ListTable__level_text_position] = text
- elif self._ListTable__token_info == 'cw<ls<lv-tem-id_':
- value = line[20:]
- self._ListTable__all_lists[-1][-1][0]['level-template-id'] = value
-
-
-
- def __parse_level_text_length(self, line):
- num = line[18:]
- the_num = int(num, 16)
- if not self._ListTable__found_level_text_length:
- self._ListTable__all_lists[-1][-1][0]['list-text-length'] = str(the_num)
- self._ListTable__found_level_text_length = 1
- else:
- the_num += 1
- the_string = str(the_num)
- level_marker = 'level%s-suffix' % the_string
- show_marker = 'show-level%s' % the_string
- self._ListTable__level_text_position = level_marker
- self._ListTable__all_lists[-1][-1][0][show_marker] = 'true'
- if self._ListTable__prefix_string:
- prefix_marker = 'level%s-prefix' % the_string
- self._ListTable__all_lists[-1][-1][0][prefix_marker] = self._ListTable__prefix_string
- self._ListTable__prefix_string = None
-
-
-
- def __list_name_func(self, line):
- if self._ListTable__token_info == 'cb<nu<clos-brack' and self._ListTable__cb_count == self._ListTable__list_name_ob_count:
- self._ListTable__state = 'list'
-
-
-
- def __after_bracket_func(self, line):
- if self._ListTable__token_info == 'cw<ls<level-text':
- self._ListTable__state = 'level_text'
- self._ListTable__level_text_ob_count = self._ListTable__ob_count
- elif self._ListTable__token_info == 'cw<ls<level-numb':
- self._ListTable__level_number_ob_count = self._ListTable__ob_count
- self._ListTable__state = 'level_number'
- elif self._ListTable__token_info == 'cw<ls<list-tb-le':
- self._ListTable__found_level_func(line)
- elif self._ListTable__token_info == 'cw<ls<list-in-tb':
- self._ListTable__found_list_func(line)
- elif self._ListTable__token_info == 'cw<ls<list-name_':
- self._ListTable__state = 'list_name'
- self._ListTable__list_name_ob_count = self._ListTable__ob_count
- elif self._ListTable__run_level > 3:
- msg = 'No matching token after open bracket\n'
- msg += 'token is "%s\n"' % line
- raise self._ListTable__bug_handler
-
-
-
- def __add_to_final_line(self):
- self._ListTable__list_table_final = 'mi<mk<listabbeg_\n'
- self._ListTable__list_table_final += 'mi<tg<open______<list-table\n' + 'mi<mk<listab-beg\n' + self._ListTable__list_table_final
- self._ListTable__list_table_final += 'mi<mk<listab-end\n' + 'mi<tg<close_____<list-table\n'
- self._ListTable__list_table_final += 'mi<mk<listabend_\n'
-
-
- def __write_final_string(self):
- not_allow = [
- 'list-id']
- id = 0
- self._ListTable__list_table_final = 'mi<mk<listabbeg_\n'
- self._ListTable__list_table_final += 'mi<tg<open______<list-table\n' + 'mi<mk<listab-beg\n' + self._ListTable__list_table_final
- for list in self._ListTable__all_lists:
- id += 1
- self._ListTable__list_table_final += 'mi<tg<open-att__<list-in-table'
- the_dict = list[0]
- the_keys = the_dict.keys()
- for the_key in the_keys:
- att = the_key
- value = the_dict[att]
- self._ListTable__list_table_final += '<%s>%s' % (att, value)
-
- self._ListTable__list_table_final += '\n'
- levels = list[1:]
- level_num = 0
- for level in levels:
- level_num += 1
- self._ListTable__list_table_final += 'mi<tg<empty-att_<level-in-table'
- self._ListTable__list_table_final += '<level>%s' % str(level_num)
- the_dict2 = level[0]
- the_keys2 = the_dict2.keys()
- is_bullet = 0
- bullet_text = ''
- for the_key2 in the_keys2:
- test_bullet = the_dict2.get('numbering-type')
- att2 = the_key2
- value2 = the_dict2[att2]
- if att2[0:10] == 'show-level' and is_bullet:
- continue
- None if the_key in not_allow else self if test_bullet == 'bullet' else self
- if att2[-6:] == 'suffix' and is_bullet:
- bullet_text += value2
- continue
- if att2[-6:] == 'prefix' and is_bullet:
- bullet_text += value2
- continue
- self._ListTable__list_table_final += '<%s>%s' % (att2, value2)
-
- if is_bullet:
- pass
-
- self._ListTable__list_table_final += '\n'
-
- self._ListTable__list_table_final += 'mi<tg<close_____<list-in-table\n'
-
- self._ListTable__list_table_final += 'mi<mk<listab-end\n' + 'mi<tg<close_____<list-table\n'
- self._ListTable__list_table_final += 'mi<mk<listabend_\n'
-
-
- def parse_list_table(self, line):
- self._ListTable__parse_lines(line)
- return (self._ListTable__list_table_final, self._ListTable__all_lists)
-
-
-