Example #1
0
File: peg.py Project: jjpe/macropy
    def test_basic(self):
        parse1 = peg("Hello World")
        with require:
            parse1.parse_string("Hello World").output == 'Hello World'
            parse1.parse_string("Hello, World").index == 0

        parse2 = peg(("Hello World", (".").r))
        with require:
            parse2.parse_string("Hello World").index == 11
            parse2.parse_string("Hello World1").output == ['Hello World', '1']
            parse2.parse_string("Hello World ").output == ['Hello World', ' ']
Example #2
0
    def test_basic(self):
        parse1 = peg("Hello World")
        with require:
            parse1.parse_string("Hello World").output == 'Hello World'
            parse1.parse_string("Hello, World").index == 0

        parse2 = peg(("Hello World", (".").r))
        with require:
            parse2.parse_string("Hello World").index == 11
            parse2.parse_string("Hello World1").output == ['Hello World', '1']
            parse2.parse_string("Hello World ").output == ['Hello World', ' ']
Example #3
0
File: peg.py Project: jjpe/macropy
    def test_conversion(self):
        parse1 = peg((("Hello World", "!".rep1) // f(_[1])))

        with require:
            parse1.parse_string("Hello World!!!").output == ['!', '!', '!']
            parse1.parse_string("Hello World").index == 11

        parse2 = parse1 // len

        with require:
            parse2.parse_string("Hello World!!!").output == 3
Example #4
0
    def test_conversion(self):
        parse1 = peg((("Hello World", "!".rep1) // f(_[1])))

        with require:
            parse1.parse_string("Hello World!!!").output == ['!', '!', '!']
            parse1.parse_string("Hello World").index == 11

        parse2 = parse1 // len

        with require:
            parse2.parse_string("Hello World!!!").output == 3
Example #5
0
    def test_operators(self):
        parse1 = peg("Hello World")

        parse2 = peg((parse1, "!".rep1))
        with require:
            parse2.parse_string("Hello World!!!").output == [
                'Hello World', ['!', '!', '!']
            ]
            parse2.parse_string("Hello World!").output == [
                'Hello World', ['!']
            ]
            parse2.parse_string("Hello World").index == 11

        parse3 = peg((parse1, ("!" | "?")))

        with require:
            parse3.parse_string("Hello World!").output == ['Hello World', '!']
            parse3.parse_string("Hello World?").output == ['Hello World', '?']
            parse3.parse_string("Hello World%").index == 11

        parse4 = peg((parse1, "!".rep & "!!!"))

        with require:
            parse4.parse_string("Hello World!!!").output == [
                'Hello World', ['!', '!', '!']
            ]
            parse4.parse_string("Hello World!!").index == 11

        parse4 = peg((parse1, "!".rep & "!!!"))

        with require:
            parse4.parse_string("Hello World!!!").output == [
                "Hello World", ["!", "!", "!"]
            ]

        parse5 = peg((parse1, "!".rep & - "!!!"))
        with require:
            parse5.parse_string("Hello World!!").output == [
                "Hello World", ['!', '!']
            ]
            parse5.parse_string("Hello World!!!").index == 11

        parse6 = peg((parse1, "!" * 3))
        with require:
            parse6.parse_string("Hello World!").index == 12
            parse6.parse_string("Hello World!!").index == 13
            parse6.parse_string("Hello World!!!").output == [
                "Hello World", ['!', '!', '!']
            ]
            parse6.parse_string("Hello World!!!!").index == 14
Example #6
0
File: peg.py Project: jjpe/macropy
    def test_operators(self):
        parse1 = peg("Hello World")

        parse2 = peg((parse1, "!".rep1))
        with require:
            parse2.parse_string("Hello World!!!").output == ['Hello World', ['!', '!', '!']]
            parse2.parse_string("Hello World!").output  == ['Hello World', ['!']]
            parse2.parse_string("Hello World").index == 11

        parse3 = peg((parse1, ("!" | "?")))

        with require:
            parse3.parse_string("Hello World!").output == ['Hello World', '!']
            parse3.parse_string("Hello World?").output == ['Hello World', '?']
            parse3.parse_string("Hello World%").index == 11

        parse4 = peg((parse1, "!".rep & "!!!"))

        with require:
            parse4.parse_string("Hello World!!!").output == ['Hello World', ['!', '!', '!']]
            parse4.parse_string("Hello World!!").index == 11

        parse4 = peg((parse1, "!".rep & "!!!"))

        with require:
            parse4.parse_string("Hello World!!!").output == ["Hello World", ["!", "!", "!"]]

        parse5 = peg((parse1, "!".rep & -"!!!"))
        with require:
            parse5.parse_string("Hello World!!").output == ["Hello World", ['!', '!']]
            parse5.parse_string("Hello World!!!").index == 11

        parse6 = peg((parse1, "!" * 3))
        with require:
            parse6.parse_string("Hello World!").index == 12
            parse6.parse_string("Hello World!!").index == 13
            parse6.parse_string("Hello World!!!").output == ["Hello World", ['!', '!', '!']]
            parse6.parse_string("Hello World!!!!").index == 14