[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 7/9] style: use yyval only, not yysval
From: |
Akim Demaille |
Subject: |
[PATCH 7/9] style: use yyval only, not yysval |
Date: |
Sat, 26 Dec 2020 15:42:36 +0100 |
* data/skeletons/glr.c, data/skeletons/glr2.cc: Use yyval, as in
the other skeletons.
---
TODO | 8 +-------
data/skeletons/glr.c | 46 +++++++++++++++++++++---------------------
data/skeletons/glr2.cc | 44 ++++++++++++++++++++--------------------
3 files changed, 46 insertions(+), 52 deletions(-)
diff --git a/TODO b/TODO
index db73ace8..f88a12d4 100644
--- a/TODO
+++ b/TODO
@@ -16,16 +16,10 @@ Discourage the use of YYDEBUG in C++ (see thread with Jot).
Stop supporting
Add value_type as a synonym for semantic_type.
** Asymmetries
-In glr_state, we have yysval and yylloc. It should be yyval/yyloc (and
-yylval/yylloc when referring to the lookahead). glr.c should
-s/yysval/yyval/.
-
-Also
+Why are yylval and yylloc treated differently?
yystack.yyglrShift (create_state_set_index(0), 0, 0, yylval, &yylloc);
-Why are yylval and yylloc treated differently?
-
** yyerrok in Java
And add tests in calc.at, to prepare work for D.
diff --git a/data/skeletons/glr.c b/data/skeletons/glr.c
index 29e7761a..78e255e1 100644
--- a/data/skeletons/glr.c
+++ b/data/skeletons/glr.c
@@ -124,7 +124,7 @@ m4_define([b4_rhs_data],
# --------------------------------------------------
# Expansion of $$ or $<TYPE>$, for symbol SYMBOL-NUM.
m4_define([b4_rhs_value],
-[b4_symbol_value([b4_rhs_data([$1], [$2]).yysemantics.yysval], [$3], [$4])])
+[b4_symbol_value([b4_rhs_data([$1], [$2]).yysemantics.yyval], [$3], [$4])])
@@ -502,7 +502,7 @@ struct yyGLRState
{
/** Type tag: always true. */
yybool yyisState;
- /** Type tag for yysemantics. If true, yysval applies, otherwise
+ /** Type tag for yysemantics. If true, yyval applies, otherwise
* yyfirstVal applies. */
yybool yyresolved;
/** Number of corresponding LALR(1) machine state. */
@@ -517,7 +517,7 @@ struct yyGLRState
* yynext. */
yySemanticOption* yyfirstVal;
/** Semantic value for this state. */
- YYSTYPE yysval;
+ YYSTYPE yyval;
} yysemantics;]b4_locations_if([[
/** Source location for this state. */
YYLTYPE yyloc;]])[
@@ -796,9 +796,9 @@ yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
#endif
yyvsp[i].yystate.yyresolved = s->yyresolved;
if (s->yyresolved)
- yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
+ yyvsp[i].yystate.yysemantics.yyval = s->yysemantics.yyval;
else
- /* The effect of using yysval or yyloc (in an immediate rule) is
+ /* The effect of using yyval or yyloc (in an immediate rule) is
* undefined. */
yyvsp[i].yystate.yysemantics.yyfirstVal =
YY_NULLPTR;]b4_locations_if([[
yyvsp[i].yystate.yyloc = s->yyloc;]])[
@@ -904,7 +904,7 @@ yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem*
yyvsp,
if (yyrhslen == 0)
*yyvalp = yyval_default;
else
- *yyvalp = yyvsp[YYFILL
(1-yyrhslen)].yystate.yysemantics.yysval;]b4_locations_if([[
+ *yyvalp = yyvsp[YYFILL
(1-yyrhslen)].yystate.yysemantics.yyval;]b4_locations_if([[
/* Default location. */
YYLLOC_DEFAULT ((*yylocp), (yyvsp - yyrhslen), yyrhslen);
yystackp->yyerror_range[1].yystate.yyloc = *yylocp;
@@ -970,7 +970,7 @@ yydestroyGLRState (char const *yymsg, yyGLRState
*yys]b4_user_formals[)
{
if (yys->yyresolved)
yydestruct (yymsg, yy_accessing_symbol (yys->yylrState),
- &yys->yysemantics.yysval]b4_locuser_args([&yys->yyloc])[);
+ &yys->yysemantics.yyval]b4_locuser_args([&yys->yyloc])[);
else
{
#if ]b4_api_PREFIX[DEBUG
@@ -1345,7 +1345,7 @@ yyglrShift (yyGLRStack* yystackp, YYPTRDIFF_T yyk,
yy_state_t yylrState,
yynewState->yyposn = yyposn;
yynewState->yyresolved = yytrue;
yynewState->yypred = yystackp->yytops.yystates[yyk];
- yynewState->yysemantics.yysval = *yyvalp;]b4_locations_if([
+ yynewState->yysemantics.yyval = *yyvalp;]b4_locations_if([
yynewState->yyloc = *yylocp;])[
yystackp->yytops.yystates[yyk] = yynewState;
@@ -1403,7 +1403,7 @@ yy_reduce_print (yybool yynormal, yyGLRStackItem* yyvsp,
YYPTRDIFF_T yyk,
YY_FPRINTF ((stderr, " $%d = ", yyi + 1));
yy_symbol_print (stderr,
yy_accessing_symbol (yyvsp[yyi - yynrhs +
1].yystate.yylrState),
- &yyvsp[yyi - yynrhs +
1].yystate.yysemantics.yysval]b4_locations_if([,
+ &yyvsp[yyi - yynrhs +
1].yystate.yysemantics.yyval]b4_locations_if([,
&]b4_rhs_location(yynrhs, yyi + 1))[]dnl
b4_user_args[);
if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
@@ -1479,21 +1479,21 @@ yyglrReduce (yyGLRStack* yystackp, YYPTRDIFF_T yyk,
yyRuleNum yyrule,
if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
{
- YYSTYPE yysval;]b4_locations_if([[
+ YYSTYPE yyval;]b4_locations_if([[
YYLTYPE yyloc;]])[
- YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule,
&yysval]b4_locuser_args([&yyloc])[);
+ YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule,
&yyval]b4_locuser_args([&yyloc])[);
if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
YY_DPRINTF ((stderr,
"Parse on stack %ld rejected by rule %d (line %d).\n",
YY_CAST (long, yyk), yyrule - 1, yyrline[yyrule]));
if (yyflag != yyok)
return yyflag;
- YY_SYMBOL_PRINT ("-> $$ =", yylhsNonterm (yyrule), &yysval, &yyloc);
+ YY_SYMBOL_PRINT ("-> $$ =", yylhsNonterm (yyrule), &yyval, &yyloc);
yyglrShift (yystackp, yyk,
yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
yylhsNonterm (yyrule)),
- yyposn, &yysval]b4_locations_if([, &yyloc])[);
+ yyposn, &yyval]b4_locations_if([, &yyloc])[);
}
else
{
@@ -1624,12 +1624,12 @@ yymergeOptionSets (yySemanticOption* yyy0,
yySemanticOption* yyy1)
else if (yys0->yyresolved)
{
yys1->yyresolved = yytrue;
- yys1->yysemantics.yysval = yys0->yysemantics.yysval;
+ yys1->yysemantics.yyval = yys0->yysemantics.yyval;
}
else if (yys1->yyresolved)
{
yys0->yyresolved = yytrue;
- yys0->yysemantics.yysval = yys1->yysemantics.yysval;
+ yys0->yysemantics.yyval = yys1->yysemantics.yyval;
}
else
{
@@ -1875,7 +1875,7 @@ yyresolveValue (yyGLRState* yys, yyGLRStack*
yystackp]b4_user_formals[)
yySemanticOption* yybest = yyoptionList;
yySemanticOption** yypp;
yybool yymerge = yyfalse;
- YYSTYPE yysval;
+ YYSTYPE yyval;
YYRESULTTAG yyflag;]b4_locations_if([
YYLTYPE *yylocp = &yys->yyloc;])[
@@ -1919,33 +1919,33 @@ yyresolveValue (yyGLRState* yys, yyGLRStack*
yystackp]b4_user_formals[)
{
yySemanticOption* yyp;
int yyprec = yydprec[yybest->yyrule];
- yyflag = yyresolveAction (yybest, yystackp, &yysval]b4_locuser_args[);
+ yyflag = yyresolveAction (yybest, yystackp, &yyval]b4_locuser_args[);
if (yyflag == yyok)
for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
{
if (yyprec == yydprec[yyp->yyrule])
{
- YYSTYPE yysval_other;]b4_locations_if([
+ YYSTYPE yyval_other;]b4_locations_if([
YYLTYPE yydummy;])[
- yyflag = yyresolveAction (yyp, yystackp,
&yysval_other]b4_locuser_args([&yydummy])[);
+ yyflag = yyresolveAction (yyp, yystackp,
&yyval_other]b4_locuser_args([&yydummy])[);
if (yyflag != yyok)
{
yydestruct ("Cleanup: discarding incompletely merged value
for",
yy_accessing_symbol (yys->yylrState),
- &yysval]b4_locuser_args[);
+ &yyval]b4_locuser_args[);
break;
}
- yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
+ yyuserMerge (yymerger[yyp->yyrule], &yyval, &yyval_other);
}
}
}
else
- yyflag = yyresolveAction (yybest, yystackp,
&yysval]b4_locuser_args([yylocp])[);
+ yyflag = yyresolveAction (yybest, yystackp,
&yyval]b4_locuser_args([yylocp])[);
if (yyflag == yyok)
{
yys->yyresolved = yytrue;
- yys->yysemantics.yysval = yysval;
+ yys->yysemantics.yyval = yyval;
}
else
yys->yysemantics.yyfirstVal = YY_NULLPTR;
diff --git a/data/skeletons/glr2.cc b/data/skeletons/glr2.cc
index 2ab40800..a31ad36b 100644
--- a/data/skeletons/glr2.cc
+++ b/data/skeletons/glr2.cc
@@ -741,7 +741,7 @@ public:
, yylrState (lrState)
, yyposn (posn)
, yypred (0)
- , yysval (sval)]b4_locations_if([[
+ , yyval (sval)]b4_locations_if([[
, yyloc (loc)]])[]b4_parse_assert_if([[
, magic_ (MAGIC)]])[
{}
@@ -767,7 +767,7 @@ public:
{
setPred (other.pred ());
if (other.yyresolved)
- new (&yysval) value_type (other.value ());
+ new (&yyval) value_type (other.value ());
else
setFirstVal (other.firstVal ());]b4_parse_assert_if([[
check_();]])[
@@ -778,7 +778,7 @@ public:
check_ ();
magic_ = 0;]])[
if (yyresolved)
- yysval.~value_type ();
+ yyval.~value_type ();
}
glr_state& operator= (const glr_state& other)
@@ -786,7 +786,7 @@ public:
check_ ();
other.check_ ();]])[
if (!yyresolved && other.yyresolved)
- new (&yysval) value_type;
+ new (&yyval) value_type;
yyresolved = other.yyresolved;
yylrState = other.yylrState;
yyposn = other.yyposn;
@@ -799,7 +799,7 @@ public:
return *this;
}
- /** Type tag for the semantic value. If true, yysval applies, otherwise
+ /** Type tag for the semantic value. If true, yyval applies, otherwise
* yyfirstVal applies. */
bool yyresolved;
/** Number of corresponding LALR(1) machine state. */
@@ -821,13 +821,13 @@ public:
value_type& value ()
{]b4_parse_assert_if([[
check_ ();]])[
- return yysval;
+ return yyval;
}
const value_type& value () const
{]b4_parse_assert_if([[
check_ ();]])[
- return yysval;
+ return yyval;
}
void
@@ -888,7 +888,7 @@ private:
* yyfirstVal. */
std::ptrdiff_t yyfirstVal;
/** Semantic value for this state. */
- value_type yysval;
+ value_type yyval;
};]b4_locations_if([[
// FIXME: Why public?
public:
@@ -1702,7 +1702,7 @@ public:
if (s->yyresolved)
new (&yys.value ()) value_type (s->value ());
else
- /* The effect of using yysval or yyloc (in an immediate
+ /* The effect of using yyval or yyloc (in an immediate
* rule) is undefined. */
yys.setFirstVal (YY_NULLPTR);]b4_locations_if([[
yys.yyloc = s->yyloc;]])[
@@ -2409,10 +2409,10 @@ public:
if (yyforceEval || !yystateStack.isSplit())
{
- value_type yysval;]b4_locations_if([[
+ value_type val;]b4_locations_if([[
location_type loc;]])[
- YYRESULTTAG yyflag = yydoAction (yyk, yyrule,
&yysval]b4_locations_if([, &loc])[);
+ YYRESULTTAG yyflag = yydoAction (yyk, yyrule, &val]b4_locations_if([,
&loc])[);
if (yyflag == yyerr && yystateStack.isSplit())
{]b4_parse_trace_if([[
YYCDEBUG << "Parse on stack " << yyk.get ()
@@ -2421,11 +2421,11 @@ public:
]])[}
if (yyflag != yyok)
return yyflag;
- YY_SYMBOL_PRINT ("-> $$ =",
static_cast<yysymbol_kind_t>(yyr1[yyrule]), &yysval, &loc);
+ YY_SYMBOL_PRINT ("-> $$ =",
static_cast<yysymbol_kind_t>(yyr1[yyrule]), &val, &loc);
yyglrShift (yyk,
yyLRgotoState (topState(yyk)->yylrState,
yylhsNonterm (yyrule)),
- yyposn, yysval]b4_locations_if([, loc])[);
+ yyposn, val]b4_locations_if([, loc])[);
}
else
{
@@ -2582,7 +2582,7 @@ private:
semantic_option* yybest = yys.firstVal();
YYASSERT(yybest != YY_NULLPTR);
bool yymerge = false;
- value_type yysval;
+ value_type val;
YYRESULTTAG yyflag;]b4_locations_if([
location_type *yylocp = &yys.yyloc;])[
@@ -2627,7 +2627,7 @@ private:
if (yymerge)
{
int yyprec = yydprec[yybest->yyrule];
- yyflag = yyresolveAction (*yybest, &yysval]b4_locations_if([,
yylocp])[);
+ yyflag = yyresolveAction (*yybest, &val]b4_locations_if([, yylocp])[);
if (yyflag == yyok)
for (semantic_option* yyp = yybest->next();
yyp != YY_NULLPTR;
@@ -2635,28 +2635,28 @@ private:
{
if (yyprec == yydprec[yyp->yyrule])
{
- value_type yysval_other;]b4_locations_if([
+ value_type yyval_other;]b4_locations_if([
location_type yydummy;])[
- yyflag = yyresolveAction (*yyp,
&yysval_other]b4_locations_if([, &yydummy])[);
+ yyflag = yyresolveAction (*yyp,
&yyval_other]b4_locations_if([, &yydummy])[);
if (yyflag != yyok)
{
yyparser.yy_destroy_ ("Cleanup: discarding incompletely
merged value for",
- yy_accessing_symbol(yys.yylrState),
- &yysval]b4_locations_if([, yylocp])[);
+ yy_accessing_symbol(yys.yylrState),
+ &yyval]b4_locations_if([,
yylocp])[);
break;
}
- yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
+ yyuserMerge (yymerger[yyp->yyrule], &val, &yyval_other);
}
}
}
else
- yyflag = yyresolveAction (*yybest, &yysval]b4_locations_if([, yylocp])[);
+ yyflag = yyresolveAction (*yybest, &val]b4_locations_if([, yylocp])[);
if (yyflag == yyok)
{
yys.yyresolved = true;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- new (&yys.value ()) value_type (yysval);
+ new (&yys.value ()) value_type (val);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
else
--
2.29.2
- [PATCH 0/9] glr2.cc: clean up, Akim Demaille, 2020/12/26
- [PATCH 1/9] glr2.cc: don't use YYSTYPE/YYLTYPE at all, Akim Demaille, 2020/12/26
- [PATCH 2/9] glr2.cc: formatting changes, Akim Demaille, 2020/12/26
- [PATCH 3/9] glr2.cc: use YYCDEBUG, not YY_DEBUG_STREAM, Akim Demaille, 2020/12/26
- [PATCH 4/9] glr2.cc: remove dead comments, Akim Demaille, 2020/12/26
- [PATCH 5/9] style: rename semanticVal as value, Akim Demaille, 2020/12/26
- [PATCH 6/9] glr2.cc: pass location by const ref to yyglrShift, Akim Demaille, 2020/12/26
- [PATCH 7/9] style: use yyval only, not yysval,
Akim Demaille <=
- [PATCH 8/9] glr2.cc: pass reference to yyreportAmbiguity, Akim Demaille, 2020/12/26
- [PATCH 9/9] glr2.cc: make yyreportTree a member function of semantic_option, Akim Demaille, 2020/12/26