Ejemplo n.º 1
0
        value = self.__parseNested(sep + result[0][1] + inv_sep, sep, inv_sep,
                                   0)
        if not value:
            return ''
        return re.sub("""\s+""", ' ', value)

    def __parseNested(self, s, separator, inv_separator, level):
        stack = []
        for i, _ in enumerate(s):
            if s[i:i + len(separator)] == separator and not (
                    s[i:i + len(inv_separator)] == inv_separator):
                stack.append(i)
            elif s[i:i + len(inv_separator)] == inv_separator and stack:
                start = stack.pop()
                if len(stack) == level:
                    return s[start + 1:i]


if __name__ == '__main__':
    from UserInterface import UserInterface
    ui = UserInterface()
    from testApplication import oracle
    for e in oracle.valid_authors:
        b = BibTeXParser(e.getBibTeX()).parse()
        print b
        i = ui.addEntry(e.getBibTeX())
        original = ui.getBibTeX(i)
        ui.updateEntry(i, b.toBibTeX())
        new = ui.getBibTeX(i)
        print original
        print original == new