ATNDeserializationOptions.py 1010 B

123456789101112131415161718192021222324
  1. # Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
  2. # Use of this file is governed by the BSD 3-clause license that
  3. # can be found in the LICENSE.txt file in the project root.
  4. # need a forward declaration
  5. ATNDeserializationOptions = None
  6. class ATNDeserializationOptions(object):
  7. __slots__ = ('readonly', 'verifyATN', 'generateRuleBypassTransitions')
  8. defaultOptions = None
  9. def __init__(self, copyFrom:ATNDeserializationOptions = None):
  10. self.readonly = False
  11. self.verifyATN = True if copyFrom is None else copyFrom.verifyATN
  12. self.generateRuleBypassTransitions = False if copyFrom is None else copyFrom.generateRuleBypassTransitions
  13. def __setattr__(self, key, value):
  14. if key!="readonly" and self.readonly:
  15. raise Exception("The object is read only.")
  16. super(type(self), self).__setattr__(key,value)
  17. ATNDeserializationOptions.defaultOptions = ATNDeserializationOptions()
  18. ATNDeserializationOptions.defaultOptions.readonly = True