/runtime/Python2/src/antlr4/StdinStream.py

https://github.com/millergarym/antlr4
Python | 46 lines | 8 code | 4 blank | 34 comment | 0 complexity | e210714cecf197acf3454f287a30586c MD5 | raw file
  1. #
  2. # [The "BSD license"]
  3. # Copyright (c) 2012 Terence Parr
  4. # Copyright (c) 2012 Sam Harwell
  5. # Copyright (c) 2014 Eric Vergnaud
  6. # All rights reserved.
  7. #
  8. # Redistribution and use in source and binary forms, with or without
  9. # modification, are permitted provided that the following conditions
  10. # are met:
  11. #
  12. # 1. Redistributions of source code must retain the above copyright
  13. # notice, this list of conditions and the following disclaimer.
  14. # 2. Redistributions in binary form must reproduce the above copyright
  15. # notice, this list of conditions and the following disclaimer in the
  16. # documentation and/or other materials provided with the distribution.
  17. # 3. The name of the author may not be used to endorse or promote products
  18. # derived from this software without specific prior written permission.
  19. #
  20. # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  21. # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  22. # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  23. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  24. # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  25. # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  26. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  27. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  28. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  29. # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  30. #
  31. #
  32. # This is an InputStream that is loaded from stdin all at once
  33. # when you construct the object.
  34. #
  35. import codecs
  36. import sys
  37. from antlr4.InputStream import InputStream
  38. class StdinStream(InputStream):
  39. def __init__(self, encoding='ascii'):
  40. bytes = sys.stdin.read()
  41. data = codecs.decode(bytes, encoding)
  42. super(type(self), self).__init__(data)