From 00e47b11d266f1397df7098a65ddf572797b23ed Mon Sep 17 00:00:00 2001 From: Valentin Tolmer Date: Thu, 10 Sep 2020 14:39:37 +0200 Subject: [PATCH] glr2.cc: coding style changes * data/skeletons/glr2.cc: Change some CamlCase to snake_case, and remove some yy prefixes for classes inside the namespace. --- data/skeletons/glr2.cc | 544 ++++++++++++++++++++--------------------- 1 file changed, 271 insertions(+), 273 deletions(-) diff --git a/data/skeletons/glr2.cc b/data/skeletons/glr2.cc index a0a17122..ac9ce051 100644 --- a/data/skeletons/glr2.cc +++ b/data/skeletons/glr2.cc @@ -159,40 +159,40 @@ b4_percent_code_get([[requires]])[ ]b4_namespace_open[ template -class StrongIndexAlias +class strong_index_alias { public: - static StrongIndexAlias create(std::ptrdiff_t value) { - StrongIndexAlias result; + static strong_index_alias create(std::ptrdiff_t value) { + strong_index_alias result; result.value_ = value; return result; } std::ptrdiff_t const& get() const {return value_; } - size_t uget() const {return YY_CAST(size_t, value_); } + size_t uget() const {return static_cast(value_); } - StrongIndexAlias operator+(std::ptrdiff_t other) const { - return StrongIndexAlias(get() + other); + strong_index_alias operator+(std::ptrdiff_t other) const { + return strong_index_alias(get() + other); } void operator+=(std::ptrdiff_t other) { value_ += other; } - StrongIndexAlias operator-(std::ptrdiff_t other) { - return StrongIndexAlias(get() - other); + strong_index_alias operator-(std::ptrdiff_t other) { + return strong_index_alias(get() - other); } void operator-=(std::ptrdiff_t other) { value_ -= other; } - size_t operator-(StrongIndexAlias other) { - return StrongIndexAlias(get() - other.get()); + size_t operator-(strong_index_alias other) { + return strong_index_alias(get() - other.get()); } - StrongIndexAlias& operator++() { + strong_index_alias& operator++() { ++value_; return *this; } @@ -205,15 +205,15 @@ class StrongIndexAlias value_ = INVALID_INDEX; } - bool operator==(StrongIndexAlias other) { + bool operator==(strong_index_alias other) { return get() == other.get(); } - bool operator!=(StrongIndexAlias other) { + bool operator!=(strong_index_alias other) { return get() != other.get(); } - bool operator<(StrongIndexAlias other) { + bool operator<(strong_index_alias other) { return get() < other.get(); } @@ -225,7 +225,7 @@ class StrongIndexAlias }; template -const std::ptrdiff_t StrongIndexAlias::INVALID_INDEX = +const std::ptrdiff_t strong_index_alias::INVALID_INDEX = std::numeric_limits::max(); ]b4_bison_locations_if([m4_ifndef([b4_location_file], @@ -394,7 +394,7 @@ m4_define([b4_pure_args], # b4_lpure_args # ------------- -# Same as above, but on the lookahead, hence &yylloc instead of yylocp. This is used only inside yyGLRStack, so there's no need to explicitly pass yyparser. +# Same as above, but on the lookahead, hence &yylloc instead of yylocp. This is used only inside glr_stack, so there's no need to explicitly pass yyparser. m4_define([b4_lpure_args], [b4_pure_if([b4_locations_if([, &yylloc])])[]b4_user_args]) @@ -434,7 +434,7 @@ m4_define([b4_lhs_value], # ----------------------------- # See README. m4_define([b4_rhs_data], -[(static_cast(yyvsp))@{YYFILL (b4_subtract([$2], [$1]))@}.getState()]) +[(static_cast(yyvsp))@{YYFILL (b4_subtract([$2], [$1]))@}.getState()]) # b4_rhs_value(RULE-LENGTH, POS, SYMBOL-NUM, [TYPE]) @@ -560,8 +560,6 @@ static YYLTYPE yyloc_default][]b4_yyloc_default;])[ # define YYMALLOC malloc #endif -#define YYSIZEMAX YY_CAST(size_t, -1) - #ifndef YYSETJMP # include # define YYJMP_BUF jmp_buf @@ -612,10 +610,10 @@ static YYLTYPE yyloc_default][]b4_yyloc_default;])[ /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ ]b4_api_token_raw_if(dnl -[[#define YYTRANSLATE(YYX) YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, YYX)]], +[[#define YYTRANSLATE(YYX) static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(YYX)]], [[#define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= ]b4_code_max[ \ - ? YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yytranslate[YYX]) \ + ? static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yytranslate[YYX]) \ : ]b4_namespace_ref::b4_parser_class::symbol_kind::b4_symbol(-2, kind)[) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM @@ -736,10 +734,10 @@ typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG; multiple parsers can coexist. */ int yydebug; -struct yyGLRStack; -static void yypstack (struct yyGLRStack* yystackp, size_t yyk) +class glr_stack; +static void yypstack (glr_stack* yystackp, size_t yyk) YY_ATTRIBUTE_UNUSED; -static void yypdumpstack (struct yyGLRStack* yystackp) +static void yypdumpstack (glr_stack* yystackp) YY_ATTRIBUTE_UNUSED; #else /* !]b4_api_PREFIX[DEBUG */ @@ -777,24 +775,21 @@ static void yypdumpstack (struct yyGLRStack* yystackp) #endif /** State numbers, as in LALR(1) machine */ -typedef int yyStateNum; +typedef int state_num; /** Rule numbers, as in LALR(1) machine */ -typedef int yyRuleNum; - -/** Item references, as in LALR(1) machine */ -typedef short yyItemNum; +typedef int rule_num; // Forward declarations. -class yyGLRState; -struct yySemanticOption; -struct yyGLRStackItem; -struct yyGLRStack; +class glr_state; +class semantic_option; +class glr_stack_item; +class glr_stack; -typedef ]b4_namespace_ref[::StrongIndexAlias yyStateSetIndex; +typedef ]b4_namespace_ref[::strong_index_alias state_set_index; -yyStateSetIndex yycreateStateSetIndex(std::ptrdiff_t value) { - return yyStateSetIndex::create(value); +state_set_index create_state_set_index(std::ptrdiff_t value) { + return state_set_index::create(value); } #define yypact_value_is_default(Yystate) \ @@ -807,7 +802,7 @@ yyStateSetIndex yycreateStateSetIndex(std::ptrdiff_t value) { [[yygetToken (&yychar, yyparser][]b4_pure_if([, yystackp])[]b4_user_args[)]])[ static inline ]b4_namespace_ref::b4_parser_class[::symbol_kind_type -yygetToken (int *yycharp, ]b4_namespace_ref[::]b4_parser_class[& yyparser][]b4_pure_if([, yyGLRStack* yystackp])[]b4_user_formals[); +yygetToken (int *yycharp, ]b4_namespace_ref[::]b4_parser_class[& yyparser][]b4_pure_if([, glr_stack* yystackp])[]b4_user_formals[); static inline bool yyisShiftAction (int yyaction) @@ -822,30 +817,30 @@ yyisErrorAction (int yyaction) } static inline int -yygetLRActions (yyStateNum yystate, ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yytoken, const short** yyconflicts); +yygetLRActions (state_num yystate, ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yytoken, const short** yyconflicts); /** True iff LR state YYSTATE has only a default reduction (regardless * of token). */ static inline bool -yyisDefaultedState (yyStateNum yystate) +yyisDefaultedState (state_num yystate) { return yypact_value_is_default (yypact[yystate]); } /** The default reduction for YYSTATE, assuming it has one. */ -static inline yyRuleNum -yydefaultAction (yyStateNum yystate) +static inline rule_num +yydefaultAction (state_num yystate) { return yydefact[yystate]; } static inline int -yyrhsLength (yyRuleNum yyrule); +yyrhsLength (rule_num yyrule); -class yyGLRState { +class glr_state { public: - yyGLRState() + glr_state() : yyresolved(false) , yylrState(0) , yyposn(0) @@ -853,7 +848,7 @@ class yyGLRState { {} /// Build with a semantic value. - yyGLRState(yyStateNum lrState, size_t posn, YYSTYPE sval]b4_locations_if([[, YYLTYPE loc]])[) + glr_state(state_num lrState, size_t posn, YYSTYPE sval]b4_locations_if([[, YYLTYPE loc]])[) : yyresolved(true) , yylrState(lrState) , yyposn(posn) @@ -863,7 +858,7 @@ class yyGLRState { } /// Build with a semantic option. - yyGLRState(yyStateNum lrState, size_t posn) + glr_state(state_num lrState, size_t posn) : yyresolved(false) , yylrState(lrState) , yyposn(posn) @@ -871,7 +866,7 @@ class yyGLRState { , yyfirstVal(0) {} - void copyFrom(const yyGLRState& other) { + void copyFrom(const glr_state& other) { *this = other; setPred(other.pred()); setFirstVal(other.firstVal()); @@ -881,20 +876,20 @@ class yyGLRState { * yyfirstVal applies. */ bool yyresolved; /** Number of corresponding LALR(1) machine state. */ - yyStateNum yylrState; + state_num yylrState; /** Source position of the last token produced by my symbol */ size_t yyposn; /// Only call pred() and setPred() on objects in yyitems, not temporaries. - yyGLRState* pred(); - const yyGLRState* pred() const; - void setPred(const yyGLRState* state); + glr_state* pred(); + const glr_state* pred() const; + void setPred(const glr_state* state); /// Only call firstVal() and setFirstVal() on objects in yyitems, not /// temporaries. - yySemanticOption* firstVal(); - const yySemanticOption* firstVal() const; - void setFirstVal(const yySemanticOption* option); + semantic_option* firstVal(); + const semantic_option* firstVal() const; + void setFirstVal(const semantic_option* option); YYSTYPE& semanticVal() { return yysval; @@ -920,20 +915,20 @@ class yyGLRState { } #endif - std::ptrdiff_t indexIn(yyGLRStackItem* array); + std::ptrdiff_t indexIn(glr_stack_item* array); - yyGLRStackItem* asItem() { + glr_stack_item* asItem() { return asItem(this); } private: template - static const yyGLRStackItem* asItem(const T* state) { - return reinterpret_cast(state); + static const glr_stack_item* asItem(const T* state) { + return reinterpret_cast(state); } template - static yyGLRStackItem* asItem(T* state) { - return reinterpret_cast(state); + static glr_stack_item* asItem(T* state) { + return reinterpret_cast(state); } /** Preceding state in this stack */ std::ptrdiff_t yypred; @@ -952,10 +947,10 @@ class yyGLRState { /** A stack of GLRState representing the different heads during * nondeterministic evaluation. */ -class yyGLRStateSet { +class glr_state_set { public: /** Initialize YYSET to a singleton set containing an empty stack. */ - yyGLRStateSet() + glr_state_set() : yylastDeleted(YY_NULLPTR) { yystates.push_back(YY_NULLPTR); @@ -963,11 +958,11 @@ class yyGLRStateSet { } // Behave like a vector of states. - yyGLRState*& operator[](yyStateSetIndex index) { + glr_state*& operator[](state_set_index index) { return yystates[index.uget()]; } - yyGLRState* operator[](yyStateSetIndex index) const { + glr_state* operator[](state_set_index index) const { return yystates[index.uget()]; } @@ -975,26 +970,26 @@ class yyGLRStateSet { return yystates.size(); } - std::vector::iterator begin() { + std::vector::iterator begin() { return yystates.begin(); } - std::vector::iterator end() { + std::vector::iterator end() { return yystates.end(); } - bool lookaheadNeeds(yyStateSetIndex index) const { + bool lookaheadNeeds(state_set_index index) const { return yylookaheadNeeds[index.uget()]; } - bool setLookaheadNeeds(yyStateSetIndex index, bool value) { + bool setLookaheadNeeds(state_set_index index, bool value) { return yylookaheadNeeds[index.uget()] = value; } /** Invalidate stack #YYK. */ inline void - yymarkStackDeleted (yyStateSetIndex yyk) + yymarkStackDeleted (state_set_index yyk) { size_t k = yyk.uget(); if (yystates[k] != YY_NULLPTR) @@ -1020,7 +1015,7 @@ class yyGLRStateSet { inline void yyremoveDeletes () { - std::ptrdiff_t newsize = YY_CAST(std::ptrdiff_t, yystates.size()); + std::ptrdiff_t newsize = static_cast(yystates.size()); /* j is the number of live stacks we have seen. */ for (size_t i = 0, j = 0; i < yystates.size(); ++i) { @@ -1055,13 +1050,13 @@ class yyGLRStateSet { } - yyStateSetIndex - yysplitStack (yyStateSetIndex yyk) + state_set_index + yysplitStack (state_set_index yyk) { size_t k = yyk.uget(); yystates.push_back(yystates[k]); yylookaheadNeeds.push_back(yylookaheadNeeds[k]); - return yycreateStateSetIndex(YY_CAST (std::ptrdiff_t, yystates.size() - 1)); + return create_state_set_index(static_cast(yystates.size() - 1)); } void clearLastDeleted() { @@ -1070,7 +1065,7 @@ class yyGLRStateSet { private: - std::vector yystates; + std::vector yystates; /** During nondeterministic operation, yylookaheadNeeds tracks which * stacks have actually needed the current lookahead. During deterministic * operation, yylookaheadNeeds[0] is not maintained since it would merely @@ -1078,20 +1073,21 @@ class yyGLRStateSet { std::vector yylookaheadNeeds; /** The last stack we invalidated. */ - yyGLRState* yylastDeleted; + glr_state* yylastDeleted; static const size_t INITIAL_NUMBER_STATES = 16; }; -struct yySemanticOption { - yySemanticOption() +class semantic_option { + public: + semantic_option() : yyrule(0) , yystate(0) , yynext(0) , yyrawchar(0) {} - yySemanticOption(yyRuleNum rule, int rawChar) + semantic_option(rule_num rule, int rawChar) : yyrule(rule) , yystate(0) , yynext(0) @@ -1099,24 +1095,24 @@ struct yySemanticOption { {} /// Only call state() and setState() on objects in yyitems, not temporaries. - yyGLRState* state(); - const yyGLRState* state() const; - void setState(const yyGLRState* s); + glr_state* state(); + const glr_state* state() const; + void setState(const glr_state* s); - yySemanticOption* next(); - void setNext(const yySemanticOption* s); + semantic_option* next(); + void setNext(const semantic_option* s); - std::ptrdiff_t indexIn(yyGLRStackItem* array); + std::ptrdiff_t indexIn(glr_stack_item* array); /** True iff YYY0 and YYY1 represent identical options at the top level. * That is, they represent the same rule applied to RHS symbols * that produce the same terminal symbols. */ bool - isIdenticalTo (yySemanticOption* yyy1) + isIdenticalTo (semantic_option* yyy1) { if (this->yyrule == yyy1->yyrule) { - yyGLRState *yys0, *yys1; + glr_state *yys0, *yys1; int yyn; for (yys0 = this->state(), yys1 = yyy1->state(), @@ -1135,10 +1131,10 @@ struct yySemanticOption { /** Assuming identicalOptions (YYY0,YYY1), destructively merge the * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */ void - mergeWith (yySemanticOption* yyy1) + mergeWith (semantic_option* yyy1) { - yyGLRState *yys0 = this->state(); - yyGLRState *yys1 = yyy1->state(); + glr_state *yys0 = this->state(); + glr_state *yys1 = yyy1->state(); for (int yyn = yyrhsLength (this->yyrule); yyn > 0; yyn -= 1, @@ -1159,9 +1155,9 @@ struct yySemanticOption { } else { - yySemanticOption* yyz0prev = YY_NULLPTR; - yySemanticOption* yyz0 = yys0->firstVal(); - yySemanticOption* yyz1 = yys1->firstVal(); + semantic_option* yyz0prev = YY_NULLPTR; + semantic_option* yyz0 = yys0->firstVal(); + semantic_option* yyz1 = yys1->firstVal(); while (true) { if (yyz1 == yyz0 || yyz1 == YY_NULLPTR) @@ -1177,7 +1173,7 @@ struct yySemanticOption { } else if (yyz0 < yyz1) { - yySemanticOption* yyz = yyz0; + semantic_option* yyz = yyz0; if (yyz0prev != YY_NULLPTR) { yyz0prev->setNext(yyz1); } else { @@ -1195,16 +1191,16 @@ struct yySemanticOption { } /** Rule number for this reduction */ - yyRuleNum yyrule; + rule_num yyrule; private: template - static const yyGLRStackItem* asItem(const T* state) { - return reinterpret_cast(state); + static const glr_stack_item* asItem(const T* state) { + return reinterpret_cast(state); } template - static yyGLRStackItem* asItem(T* state) { - return reinterpret_cast(state); + static glr_stack_item* asItem(T* state) { + return reinterpret_cast(state); } /** The last RHS state in the list of states to be reduced. */ std::ptrdiff_t yystate; @@ -1220,52 +1216,53 @@ struct yySemanticOption { /** Type of the items in the GLR stack. The isState_ field * indicates which item of the union is valid. */ -struct yyGLRStackItem { - yyGLRStackItem(bool isState = true) +class glr_stack_item { + public: + glr_stack_item(bool isState = true) : isState_(isState) { if (isState) { - new (&raw_) yyGLRState; + new (&raw_) glr_state; } else { - new (&raw_) yySemanticOption; + new (&raw_) semantic_option; } } - yyGLRStackItem(const yyGLRStackItem& other) + glr_stack_item(const glr_stack_item& other) : isState_(other.isState_) { std::memcpy(raw_, other.raw_, union_size); } - yyGLRStackItem& operator=(yyGLRStackItem other) + glr_stack_item& operator=(glr_stack_item other) { std::swap(isState_, other.isState_); std::swap(raw_, other.raw_); return *this; } - ~yyGLRStackItem() { + ~glr_stack_item() { if (isState()) { - getState().~yyGLRState(); + getState().~glr_state(); } else { - getOption().~yySemanticOption(); + getOption().~semantic_option(); } } - yyGLRState& getState() { + glr_state& getState() { YYDASSERT(isState()); - return *reinterpret_cast(&raw_); + return *reinterpret_cast(&raw_); } - const yyGLRState& getState() const { + const glr_state& getState() const { YYDASSERT(isState()); - return *reinterpret_cast(&raw_); + return *reinterpret_cast(&raw_); } - yySemanticOption& getOption() { + semantic_option& getOption() { YYDASSERT(!isState()); - return *reinterpret_cast(&raw_); + return *reinterpret_cast(&raw_); } - const yySemanticOption& getOption() const { + const semantic_option& getOption() const { YYDASSERT(!isState()); - return *reinterpret_cast(&raw_); + return *reinterpret_cast(&raw_); } bool isState() const { return isState_; @@ -1275,8 +1272,8 @@ struct yyGLRStackItem { /// be directly included in the union. struct contents { union { - char yystate[sizeof(yyGLRState)]; - char yyoption[sizeof(yySemanticOption)]; + char yystate[sizeof(glr_state)]; + char yyoption[sizeof(semantic_option)]; }; }; enum { union_size = sizeof(contents) }; @@ -1290,62 +1287,62 @@ struct yyGLRStackItem { bool isState_; }; -yyGLRState* yyGLRState::pred() { +glr_state* glr_state::pred() { return yypred ? &(asItem(this) - yypred)->getState() : YY_NULLPTR; } -const yyGLRState* yyGLRState::pred() const { +const glr_state* glr_state::pred() const { return yypred ? &(asItem(this) - yypred)->getState() : YY_NULLPTR; } -void yyGLRState::setPred(const yyGLRState* state) { +void glr_state::setPred(const glr_state* state) { yypred = state ? asItem(this) - asItem(state) : 0; } -yySemanticOption* yyGLRState::firstVal() { +semantic_option* glr_state::firstVal() { return yyfirstVal ? &(asItem(this) - yyfirstVal)->getOption() : YY_NULLPTR; } -const yySemanticOption* yyGLRState::firstVal() const { +const semantic_option* glr_state::firstVal() const { return yyfirstVal ? &(asItem(this) - yyfirstVal)->getOption() : YY_NULLPTR; } -void yyGLRState::setFirstVal(const yySemanticOption* option) { +void glr_state::setFirstVal(const semantic_option* option) { yyfirstVal = option ? asItem(this) - asItem(option) : 0; } -std::ptrdiff_t yyGLRState::indexIn(yyGLRStackItem* array) { +std::ptrdiff_t glr_state::indexIn(glr_stack_item* array) { return asItem(this) - array; } -std::ptrdiff_t yySemanticOption::indexIn(yyGLRStackItem* array) { +std::ptrdiff_t semantic_option::indexIn(glr_stack_item* array) { return asItem(this) - array; } -yyGLRState* yySemanticOption::state() { +glr_state* semantic_option::state() { return yystate ? &(asItem(this) - yystate)->getState() : YY_NULLPTR; } -const yyGLRState* yySemanticOption::state() const { +const glr_state* semantic_option::state() const { return yystate ? &(asItem(this) - yystate)->getState() : YY_NULLPTR; } -void yySemanticOption::setState(const yyGLRState* s) { +void semantic_option::setState(const glr_state* s) { yystate = s ? asItem(this) - asItem(s) : 0; } -yySemanticOption* yySemanticOption::next() { +semantic_option* semantic_option::next() { return yynext ? &(asItem(this) - yynext)->getOption() : YY_NULLPTR; } -void yySemanticOption::setNext(const yySemanticOption* s) { +void semantic_option::setNext(const semantic_option* s) { yynext = s ? asItem(this) - asItem(s) : 0; } -void yyGLRState::destroy (char const *yymsg, ]b4_namespace_ref[::]b4_parser_class[& yyparser]b4_user_formals[) +void glr_state::destroy (char const *yymsg, ]b4_namespace_ref[::]b4_parser_class[& yyparser]b4_user_formals[) { if (yyresolved) - yyparser.yy_destroy_ (yymsg, YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yystos[yylrState]), + yyparser.yy_destroy_ (yymsg, static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yystos[yylrState]), &semanticVal()]b4_locations_if([, &yyloc])[); else { @@ -1356,14 +1353,14 @@ void yyGLRState::destroy (char const *yymsg, ]b4_namespace_ref[::]b4_parser_clas std::cerr << yymsg << " unresolved"; else std::cerr << yymsg << " incomplete"; - YY_SYMBOL_PRINT ("", YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yystos[yylrState]), YY_NULLPTR, &yyloc); + YY_SYMBOL_PRINT ("", static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yystos[yylrState]), YY_NULLPTR, &yyloc); } #endif if (firstVal() != YY_NULLPTR) { - yySemanticOption *yyoption = firstVal(); - yyGLRState *yyrh = yyoption->state(); + semantic_option *yyoption = firstVal(); + glr_state *yyrh = yyoption->state(); for (int yyn = yyrhsLength (yyoption->yyrule); yyn > 0; yyn -= 1) { yyrh->destroy (yymsg, yyparser]b4_user_args[); @@ -1375,7 +1372,7 @@ void yyGLRState::destroy (char const *yymsg, ]b4_namespace_ref[::]b4_parser_clas static int -yypreference (yySemanticOption* y0, yySemanticOption* y1); +yypreference (semantic_option* y0, semantic_option* y1); static void yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1); @@ -1383,22 +1380,22 @@ yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1); /** Left-hand-side symbol for rule #YYRULE. */ static inline ]b4_namespace_ref::b4_parser_class[::symbol_kind_type -yylhsNonterm (yyRuleNum yyrule) +yylhsNonterm (rule_num yyrule) { - return YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yyr1[yyrule]); + return static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yyr1[yyrule]); } -static inline yyStateNum -yyLRgotoState (yyStateNum yystate, ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yysym); +static inline state_num +yyLRgotoState (state_num yystate, ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yysym); #undef YYFILL #define YYFILL(N) yyfill (yyvsp, &yylow, (N), yynormal) -struct yyStateStack { +class state_stack { public: /** Initialize to a single empty stack, with total maximum * capacity for all stacks of YYSIZE. */ - yyStateStack (size_t yysize) + state_stack (size_t yysize) : yysplitPoint(YY_NULLPTR) { yyitems.reserve(yysize); @@ -1433,21 +1430,21 @@ struct yyStateStack { } #endif - static bool yyGLRStateNotNull(yyGLRState* s) { + static bool yyGLRStateNotNull(glr_state* s) { return s != YY_NULLPTR; } bool reduceToOneStack() { - const std::vector::iterator begin = + const std::vector::iterator begin = yytops.begin(); - const std::vector::iterator end = + const std::vector::iterator end = yytops.end(); - std::vector::iterator yyit = + std::vector::iterator yyit = std::find_if(begin, end, yyGLRStateNotNull); if (yyit == end) return false; - for (yyStateSetIndex yyk = yycreateStateSetIndex(yyit + 1 - begin); + for (state_set_index yyk = create_state_set_index(yyit + 1 - begin); yyk.uget() != numTops(); ++yyk) yytops.yymarkStackDeleted (yyk); yytops.yyremoveDeletes (); @@ -1461,38 +1458,38 @@ struct yyStateStack { if (yytops.size() != 1 || !isSplit()) return; - yyGLRState* yyr = YY_NULLPTR; - for (yyGLRState *yyp = firstTop(), *yyq = yyp->pred(); + glr_state* yyr = YY_NULLPTR; + for (glr_state *yyp = firstTop(), *yyq = yyp->pred(); yyp != yysplitPoint; yyr = yyp, yyp = yyq, yyq = yyp->pred()) yyp->setPred(yyr); - yyGLRStackItem* nextFreeItem = yysplitPoint->asItem() + 1; + glr_stack_item* nextFreeItem = yysplitPoint->asItem() + 1; yysplitPoint = YY_NULLPTR; yytops.clearLastDeleted(); while (yyr != YY_NULLPTR) { - yyGLRState& nextFreeState = nextFreeItem->getState(); + glr_state& nextFreeState = nextFreeItem->getState(); nextFreeState.copyFrom(*yyr); yyr = yyr->pred(); nextFreeState.setPred(&(nextFreeItem - 1)->getState()); setFirstTop(&nextFreeState); ++nextFreeItem; } - yyitems.resize(YY_CAST (size_t, nextFreeItem - yyitems.data())); + yyitems.resize(static_cast(nextFreeItem - yyitems.data())); } bool isSplit() const { return yysplitPoint != YY_NULLPTR; } - // Present the interface of a vector of yyGLRStackItem. - std::vector::const_iterator begin() const { + // Present the interface of a vector of glr_stack_item. + std::vector::const_iterator begin() const { return yyitems.begin(); } - std::vector::const_iterator end() const { + std::vector::const_iterator end() const { return yyitems.end(); } @@ -1500,11 +1497,11 @@ struct yyStateStack { return yyitems.size(); } - yyGLRStackItem& operator[](size_t i) { + glr_stack_item& operator[](size_t i) { return yyitems[i]; } - yyGLRStackItem& stackItemAt(size_t index) { + glr_stack_item& stackItemAt(size_t index) { return yyitems[index]; } @@ -1512,19 +1509,19 @@ struct yyStateStack { return yytops.size(); } - yyGLRState* firstTop() { - return yytops[yycreateStateSetIndex(0)]; + glr_state* firstTop() { + return yytops[create_state_set_index(0)]; } - yyGLRState* topAt(yyStateSetIndex i) { + glr_state* topAt(state_set_index i) { return yytops[i]; } - void setFirstTop(yyGLRState* value) { - yytops[yycreateStateSetIndex(0)] = value; + void setFirstTop(glr_state* value) { + yytops[create_state_set_index(0)] = value; } - void setTopAt(yyStateSetIndex i, yyGLRState* value) { + void setTopAt(state_set_index i, glr_state* value) { yytops[i] = value; } @@ -1536,8 +1533,8 @@ struct yyStateStack { yyitems.resize(yyitems.size() - n); } - yyStateSetIndex - yysplitStack (yyStateSetIndex yyk) + state_set_index + yysplitStack (state_set_index yyk) { if (!isSplit()) { @@ -1551,7 +1548,7 @@ struct yyStateStack { * splitpoint of *this, if needed, so that it is at least as deep as * YYS. */ inline void - yyupdateSplit (yyGLRState& yys) + yyupdateSplit (glr_state& yys) { if (isSplit() && &yys < yysplitPoint) yysplitPoint = &yys; @@ -1560,8 +1557,8 @@ struct yyStateStack { /** Return a fresh GLRState. * Callers should call yyreserveStack afterwards to make sure there is * sufficient headroom. */ - yyGLRState& yynewGLRState(yyGLRState newState) { - yyGLRState& state = yyitems[yynewGLRStackItem(true)].getState(); + glr_state& yynewGLRState(glr_state newState) { + glr_state& state = yyitems[yynewGLRStackItem(true)].getState(); #if 201103L <= YY_CPLUSPLUS state = std::move(newState); #else @@ -1573,8 +1570,8 @@ struct yyStateStack { /** Return a fresh SemanticOption. * Callers should call yyreserveStack afterwards to make sure there is * sufficient headroom. */ - yySemanticOption& yynewSemanticOption(yySemanticOption newOption) { - yySemanticOption& option = yyitems[yynewGLRStackItem(false)].getOption(); + semantic_option& yynewSemanticOption(semantic_option newOption) { + semantic_option& option = yyitems[yynewGLRStackItem(false)].getOption(); #if 201103L <= YY_CPLUSPLUS option = std::move(newOption); #else @@ -1587,7 +1584,7 @@ struct yyStateStack { * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1. * For convenience, always return YYLOW1. */ inline int - yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, bool yynormal) + yyfill (glr_stack_item *yyvsp, int *yylow, int yylow1, bool yynormal) { if (!yynormal && yylow1 < *yylow) { @@ -1601,13 +1598,13 @@ struct yyStateStack { * at YYVSP[YYLOW0].getState().pred(). Leaves YYVSP[YYLOW1].getState().pred() * containing the pointer to the next state in the chain. */ void - yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1) + yyfillin (glr_stack_item *yyvsp, int yylow0, int yylow1) { - yyGLRState* s = yyvsp[yylow0].getState().pred(); + glr_state* s = yyvsp[yylow0].getState().pred(); YYASSERT(s != YY_NULLPTR); for (int i = yylow0-1; i >= yylow1; i -= 1, s = s->pred()) { - yyGLRState& yys = yyvsp[i].getState(); + glr_state& yys = yyvsp[i].getState(); #if ]b4_api_PREFIX[DEBUG yys.yylrState = s->yylrState; #endif @@ -1637,8 +1634,8 @@ struct yyStateStack { `----------------------------------------------------------------------*/ inline void - yy_reduce_print (bool yynormal, yyGLRStackItem* yyvsp, yyStateSetIndex yyk, - yyRuleNum yyrule, ]b4_namespace_ref[::]b4_parser_class[& yyparser]b4_user_formals[) + yy_reduce_print (bool yynormal, glr_stack_item* yyvsp, state_set_index yyk, + rule_num yyrule, ]b4_namespace_ref[::]b4_parser_class[& yyparser]b4_user_formals[) { int yynrhs = yyrhsLength (yyrule);]b4_locations_if([ int yylow = 1;])[ @@ -1652,7 +1649,7 @@ struct yyStateStack { std::cerr << " $" << yyi + 1 << " = "; yy_symbol_print (stderr, yyparser, - YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yystos[yyvsp[yyi - yynrhs + 1].getState().yylrState]), + static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yystos[yyvsp[yyi - yynrhs + 1].getState().yylrState]), &yyvsp[yyi - yynrhs + 1].getState().semanticVal()]b4_locations_if([, &]b4_rhs_location(yynrhs, yyi + 1))[]dnl b4_user_args[); @@ -1671,7 +1668,7 @@ struct yyStateStack { { for (size_t yyi = 0; yyi < size(); ++yyi) { - yyGLRStackItem& item = yyitems[yyi]; + glr_stack_item& item = yyitems[yyi]; std::cerr << std::setw(3) << yyi << ". "; if (item.isState()) { @@ -1692,7 +1689,7 @@ struct yyStateStack { std::cerr << '\n'; } std::cerr << "Tops:"; - for (yyStateSetIndex yyi = yycreateStateSetIndex(0); yyi.uget() < numTops(); ++yyi) { + for (state_set_index yyi = create_state_set_index(0); yyi.uget() < numTops(); ++yyi) { std::cerr << yyi.get() << ": " << YYINDEX(topAt(yyi)) << "; "; } std::cerr << '\n'; @@ -1702,8 +1699,8 @@ struct yyStateStack { #endif YYRESULTTAG - yyreportAmbiguity (yySemanticOption* yyx0, - yySemanticOption* yyx1, ]b4_namespace_ref[::]b4_parser_class[& yyparser]b4_locations_if([, YYLTYPE *yylocp])[) + yyreportAmbiguity (semantic_option* yyx0, + semantic_option* yyx1, ]b4_namespace_ref[::]b4_parser_class[& yyparser]b4_locations_if([, YYLTYPE *yylocp])[) { YYUSE (yyx0); YYUSE (yyx1); @@ -1724,7 +1721,7 @@ struct yyStateStack { /* DEBUGGING ONLY */ #if ]b4_api_PREFIX[DEBUG void - yypstates (const yyGLRState* yyst) + yypstates (const glr_state* yyst) { if (yyst != YY_NULLPTR) yyst->yy_yypstack(); @@ -1747,21 +1744,21 @@ struct yyStateStack { yynewGLRStackItem (bool yyisState) { YYDASSERT(yyitems.size() < yyitems.capacity()); - yyitems.push_back(yyGLRStackItem(yyisState)); + yyitems.push_back(glr_stack_item(yyisState)); return yyitems.size() - 1; } #if ]b4_api_PREFIX[DEBUG void - yyreportTree (yySemanticOption* yyx, size_t yyindent) + yyreportTree (semantic_option* yyx, size_t yyindent) { int yynrhs = yyrhsLength (yyx->yyrule); - yyGLRState* yystates[1 + YYMAXRHS]; - yyGLRState yyleftmost_state; + glr_state* yystates[1 + YYMAXRHS]; + glr_state yyleftmost_state; { - yyGLRState* yys = yyx->state(); + glr_state* yys = yyx->state(); for (int yyi = yynrhs; 0 < yyi; yyi -= 1) { yystates[yyi] = yys; @@ -1790,7 +1787,7 @@ struct yyStateStack { { if (yystates[yyi]->yyresolved) { - std::string yysym = ]b4_namespace_ref::b4_parser_class[::symbol_name (YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yystos[yystates[yyi]->yylrState])); + std::string yysym = ]b4_namespace_ref::b4_parser_class[::symbol_name (static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yystos[yystates[yyi]->yylrState])); if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn) std::cerr << std::string(yyindent + 2, ' ') << yysym << " \n"; @@ -1808,18 +1805,19 @@ struct yyStateStack { public: - std::vector yyitems; - yyGLRState* yysplitPoint; - yyGLRStateSet yytops; + std::vector yyitems; + glr_state* yysplitPoint; + glr_state_set yytops; }; #undef YYFILL #define YYFILL(N) yystateStack.yyfill (yyvsp, &yylow, (N), yynormal) #define yystackp this -struct yyGLRStack { +class glr_stack { + public: - yyGLRStack(size_t yysize, ]b4_namespace_ref[::]b4_parser_class[& yyparser_yyarg]m4_ifset([b4_parse_param], [, b4_parse_param_decl])[) + glr_stack(size_t yysize, ]b4_namespace_ref[::]b4_parser_class[& yyparser_yyarg]m4_ifset([b4_parse_param], [, b4_parse_param_decl])[) : yyerrState(0) , yystateStack(yysize) , yyerrcnt(0) @@ -1828,7 +1826,7 @@ struct yyGLRStack { , b4_parse_param_cons])[ {} - ~yyGLRStack () + ~glr_stack () { if (yychar != ]b4_namespace_ref::b4_parser_class::token::b4_symbol(-2, id)[) yyparser.yy_destroy_ ("Cleanup: discarding lookahead", @@ -1838,10 +1836,10 @@ struct yyGLRStack { int yyerrState; ]b4_locations_if([[ /* To compute the location of the error token. */ - yyGLRStackItem yyerror_range[3];]])[ + glr_stack_item yyerror_range[3];]])[ ]b4_pure_if( [ - yyStateStack yystateStack; + state_stack yystateStack; int yyerrcnt; int yyrawchar; YYSTYPE yyval;]b4_locations_if([[ @@ -1877,11 +1875,11 @@ struct yyGLRStack { * alternative actions for YYSTATE. Assumes that YYRHS comes from * stack #YYK of *this. */ void - yyaddDeferredAction (yyStateSetIndex yyk, yyGLRState* yystate, - yyGLRState* yyrhs, yyRuleNum yyrule) + yyaddDeferredAction (state_set_index yyk, glr_state* yystate, + glr_state* yyrhs, rule_num yyrule) { - yySemanticOption& yynewOption = - yystateStack.yynewSemanticOption(yySemanticOption(yyrule, ]b4_namespace_ref::b4_parser_class::token::b4_symbol(-2, id)[)); + semantic_option& yynewOption = + yystateStack.yynewSemanticOption(semantic_option(yyrule, ]b4_namespace_ref::b4_parser_class::token::b4_symbol(-2, id)[)); yynewOption.setState(yyrhs); yynewOption.setNext(yystate->firstVal()); if (yystateStack.yytops.lookaheadNeeds(yyk)) @@ -1966,7 +1964,7 @@ struct yyGLRStack { yycount = 1; break; } - yyarg[yycount++] = YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yyx); + yyarg[yycount++] = static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yyx); } } } @@ -2026,7 +2024,7 @@ struct yyGLRStack { {]b4_locations_if([[ /* We throw away the lookahead, but the error range of the shifted error token must take it into account. */ - yyGLRState *yys = firstTopState(); + glr_state *yys = firstTopState(); yyerror_range[1].getState().yyloc = yys->yyloc; yyerror_range[2].getState().yyloc = yylloc; YYLLOC_DEFAULT ((yys->yyloc), yyerror_range, 2);]])[ @@ -2056,7 +2054,7 @@ struct yyGLRStack { yyerrState = 3; while (firstTopState() != YY_NULLPTR) { - yyGLRState *yys = firstTopState(); + glr_state *yys = firstTopState(); int yyj = yypact[yys->yylrState]; if (! yypact_value_is_default (yyj)) { @@ -2069,9 +2067,9 @@ struct yyGLRStack { YYLTYPE yyerrloc; yyerror_range[2].getState().yyloc = yylloc; YYLLOC_DEFAULT (yyerrloc, (yyerror_range), 2);]])[ - YY_SYMBOL_PRINT ("Shifting", YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yystos[yytable[yyj]]), + YY_SYMBOL_PRINT ("Shifting", static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yystos[yytable[yyj]]), &yylval, &yyerrloc); - yyglrShift (yycreateStateSetIndex(0), yytable[yyj], + yyglrShift (create_state_set_index(0), yytable[yyj], yys->yyposn, &yylval]b4_locations_if([, &yyerrloc])[); yys = firstTopState(); break; @@ -2088,12 +2086,12 @@ struct yyGLRStack { } YYRESULTTAG - yyprocessOneStack (yyStateSetIndex yyk, + yyprocessOneStack (state_set_index yyk, size_t yyposn]b4_locations_if([, YYLTYPE* yylocp])[) { while (yystateStack.topAt(yyk) != YY_NULLPTR) { - yyStateNum yystate = topState(yyk)->yylrState; + state_num yystate = topState(yyk)->yylrState; YY_DEBUG_STREAM << "Stack " << yyk.get() << " Entering state " << yystate << '\n'; @@ -2101,7 +2099,7 @@ struct yyGLRStack { if (yyisDefaultedState (yystate)) { - yyRuleNum yyrule = yydefaultAction (yystate); + rule_num yyrule = yydefaultAction (yystate); if (yyrule == 0) { YY_DEBUG_STREAM << "Stack " << yyk.get() << " dies.\n"; @@ -2129,7 +2127,7 @@ struct yyGLRStack { for (; *yyconflicts != 0; ++yyconflicts) { - yyStateSetIndex yynewStack = yystateStack.yysplitStack (yyk); + state_set_index yynewStack = yystateStack.yysplitStack (yyk); YY_DEBUG_STREAM << "Splitting off stack " << yynewStack.get() << " from " << yyk.get(); YYRESULTTAG yyflag = @@ -2180,7 +2178,7 @@ struct yyGLRStack { * (@@$). Returns yyok for normal return, yyaccept for YYACCEPT, * yyerr for YYERROR, yyabort for YYABORT. */ YYRESULTTAG - yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp, + yyuserAction (rule_num yyn, int yyrhslen, glr_stack_item* yyvsp, YYSTYPE* yyvalp]b4_locations_if([, YYLTYPE* yylocp])[) { bool yynormal YY_ATTRIBUTE_UNUSED = !yystateStack.isSplit(); @@ -2250,7 +2248,7 @@ struct yyGLRStack { if (yystateStack.isSplit()) { int yyn = 0; - for (yyGLRState* yys = firstTopState(); + for (glr_state* yys = firstTopState(); yys != yystateStack.yysplitPoint; yys = yys->pred()) yyn += 1; @@ -2266,7 +2264,7 @@ struct yyGLRStack { * and *YYLOCP to the computed location (if any). Return value is as * for userAction. */ inline YYRESULTTAG - yydoAction (yyStateSetIndex yyk, yyRuleNum yyrule, + yydoAction (state_set_index yyk, rule_num yyrule, YYSTYPE* yyvalp]b4_locations_if([, YYLTYPE* yylocp])[) { int yynrhs = yyrhsLength (yyrule); @@ -2275,8 +2273,8 @@ struct yyGLRStack { { /* Standard special case: single stack. */ YYASSERT (yyk.get() == 0); - yyGLRStackItem* yyrhs = yystateStack.topAt(yyk)->asItem(); - yystateStack.pop_back(YY_CAST (size_t, yynrhs)); + glr_stack_item* yyrhs = yystateStack.topAt(yyk)->asItem(); + yystateStack.pop_back(static_cast(yynrhs)); yystateStack.setFirstTop(&yystateStack[yystateStack.size() - 1].getState()); YY_REDUCE_PRINT ((true, yyrhs, yyk, yyrule, yyparser]b4_user_args[)); return yyuserAction (yyrule, yynrhs, yyrhs, @@ -2284,8 +2282,8 @@ struct yyGLRStack { } else { - yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1]; - yyGLRState* yys = yystateStack.topAt(yyk); + glr_stack_item yyrhsVals[YYMAXRHS + YYMAXLEFT + 1]; + glr_state* yys = yystateStack.topAt(yyk); yyrhsVals[YYMAXRHS + YYMAXLEFT].getState().setPred(yys);]b4_locations_if([[ if (yynrhs == 0) /* Set default location. */ @@ -2315,7 +2313,7 @@ struct yyGLRStack { * added to the options for the existing state's semantic value. */ inline YYRESULTTAG - yyglrReduce (yyStateSetIndex yyk, yyRuleNum yyrule, + yyglrReduce (state_set_index yyk, rule_num yyrule, bool yyforceEval) { size_t yyposn = topState(yyk)->yyposn; @@ -2333,7 +2331,7 @@ struct yyGLRStack { } if (yyflag != yyok) return yyflag; - YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yyr1[yyrule]), &yysval, &loc); + YY_SYMBOL_PRINT ("-> $$ =", static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yyr1[yyrule]), &yysval, &loc); yyglrShift (yyk, yyLRgotoState (topState(yyk)->yylrState, yylhsNonterm (yyrule)), @@ -2341,24 +2339,24 @@ struct yyGLRStack { } else { - yyGLRState *yys = yystateStack.topAt(yyk); - yyGLRState *yys0 = yys; + glr_state *yys = yystateStack.topAt(yyk); + glr_state *yys0 = yys; for (int yyn = yyrhsLength (yyrule); 0 < yyn; yyn -= 1) { yys = yys->pred(); YYASSERT (yys != YY_NULLPTR); } yystateStack.yyupdateSplit (*yys); - yyStateNum yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule)); + state_num yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule)); YY_DEBUG_STREAM << "Reduced stack " << yyk.get() << " by rule #" << yyrule - 1 << "; action deferred. Now in state " << yynewLRState << ".\n"; - for (yyStateSetIndex yyi = yycreateStateSetIndex(0); yyi.uget() < yystateStack.numTops(); ++yyi) + for (state_set_index yyi = create_state_set_index(0); yyi.uget() < yystateStack.numTops(); ++yyi) if (yyi != yyk && yystateStack.topAt(yyi) != YY_NULLPTR) { - yyGLRState* yysplit = yystateStack.yysplitPoint; - yyGLRState* yyp = yystateStack.topAt(yyi); + glr_state* yysplit = yystateStack.yysplitPoint; + glr_state* yyp = yystateStack.topAt(yyi); while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn) { @@ -2384,11 +2382,11 @@ struct yyGLRStack { * state YYLRSTATE, at input position YYPOSN, with the (unresolved) * semantic value of YYRHS under the action for YYRULE. */ inline void - yyglrShiftDefer (yyStateSetIndex yyk, yyStateNum yylrState, - size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule) + yyglrShiftDefer (state_set_index yyk, state_num yylrState, + size_t yyposn, glr_state* yyrhs, rule_num yyrule) { - yyGLRState& yynewState = yystateStack.yynewGLRState( - yyGLRState(yylrState, yyposn)); + glr_state& yynewState = yystateStack.yynewGLRState( + glr_state(yylrState, yyposn)); yynewState.setPred(yystateStack.topAt(yyk)); yystateStack.setTopAt(yyk, &yynewState); @@ -2400,12 +2398,12 @@ struct yyGLRStack { * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic * value *YYVALP and source location *YYLOCP. */ inline void - yyglrShift (yyStateSetIndex yyk, yyStateNum yylrState, + yyglrShift (state_set_index yyk, state_num yylrState, size_t yyposn, YYSTYPE* yyvalp]b4_locations_if([, YYLTYPE* yylocp])[) { - yyGLRState& yynewState = yystateStack.yynewGLRState( - yyGLRState(yylrState, yyposn, *yyvalp + glr_state& yynewState = yystateStack.yynewGLRState( + glr_state(yylrState, yyposn, *yyvalp ]b4_locations_if([, *yylocp])[)); yynewState.setPred(yystateStack.topAt(yyk)); yystateStack.setTopAt(yyk, &yynewState); @@ -2414,17 +2412,17 @@ struct yyGLRStack { #if ]b4_api_PREFIX[DEBUG void - yypstack (yyStateSetIndex yyk) + yypstack (state_set_index yyk) { yystateStack.yypstates (yystateStack.topAt(yyk)); } #endif - yyGLRState* topState(yyStateSetIndex i) { + glr_state* topState(state_set_index i) { return yystateStack.topAt(i); } - yyGLRState* firstTopState() { + glr_state* firstTopState() { return yystateStack.firstTop(); } @@ -2434,12 +2432,12 @@ struct yyGLRStack { /* If the stack is well-formed, pop the stack until it is empty, destroying its entries as we go. But free the stack regardless of whether it is well-formed. */ - for (yyStateSetIndex k = yycreateStateSetIndex(0); k.uget() < yystateStack.numTops(); k += 1) + for (state_set_index k = create_state_set_index(0); k.uget() < yystateStack.numTops(); k += 1) if (yystateStack.topAt(k) != YY_NULLPTR) { while (yystateStack.topAt(k) != YY_NULLPTR) { - yyGLRState* state = topState(k);]b4_locations_if([[ + glr_state* state = topState(k);]b4_locations_if([[ yyerror_range[1].getState().yyloc = state->yyloc;]])[ if (state->pred() != YY_NULLPTR) state->destroy ("Cleanup: popping", yyparser]b4_user_args[); @@ -2456,7 +2454,7 @@ struct yyGLRStack { * of whether result = yyok, each state has been left with consistent * data so that destroy can be invoked if necessary. */ YYRESULTTAG - yyresolveStates (yyGLRState* yys, int yyn) + yyresolveStates (glr_state* yys, int yyn) { if (0 < yyn) { @@ -2476,17 +2474,17 @@ struct yyGLRStack { * result = yyok, YYS has been left with consistent data so that * destroy can be invoked if necessary. */ YYRESULTTAG - yyresolveValue (yyGLRState* yys) + yyresolveValue (glr_state* yys) { - yySemanticOption* yybest = yys->firstVal(); + semantic_option* yybest = yys->firstVal(); YYASSERT(yybest != YY_NULLPTR); bool yymerge = false; YYSTYPE yysval; YYRESULTTAG yyflag;]b4_locations_if([ YYLTYPE *yylocp = &yys->yyloc;])[ - yySemanticOption* yypPrev = yybest; - for (yySemanticOption* yyp = yybest->next(); + semantic_option* yypPrev = yybest; + for (semantic_option* yyp = yybest->next(); yyp != YY_NULLPTR; ) { if (yybest->isIdenticalTo (yyp)) @@ -2527,7 +2525,7 @@ struct yyGLRStack { int yyprec = yydprec[yybest->yyrule]; yyflag = yyresolveAction (yybest, &yysval]b4_locations_if([, yylocp])[); if (yyflag == yyok) - for (yySemanticOption* yyp = yybest->next(); + for (semantic_option* yyp = yybest->next(); yyp != YY_NULLPTR; yyp = yyp->next()) { @@ -2539,7 +2537,7 @@ struct yyGLRStack { if (yyflag != yyok) { yyparser.yy_destroy_ ("Cleanup: discarding incompletely merged value for", - YY_CAST (]b4_namespace_ref::b4_parser_class[::symbol_kind_type, yystos[yys->yylrState]), + static_cast<]b4_namespace_ref::b4_parser_class[::symbol_kind_type>(yystos[yys->yylrState]), &yysval]b4_locations_if([, yylocp])[); break; } @@ -2566,16 +2564,16 @@ struct yyGLRStack { * have been destroyed (assuming the user action destroys all RHS * semantic values if invoked). */ YYRESULTTAG - yyresolveAction (yySemanticOption* yyopt, YYSTYPE* yyvalp]b4_locations_if([, YYLTYPE* yylocp])[) + yyresolveAction (semantic_option* yyopt, YYSTYPE* yyvalp]b4_locations_if([, YYLTYPE* yylocp])[) { - yyGLRState* yyoptState = yyopt->state(); - yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1]; + glr_state* yyoptState = yyopt->state(); + glr_stack_item yyrhsVals[YYMAXRHS + YYMAXLEFT + 1]; int yynrhs = yyrhsLength (yyopt->yyrule); YYRESULTTAG yyflag = yyresolveStates (yyoptState, yynrhs); if (yyflag != yyok) { - for (yyGLRState *yys = yyoptState; yynrhs > 0; yys = yys->pred(), yynrhs -= 1) + for (glr_state *yys = yyoptState; yynrhs > 0; yys = yys->pred(), yynrhs -= 1) yys->destroy ("Cleanup: popping", yyparser]b4_user_args[); return yyflag; } @@ -2604,22 +2602,22 @@ struct yyGLRStack { * ending at YYS1. Has no effect on previously resolved states. * The first semantic option of a state is always chosen. */ void - yyresolveLocations (yyGLRState *yys1, int yyn1) + yyresolveLocations (glr_state *yys1, int yyn1) { if (0 < yyn1) { yyresolveLocations (yys1->pred(), yyn1 - 1); if (!yys1->yyresolved) { - yyGLRStackItem yyrhsloc[1 + YYMAXRHS]; + glr_stack_item yyrhsloc[1 + YYMAXRHS]; int yynrhs; - yySemanticOption* yyoption = yys1->firstVal(); + semantic_option* yyoption = yys1->firstVal(); YYASSERT (yyoption != YY_NULLPTR); yynrhs = yyrhsLength (yyoption->yyrule); if (0 < yynrhs) { yyresolveLocations (yyoption->state(), yynrhs); - yyGLRState *yys = yyoption->state(); + glr_state *yys = yyoption->state(); for (int yyn = yynrhs; yyn > 0; yyn -= 1) { yyrhsloc[yyn].getState().yyloc = yys->yyloc; @@ -2651,7 +2649,7 @@ struct yyGLRStack { /** If yychar is empty, fetch the next token. */ static inline ]b4_namespace_ref::b4_parser_class[::symbol_kind_type -yygetToken (int *yycharp, ]b4_namespace_ref[::]b4_parser_class[& yyparser][]b4_pure_if([, yyGLRStack* yystackp])[]b4_user_formals[) +yygetToken (int *yycharp, ]b4_namespace_ref[::]b4_parser_class[& yyparser][]b4_pure_if([, glr_stack* yystackp])[]b4_user_formals[) { ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yytoken; ]b4_parse_param_use()dnl @@ -2709,7 +2707,7 @@ yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1) /** Number of symbols composing the right hand side of rule #RULE. */ static inline int -yyrhsLength (yyRuleNum yyrule) +yyrhsLength (rule_num yyrule) { return yyr2[yyrule]; } @@ -2723,7 +2721,7 @@ yyrhsLength (yyRuleNum yyrule) * of conflicting reductions. */ static inline int -yygetLRActions (yyStateNum yystate, ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yytoken, const short** yyconflicts) +yygetLRActions (state_num yystate, ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yytoken, const short** yyconflicts) { int yyindex = yypact[yystate] + yytoken; if (yytoken == ]b4_namespace_ref::b4_parser_class[::symbol_kind::]b4_symbol(1, kind)[) @@ -2754,8 +2752,8 @@ yygetLRActions (yyStateNum yystate, ]b4_namespace_ref::b4_parser_class[::symbol_ * \param yystate the current state * \param yysym the nonterminal to push on the stack */ -static inline yyStateNum -yyLRgotoState (yyStateNum yystate, ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yysym) +static inline state_num +yyLRgotoState (state_num yystate, ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yysym) { int yyr = yypgoto[yysym - YYNTOKENS] + yystate; if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate) @@ -2770,9 +2768,9 @@ yyLRgotoState (yyStateNum yystate, ]b4_namespace_ref::b4_parser_class[::symbol_k * parsing state; return 0 if no combination is possible, * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */ static int -yypreference (yySemanticOption* y0, yySemanticOption* y1) +yypreference (semantic_option* y0, semantic_option* y1) { - yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule; + rule_num r0 = y0->yyrule, r1 = y1->yyrule; int p0 = yydprec[r0], p1 = yydprec[r1]; if (p0 == p1) @@ -2816,8 +2814,8 @@ int yyparse (]b4_namespace_ref[::]b4_parser_class[& yyparser]b4_user_formals[) { int yyresult; - yyGLRStack yystack(YYINITDEPTH, yyparser]b4_user_args[); - yyGLRStack* const yystackp = &yystack; + glr_stack yystack(YYINITDEPTH, yyparser]b4_user_args[); + glr_stack* const yystackp = &yystack; size_t yyposn; YY_DEBUG_STREAM << "Starting parse\n"; @@ -2837,7 +2835,7 @@ b4_dollar_popdef])[]dnl case 2: goto yyexhaustedlab; default: goto yybuglab; } - yystack.yyglrShift (yycreateStateSetIndex(0), 0, 0, &yylval]b4_locations_if([, &yylloc])[); + yystack.yyglrShift (create_state_set_index(0), 0, 0, &yylval]b4_locations_if([, &yylloc])[); yyposn = 0; while (true) @@ -2848,20 +2846,20 @@ b4_dollar_popdef])[]dnl /* Standard mode */ while (true) { - yyStateNum yystate = yystack.firstTopState()->yylrState; + state_num yystate = yystack.firstTopState()->yylrState; YY_DEBUG_STREAM << "Entering state " << yystate << "\n"; if (yystate == YYFINAL) goto yyacceptlab; if (yyisDefaultedState (yystate)) { - yyRuleNum yyrule = yydefaultAction (yystate); + rule_num yyrule = yydefaultAction (yystate); if (yyrule == 0) {]b4_locations_if([[ yystack.yyerror_range[1].getState().yyloc = yylloc;]])[ yystack.yyreportSyntaxError (); goto yyuser_error; } - YYCHK1 (yystack.yyglrReduce (yycreateStateSetIndex(0), yyrule, true)); + YYCHK1 (yystack.yyglrReduce (create_state_set_index(0), yyrule, true)); } else { @@ -2875,7 +2873,7 @@ b4_dollar_popdef])[]dnl YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); yychar = ]b4_namespace_ref::b4_parser_class::token::b4_symbol(-2, id)[; yyposn += 1; - yystack.yyglrShift (yycreateStateSetIndex(0), yyaction, yyposn, &yylval]b4_locations_if([, &yylloc])[); + yystack.yyglrShift (create_state_set_index(0), yyaction, yyposn, &yylval]b4_locations_if([, &yylloc])[); if (0 < yystack.yyerrState) yystack.yyerrState -= 1; } @@ -2889,7 +2887,7 @@ b4_dollar_popdef])[]dnl goto yyuser_error; } else - YYCHK1 (yystack.yyglrReduce (yycreateStateSetIndex(0), -yyaction, true)); + YYCHK1 (yystack.yyglrReduce (create_state_set_index(0), -yyaction, true)); } } @@ -2897,7 +2895,7 @@ b4_dollar_popdef])[]dnl { ]b4_namespace_ref::b4_parser_class[::symbol_kind_type yytoken_to_shift; - for (yyStateSetIndex yys = yycreateStateSetIndex(0); yys.uget() < yystack.yystateStack.numTops(); ++yys) + for (state_set_index yys = create_state_set_index(0); yys.uget() < yystack.yystateStack.numTops(); ++yys) yystackp->yystateStack.yytops.setLookaheadNeeds(yys, yychar != ]b4_namespace_ref::b4_parser_class::token::b4_symbol(-2, id)[); /* yyprocessOneStack returns one of three things: @@ -2919,7 +2917,7 @@ b4_dollar_popdef])[]dnl reductions on all stacks) helps prevent double destructor calls on yylval in the event of memory exhaustion. */ - for (yyStateSetIndex yys = yycreateStateSetIndex(0); yys.uget() < yystack.yystateStack.numTops(); ++yys) + for (state_set_index yys = create_state_set_index(0); yys.uget() < yystack.yystateStack.numTops(); ++yys) YYCHK1 (yystack.yyprocessOneStack (yys, yyposn]b4_pure_if([b4_locations_if([, &yylloc])])[)); yystack.yystateStack.yytops.yyremoveDeletes (); if (yystack.yystateStack.yytops.size() == 0) @@ -2942,9 +2940,9 @@ b4_dollar_popdef])[]dnl yytoken_to_shift = YYTRANSLATE (yychar); yychar = ]b4_namespace_ref::b4_parser_class::token::b4_symbol(-2, id)[; yyposn += 1; - for (yyStateSetIndex yys = yycreateStateSetIndex(0); yys.uget() < yystack.yystateStack.numTops(); ++yys) + for (state_set_index yys = create_state_set_index(0); yys.uget() < yystack.yystateStack.numTops(); ++yys) { - yyStateNum yystate = yystack.topState(yys)->yylrState; + state_num yystate = yystack.topState(yys)->yylrState; const short* yyconflicts; int yyaction = yygetLRActions (yystate, yytoken_to_shift, &yyconflicts); @@ -2996,11 +2994,11 @@ b4_dollar_popdef])[]dnl /* DEBUGGING ONLY */ #if ]b4_api_PREFIX[DEBUG static void -yypstack (yyGLRStack* yystackp, size_t yyk) +yypstack (glr_stack* yystackp, size_t yyk) { - yystackp->yypstack(yycreateStateSetIndex(YY_CAST(std::ptrdiff_t, yyk))); + yystackp->yypstack(create_state_set_index(static_cast(yyk))); } -static void yypdumpstack (struct yyGLRStack* yystackp) { +static void yypdumpstack (glr_stack* yystackp) { yystackp->yypdumpstack(); }