_scons_shlex.py
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:11k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. # -*- coding: iso-8859-1 -*-
  2. """A lexical analyzer class for simple shell-like syntaxes."""
  3. # Module and documentation by Eric S. Raymond, 21 Dec 1998
  4. # Input stacking and error message cleanup added by ESR, March 2000
  5. # push_source() and pop_source() made explicit by ESR, January 2001.
  6. # Posix compliance, split(), string arguments, and
  7. # iterator interface by Gustavo Niemeyer, April 2003.
  8. import os.path
  9. import sys
  10. #from collections import deque
  11. class deque:
  12.     def __init__(self):
  13.         self.data = []
  14.     def __len__(self):
  15.         return len(self.data)
  16.     def appendleft(self, item):
  17.         self.data.insert(0, item)
  18.     def popleft(self):
  19.         return self.data.pop(0)
  20. try:
  21.     basestring
  22. except NameError:
  23.     import types
  24.     def is_basestring(s):
  25.         return type(s) is types.StringType
  26. else:
  27.     def is_basestring(s):
  28.         return isinstance(s, basestring)
  29. try:
  30.     from cStringIO import StringIO
  31. except ImportError:
  32.     from StringIO import StringIO
  33. __all__ = ["shlex", "split"]
  34. class shlex:
  35.     "A lexical analyzer class for simple shell-like syntaxes."
  36.     def __init__(self, instream=None, infile=None, posix=False):
  37.         if is_basestring(instream):
  38.             instream = StringIO(instream)
  39.         if instream is not None:
  40.             self.instream = instream
  41.             self.infile = infile
  42.         else:
  43.             self.instream = sys.stdin
  44.             self.infile = None
  45.         self.posix = posix
  46.         if posix:
  47.             self.eof = None
  48.         else:
  49.             self.eof = ''
  50.         self.commenters = '#'
  51.         self.wordchars = ('abcdfeghijklmnopqrstuvwxyz'
  52.                           'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_')
  53.         if self.posix:
  54.             self.wordchars = self.wordchars + ('哙徕沅彐玷殛腱眍镳耱篝貊