def _endswith_tagtable_rest_of_line(text): return ( # Is the current line the end of record marker? (None, TT.Word, text, +8, +1), # Read whatever else is on that line (could be nothing) (None, TT.AllInSet, TT.invset('\r\n'), +1, +1), # Get the end of line ("end", TT.Is, '\n', +1, -2), # matches '\n' (None, TT.Is, '\r', +4, +1), ("end", TT.Is, '\n', +1, -4), (None, TT.Skip, -1, +1, +1), ("end", TT.Skip, +1, -6, -6), # Check if EOF (only tests when the end of record line has no \n) # Only time this should fail is with a bug in TT. ("end", TT.EOF, TT.Here, TT.MatchFail, TT.MatchOk), # Not the end of record marker, so read to the end of line (None, TT.AllInSet, TT.invset('\r\n'), +1, +1), # Check if EOF (None, TT.EOF, TT.Here, +1, TT.MatchOk), # Not EOF, so scarf any newlines and try again (None, TT.AllInSet, TT.set('\r\n'), TT.MatchFail, -10), )
class _modinit: # Reserved URL chars as defined by RFC2396 unsafe_charset = TextTools.set(\ 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' '0123456789' '-_.!~*\'()',0) # Modified version of the above set which includes even fewer # characters (esp. dots and quotes are not included) rpc_unsafe_charset = TextTools.set(\ 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' '0123456789' '-_()',0)
def _endswith_tagtable_newline(text): return ( # Is the current line the end of record marker? (None, TT.Word, text, +6, +1), # Make sure it ends the line ("end", TT.Is, '\n', +1, -1), # matches '\n' (None, TT.Is, '\r', +4, +1), ("end", TT.Is, '\n', +1, -3), (None, TT.Skip, -1, +1, +1), ("end", TT.Skip, +1, -5, -5), # Not the end of record marker, so read to the end of line (None, TT.AllInSet, TT.invset('\r\n'), +1, +1), # Check if EOF (None, TT.EOF, TT.Here, +1, TT.MatchOk), # Not EOF, so scarf any newlines (None, TT.AllInSet, TT.set('\r\n'), TT.MatchFail, -8), )