def _setupParseTree(self, rowFrom, rowTo, colIndex, tree):
if colIndex == self._longestEntry:<EOL><INDENT>return<EOL><DEDENT>prevchar = None<EOL>rowIndex = rowFrom<EOL>while rowIndex <= rowTo:<EOL><INDENT>if colIndex < len(self._parsedata[rowIndex]):<EOL><INDENT>c = self._parsedata[rowIndex][colIndex]<EOL>if c != prevchar:<EOL><INDENT>tree[c] = {}<EOL>if  prevchar is not None:<EOL><INDENT>self._setupParseTree(rowFrom, rowIndex - <NUM_LIT:1>, colIndex + <NUM_LIT:1>, tree[prevchar])<EOL><DEDENT>rowFrom = rowIndex<EOL>prevchar = c<EOL><DEDENT>if rowIndex == rowTo:<EOL><INDENT>self._setupParseTree(rowFrom, rowIndex, colIndex + <NUM_LIT:1>, tree[prevchar])<EOL><DEDENT><DEDENT>rowIndex = rowIndex + <NUM_LIT:1><EOL><DEDENT>
Build the search tree for multi-character encodings.