WSF
WsfParseRecurrence.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11// ****************************************************************************
12// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFPARSERECURRENCE_HPP
16#define WSFPARSERECURRENCE_HPP
17
18#include "WsfParseRule.hpp"
19
21{
22public:
29 ~WsfParseRecurrence() override;
30 void Initialize(int aSequence) override;
37 bool Read(WsfParser& aParser, WsfParseNode*& aNode) override;
38
39 std::vector<WsfParseRule*> GetSequence() override { return std::vector<WsfParseRule*>(1, mSubordinateRulePtr); }
40
41 void GetCountRange(size_t& aMin, size_t& aMax) const
42 {
43 aMin = 0;
44 aMax = 0x7fffffff;
45 if (mCount == cZERO_OR_ONE)
46 {
47 aMax = 1;
48 }
49 if (mCount == cONE_TO_MANY)
50 {
51 aMin = 1;
52 }
53 }
54
55 std::string GetRuleDescription() override
56 {
57 char c = '*';
58 if (mCount == cONE_TO_MANY)
59 {
60 c = '+';
61 }
62 if (mCount == cZERO_OR_ONE)
63 {
64 c = '?';
65 }
66 return mSubordinateRulePtr->GetRuleDescription() + c;
67 }
68
69 void SetRecurringRule(WsfParseRule* aRulePtr);
70
72 std::string mEndKeyword;
73};
74
75#endif
Definition WsfParseNode.hpp:61
void GetCountRange(size_t &aMin, size_t &aMax) const
Definition WsfParseRecurrence.hpp:41
WsfParseRecurrence(WsfParseRuleMemory &aMem)
Definition WsfParseRecurrence.hpp:23
~WsfParseRecurrence() override
Definition WsfParseRecurrence.cpp:132
void Initialize(int aSequence) override
Definition WsfParseRecurrence.cpp:139
std::string GetRuleDescription() override
Definition WsfParseRecurrence.hpp:55
bool Read(WsfParser &aParser, WsfParseNode *&aNode) override
Definition WsfParseRecurrence.cpp:34
Count
Definition WsfParseRecurrence.hpp:32
@ cZERO_TO_MANY
Definition WsfParseRecurrence.hpp:35
@ cZERO_OR_ONE
Definition WsfParseRecurrence.hpp:33
@ cONE_TO_MANY
Definition WsfParseRecurrence.hpp:34
std::string mEndKeyword
Definition WsfParseRecurrence.hpp:72
Count mCount
Definition WsfParseRecurrence.hpp:71
void SetRecurringRule(WsfParseRule *aRulePtr)
Definition WsfParseRecurrence.cpp:134
std::vector< WsfParseRule * > GetSequence() override
Definition WsfParseRecurrence.hpp:39
Definition WsfParseRule.hpp:263
Definition WsfParseRule.hpp:131
WsfParseRule * mSubordinateRulePtr
Definition WsfParseRule.hpp:258
WsfParseRule(WsfParseRuleMemory &aMem, RuleType aType)
Definition WsfParseRule.cpp:85
@ cRECURRENCE
Definition WsfParseRule.hpp:140
Definition WsfParser.hpp:36
Copyrights Multiple, All Rights Reserved