53 KeywordSize(
const std::string& in_keyword,
const std::string& in_item,
int in_shift);
54 KeywordSize(
const std::string& in_keyword,
const std::string& in_item);
55 KeywordSize(
const std::string& in_keyword,
const std::string& in_item,
bool table_collection,
int in_shift);
57 KeywordSize(std::size_t min_size,
const std::string& in_keyword,
const std::string& in_item,
bool table_collection,
int in_shift);
58 explicit KeywordSize(ParserKeywordSizeEnum size_type);
61 KeywordSize(std::size_t min_size, std::size_t fixed_size,
bool code);
63 bool table_collection()
const;
64 ParserKeywordSizeEnum size_type()
const;
66 int size_shift()
const;
67 const std::string& keyword()
const;
68 const std::string& item()
const;
69 std::optional<std::size_t> min_size()
const;
71 const std::optional<std::variant<std::size_t, std::pair<std::string, std::string>>>& max_size()
const;
72 std::string construct()
const;
78 bool is_table_collection{
false};
79 ParserKeywordSizeEnum m_size_type;
80 std::optional<std::size_t> m_min_size;
81 std::optional<std::variant<std::size_t, std::pair<std::string, std::string>>> m_max_size;
91 void initSizeKeyword(
const std::string& sizeKeyword,
const std::string& sizeItem,
bool table_collection,
int size_shift);
94 static bool validInternalName(
const std::string& name);
95 static bool validDeckName(
const std::string_view& name);
96 bool hasMatchRegex()
const;
97 bool hasMatchRegexSuffix()
const;
98 void setMatchRegex(
const std::string& deckNameRegexp);
99 void setMatchRegexSuffix(
const std::string& deckNameRegexp);
100 bool matches(
const std::string_view& )
const;
101 bool hasDimension()
const;
104 const ParserRecord& getRecord(
size_t recordIndex)
const;
106 std::vector< ParserRecord >::const_iterator begin()
const;
107 std::vector< ParserRecord >::const_iterator end()
const;
108 const std::string className()
const;
109 const std::string& getName()
const;
110 std::optional<std::size_t> min_size()
const;
111 size_t getFixedSize()
const;
112 bool hasFixedSize()
const;
113 bool isTableCollection()
const;
114 std::string getDescription()
const;
115 void setDescription(
const std::string &description);
117 bool hasMultipleDeckNames()
const;
118 void clearDeckNames();
119 void addDeckName(
const std::string& deckName );
120 void setCodeEnd(
const std::string& end);
121 const std::unordered_set<std::string>& deck_names()
const;
122 const std::string& codeEnd()
const;
124 const std::vector<std::string>& requiredKeywords()
const;
125 const std::vector<std::string>& prohibitedKeywords()
const;
126 void setRequiredKeywords(
const std::vector<std::string>&);
127 void setProhibitedKeywords(
const std::vector<std::string>&);
129 void clearValidSectionNames();
130 void addValidSectionName(
const std::string& sectionName);
131 bool isValidSection(
const std::string& sectionName)
const;
132 const std::unordered_set<std::string>& sections()
const;
135 enum ParserKeywordSizeEnum getSizeType()
const;
137 bool isDataKeyword()
const;
138 bool rawStringKeyword()
const;
139 bool isCodeKeyword()
const;
140 bool isAlternatingKeyword()
const;
141 bool isDoubleRecordKeyword()
const;
142 void setAlternatingKeyword(
bool alternating);
143 void setDoubleRecordsKeyword(
bool double_rec);
145 std::string createDeclaration(
const std::string& indent)
const;
146 std::string createDecl()
const;
147 std::string createCode()
const;
155 std::unordered_set<std::string> m_deckNames;
156 std::unordered_set<std::string> m_validSectionNames;
157 std::string m_matchRegexString;
158 std::regex m_matchRegex;
159 std::string m_matchRegexSuffix{};
160 std::vector< ParserRecord > m_records;
161 std::string m_Description;
162 bool raw_string_keyword =
false;
163 bool alternating_keyword =
false;
164 bool double_records =
false;
165 std::string code_end;
166 std::vector<std::string> m_requires;
167 std::vector<std::string> m_prohibits;
169 static bool validNameStart(
const std::string_view& name);
178 void initSizeKeyword(
bool table_collection,
const Json::JsonObject& sizeObject);
181 bool matchesDeckNames(std::string_view name)
const;
Definition ParseContext.hpp:84
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30