]> gitweb.ps.run Git - toc/blob - antlr4-cpp-runtime-4.9.2-source/runtime/src/atn/RuleTransition.h
add antlr source code and ReadMe
[toc] / antlr4-cpp-runtime-4.9.2-source / runtime / src / atn / RuleTransition.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 "atn/Transition.h"
9
10 namespace antlr4 {
11 namespace atn {
12
13   class ANTLR4CPP_PUBLIC RuleTransition : public Transition {
14   public:
15     /// Ptr to the rule definition object for this rule ref.
16     const size_t ruleIndex; // no Rule object at runtime
17
18     const int precedence;
19
20     /// What node to begin computations following ref to rule.
21     ATNState *followState;
22
23     /// @deprecated Use
24     /// <seealso cref="#RuleTransition(RuleStartState, size_t, int, ATNState)"/> instead.
25     RuleTransition(RuleStartState *ruleStart, size_t ruleIndex, ATNState *followState);
26
27     RuleTransition(RuleStartState *ruleStart, size_t ruleIndex, int precedence, ATNState *followState);
28     RuleTransition(RuleTransition const&) = delete;
29     RuleTransition& operator=(RuleTransition const&) = delete;
30
31     virtual SerializationType getSerializationType() const override;
32
33     virtual bool isEpsilon() const override;
34     virtual bool matches(size_t symbol, size_t minVocabSymbol, size_t maxVocabSymbol) const override;
35
36     virtual std::string toString() const override;
37   };
38
39 } // namespace atn
40 } // namespace antlr4