Beispiel #1
0
class TestOneOrMoreParser(TestCase):
    def setUp(self):
        cparse = CharacterParser("c")
        self.oomparser = OneOrMoreParser(cparse)

    def test_accept(self):
        self.assertEqual(self.oomparser.parse("cccb"), (["c", "c", "c"], "b"))
        self.assertEqual(self.oomparser.parse("ccc"), (["c", "c", "c"], ""))

    def test_fail(self):
        self.assertRaises(ParseError, self.oomparser.parse, "b")
        self.assertRaises(ParseError, self.oomparser.parse, "")
Beispiel #2
0
class TestOneOrMoreParser(TestCase):
    def setUp(self):
        cparse = CharacterParser("c")
        self.oomparser = OneOrMoreParser(cparse)

    def test_accept(self):
        self.assertEqual(
            self.oomparser.parse("cccb"),
            (["c", "c", "c"], "b")
        )
        self.assertEqual(
            self.oomparser.parse("ccc"),
            (["c", "c", "c"], "")
        )

    def test_fail(self):
        self.assertRaises(ParseError, self.oomparser.parse, "b")
        self.assertRaises(ParseError, self.oomparser.parse, "")
Beispiel #3
0
 def setUp(self):
     cparse = CharacterParser("c")
     self.oomparser = OneOrMoreParser(cparse)
Beispiel #4
0
 def __init__(self):
     SequenceParser.__init__(self, WordParser(), CharacterParser(":"),
                             OneOrMoreParser(CharacterParser(" ")),
                             WordParser(), CharacterParser("\n"))
Beispiel #5
0
 def __init__(self):
     OneOrMoreParser.__init__(
         self, CharacterClassParser(ascii_letters + digits + "-"))
Beispiel #6
0
asdf/asdf
------------------------
"""


class WordParser(OneOrMoreParser):
    def __init__(self):
        OneOrMoreParser.__init__(
            self, CharacterClassParser(ascii_letters + digits + "-"))

    def transform(self, result):
        return "".join(result)


seplineparser = SequenceParser(CharacterParser("-"),
                               OneOrMoreParser(CharacterParser("-")),
                               CharacterParser("\n"))


class KVLineParser(SequenceParser):
    def __init__(self):
        SequenceParser.__init__(self, WordParser(), CharacterParser(":"),
                                OneOrMoreParser(CharacterParser(" ")),
                                WordParser(), CharacterParser("\n"))

    def transform(self, result):
        return (result[0], result[3])


headerparser = SequenceParser(seplineparser, OneOrMoreParser(KVLineParser()),
                              seplineparser)
Beispiel #7
0
 def __init__(self):
     OneOrMoreParser.__init__(self,
         CharacterClassParser(
             ascii_letters+digits+"-"
         )
     )
Beispiel #8
0
 def setUp(self):
     cparse = CharacterParser("c")
     self.oomparser = OneOrMoreParser(cparse)