]> gitweb.ps.run Git - toc/blob - antlr4-cpp-runtime-4.9.2-source/runtime/src/atn/ATNDeserializationOptions.cpp
add antlr source code and ReadMe
[toc] / antlr4-cpp-runtime-4.9.2-source / runtime / src / atn / ATNDeserializationOptions.cpp
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 #include "atn/ATNDeserializationOptions.h"
7
8 using namespace antlr4::atn;
9
10 ATNDeserializationOptions ATNDeserializationOptions::defaultOptions;
11
12 ATNDeserializationOptions::ATNDeserializationOptions() {
13   InitializeInstanceFields();
14 }
15
16 ATNDeserializationOptions::ATNDeserializationOptions(ATNDeserializationOptions *options) : ATNDeserializationOptions() {
17   this->verifyATN = options->verifyATN;
18   this->generateRuleBypassTransitions = options->generateRuleBypassTransitions;
19 }
20
21 ATNDeserializationOptions::~ATNDeserializationOptions() {
22 }
23
24 const ATNDeserializationOptions& ATNDeserializationOptions::getDefaultOptions() {
25   return defaultOptions;
26 }
27
28 bool ATNDeserializationOptions::isReadOnly() {
29   return readOnly;
30 }
31
32 void ATNDeserializationOptions::makeReadOnly() {
33   readOnly = true;
34 }
35
36 bool ATNDeserializationOptions::isVerifyATN() {
37   return verifyATN;
38 }
39
40 void ATNDeserializationOptions::setVerifyATN(bool verify) {
41   throwIfReadOnly();
42   verifyATN = verify;
43 }
44
45 bool ATNDeserializationOptions::isGenerateRuleBypassTransitions() {
46   return generateRuleBypassTransitions;
47 }
48
49 void ATNDeserializationOptions::setGenerateRuleBypassTransitions(bool generate) {
50   throwIfReadOnly();
51   generateRuleBypassTransitions = generate;
52 }
53
54 void ATNDeserializationOptions::throwIfReadOnly() {
55   if (isReadOnly()) {
56     throw "The object is read only.";
57   }
58 }
59
60 void ATNDeserializationOptions::InitializeInstanceFields() {
61   readOnly = false;
62   verifyATN = true;
63   generateRuleBypassTransitions = false;
64 }