Ejemplo n.º 1
0
 def test_group(self):
     g = VisualRegexGrammar()
     self._parseStringTest(
         g.item(), '(a)',
         Schema.Group(capturing='1', subexp=Schema.LiteralChar(char='a')))
     self._parseStringTest(g.item(), '(?i)', Schema.SetFlags(flags='i'))
     self._parseStringTest(
         g.item(), '(?:a)',
         Schema.Group(subexp=Schema.LiteralChar(char='a')))
     self._parseStringTest(
         g.item(), '(?P<id>a)',
         Schema.DefineNamedGroup(subexp=Schema.LiteralChar(char='a'),
                                 name='id'))
     self._parseStringTest(g.item(), '(?P=id)',
                           Schema.MatchNamedGroup(name='id'))
     self._parseStringTest(g.item(), '(?#abc)', Schema.Comment(text='abc'))
     self._parseStringTest(
         g.item(), '(?=a)',
         Schema.Lookahead(subexp=Schema.LiteralChar(char='a'),
                          positive='1'))
     self._parseStringTest(
         g.item(), '(?!a)',
         Schema.Lookahead(subexp=Schema.LiteralChar(char='a')))
     self._parseStringTest(
         g.item(), '(?<=a)',
         Schema.Lookbehind(subexp=Schema.LiteralChar(char='a'),
                           positive='1'))
     self._parseStringTest(
         g.item(), '(?<!a)',
         Schema.Lookbehind(subexp=Schema.LiteralChar(char='a')))
Ejemplo n.º 2
0
 def comment(self):
     return (Literal('(?#') + RegEx('[^)]+').optional() + Literal(')')
             ).action(lambda input, begin, end, x, bindings: Schema.Comment(
                 text=(x[1] if x[1] is not None else '')))