]> gitweb.ps.run Git - toc/blob - antlr4-cpp-runtime-4.9.2-source/runtime/src/atn/ATNDeserializationOptions.h
add antlr source code and ReadMe
[toc] / antlr4-cpp-runtime-4.9.2-source / runtime / src / atn / ATNDeserializationOptions.h
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  */
5
6 #pragma once
7
8 #include "antlr4-common.h"
9
10 namespace antlr4 {
11 namespace atn {
12
13   class ANTLR4CPP_PUBLIC ATNDeserializationOptions {
14   private:
15     static ATNDeserializationOptions defaultOptions;
16
17     bool readOnly;
18     bool verifyATN;
19     bool generateRuleBypassTransitions;
20
21   public:
22     ATNDeserializationOptions();
23     ATNDeserializationOptions(ATNDeserializationOptions *options);
24     ATNDeserializationOptions(ATNDeserializationOptions const&) = default;
25     virtual ~ATNDeserializationOptions();
26     ATNDeserializationOptions& operator=(ATNDeserializationOptions const&) = default;
27
28     static const ATNDeserializationOptions& getDefaultOptions();
29
30     bool isReadOnly();
31
32     void makeReadOnly();
33
34     bool isVerifyATN();
35
36     void setVerifyATN(bool verify);
37
38     bool isGenerateRuleBypassTransitions();
39
40     void setGenerateRuleBypassTransitions(bool generate);
41
42   protected:
43     virtual void throwIfReadOnly();
44
45   private:
46     void InitializeInstanceFields();
47   };
48
49 } // namespace atn
50 } // namespace antlr4