Ejemplo n.º 1
0
 def test_fullcapture_simple(self):
     flags = self.flags
     #fullcapture tests for captures of fixed length
     pattern = 'lpeg.C(lpeg.P("a"))'
     #captures exactly the string "a"
     res = processcaptures(runbypattern(pattern, "a", flags).captures,
                           "a",
                           flags=flags).split()
     assert res == ["a"]
     res = processcaptures(runbypattern(pattern, "", flags).captures,
                           "",
                           flags=flags).split()
     assert res == []
Ejemplo n.º 2
0
 def test_processcapture_full_position(self):
     flags = self.flags
     pattern = 'lpeg.P"a"^0*lpeg.Cp()'
     #captures the position of the end of a string of "a"s
     inputstring = "aaaa"
     captures = runbypattern(pattern, inputstring, flags).captures
     assert processcaptures(captures, inputstring).split() == ["POSITION:4"]
Ejemplo n.º 3
0
 def test_opencapture_simple_closecapture(self):
     flags = self.flags
     pattern = 'lpeg.C(lpeg.R("09")^0)'
     #captures a number
     captures = runbypattern(pattern, "123", flags).captures
     assert captures is not None
     assert processcaptures(captures, "123").split() == ["123"]
Ejemplo n.º 4
0
 def test_fullcapture_position(self):
     flags = self.flags
     pattern = 'lpeg.P"a"^0*lpeg.Cp()'
     #captures the position of the end of a string of "a"s
     vmout = runbypattern(pattern, "a", flags=flags)
     assert processcaptures(vmout.captures, "a").split() == ["POSITION:1"]
     runbypattern(pattern, "b", flags=flags)
     runbypattern(pattern, "", flags=flags)
Ejemplo n.º 5
0
 def test_processcapture_open_simple(self):
     flags = self.flags
     pattern = 'lpeg.R("09")^0 *  lpeg.C( lpeg.R("az")) * lpeg.R("09")^0'
     #captures a number
     #followed by a letter
     #followed by a number
     inputstring = "123a567"
     captures = runbypattern(pattern, inputstring, flags).captures
     assert processcaptures(captures, inputstring).split() == ["a"]
Ejemplo n.º 6
0
 def test_opencapture_simple_closecapture_search(self):
     flags = self.flags
     pattern = 'lpeg.P{ lpeg.C(lpeg.R("09")^1) + 1 * lpeg.V(1)}^0'
     #searches text for numbers
     input = "1h12h999x"
     captures = runbypattern(pattern, input, flags).captures
     #print captures
     assert captures is not None
     assert processcaptures(captures, input).split() == ["999", "12", "1"]
Ejemplo n.º 7
0
 def test_fullcapture_simple_2(self):
     flags = self.flags
     pattern = 'lpeg.C(lpeg.P("ab"))'
     #captures exactly the string "ab"
     runbypattern(pattern, "", flags=flags)
     runbypattern(pattern, "a", flags=flags)
     vmout = runbypattern(pattern, "ab", flags=flags)
     assert processcaptures(vmout.captures, "ab").split() == ["ab"]
     runbypattern(pattern, "banana", flags)