@@ -34,8 +34,11 @@ def __getattr__(self, attr):
3434 def __str__ (self ):
3535 return '' .join (self .s )
3636
37- def add (self , * args ):
38- self .s .extend (list (args ))
37+ def add (self , value ):
38+ if isinstance (value , list ):
39+ self .s .extend (value )
40+ else :
41+ self .s .append (value )
3942 return self
4043
4144 def regex (self ):
@@ -55,28 +58,28 @@ def anything(self):
5558
5659 @re_escape
5760 def anything_but (self , value ):
58- return self .add ('([^' , value , ' ]*)' )
61+ return self .add ('([^%s ]*)' % value )
5962
6063 def end_of_line (self ):
6164 return self .add ('$' )
6265
6366 @re_escape
6467 def maybe (self , value ):
65- return self .add ("(" , value , " )?" )
68+ return self .add ("(%s )?" % value )
6669
6770 def start_of_line (self ):
6871 return self .add ('^' )
6972
7073 @re_escape
7174 def find (self , value ):
72- return self .add ('(' , value , ')' )
75+ return self .add ('(%s)' % value )
7376 then = find
7477
7578 # special characters and groups
7679
7780 @re_escape
7881 def any (self , value ):
79- return self .add ("([" , value , "])" )
82+ return self .add ('([%s])' % value )
8083 any_of = any
8184
8285 def line_break (self ):
@@ -86,7 +89,7 @@ def line_break(self):
8689 @re_escape
8790 def range (self , * args ):
8891 from_tos = [args [i :i + 2 ] for i in range (0 , len (args ), 2 )]
89- return self .add ("([" , '' .join (['-' .join (i ) for i in from_tos ]), "])" )
92+ return self .add ("([%s])" % '' .join (['-' .join (i ) for i in from_tos ]))
9093
9194 def tab (self ):
9295 return self .add (r'\t' )
0 commit comments