[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 5/9] style: rename semanticVal as value
From: |
Akim Demaille |
Subject: |
[PATCH 5/9] style: rename semanticVal as value |
Date: |
Sat, 26 Dec 2020 15:42:34 +0100 |
* data/skeletons/README-D.txt: Remove, now useless and obsolete.
* data/skeletons/glr2.cc, examples/d/calc/calc.y,
* tests/calc.at, tests/d.at, tests/scanner.at (semanticVal): Replace
with...
(value): this.
---
TODO | 2 +-
data/local.mk | 1 -
data/skeletons/README-D.txt | 60 -------------------------------------
data/skeletons/glr2.cc | 28 ++++++++---------
examples/d/calc/calc.y | 6 ++--
tests/calc.at | 6 ++--
tests/d.at | 2 --
tests/scanner.at | 6 ++--
8 files changed, 24 insertions(+), 87 deletions(-)
delete mode 100644 data/skeletons/README-D.txt
diff --git a/TODO b/TODO
index 90ecea33..db73ace8 100644
--- a/TODO
+++ b/TODO
@@ -786,7 +786,7 @@ Equip the parser with a means to create the (visual) parse
tree.
# LocalWords: nterm bitsetv ielr ritem nstates nrules nritems yysymbol EQ
# LocalWords: SymbolKind YYEMPTY YYUNDEF YYTNAME NUM yyntokens yytname sed
# LocalWords: nonterminals yykind yycode YYNAMES yynames init getName conv
-# LocalWords: TokenKind semanticVal ival yychar yylval yylexer Tolmer hoc
+# LocalWords: TokenKind ival yychar yylval yylexer Tolmer hoc
# LocalWords: Sobisch YYPTRDIFF ptrdiff Autotest YYPRINT toknum yytoknum
# LocalWords: sym Wother stderr FP fixits xgettext fdiagnostics Graphviz
# LocalWords: graphviz VCG bitset xml bw maint yytoken YYABORT deps
diff --git a/data/local.mk b/data/local.mk
index 1ad9d235..3ead3af9 100644
--- a/data/local.mk
+++ b/data/local.mk
@@ -41,7 +41,6 @@ dist_skeletons_DATA = \
# Experimental support for the D language.
dist_skeletons_DATA += \
- data/skeletons/README-D.txt \
data/skeletons/d-skel.m4 \
data/skeletons/d.m4 \
data/skeletons/lalr1.d
diff --git a/data/skeletons/README-D.txt b/data/skeletons/README-D.txt
deleted file mode 100644
index e6068b4e..00000000
--- a/data/skeletons/README-D.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-Some usage notes for the D Parser:
-
-- it is a port of the Java parser, so interface is very similar.
-
-- the lexer class needs to implement the interface 'Lexer' (similar to
- java). It typically (depending on options) looks like this:
-
-public interface Lexer
-{
- /**
- * Method to retrieve the beginning position of the last scanned token.
- * @return the position at which the last scanned token starts. */
- @property YYPosition startPos ();
-
- /**
- * Method to retrieve the ending position of the last scanned token.
- * @return the first position beyond the last scanned token. */
- @property YYPosition endPos ();
-
- /**
- * Method to retrieve the semantic value of the last scanned token.
- * @return the semantic value of the last scanned token. */
- @property YYSemanticType semanticVal ();
-
- /**
- * Entry point for the scanner. Returns the token identifier corresponding
- * to the next token and prepares to return the semantic value
- * and beginning/ending positions of the token.
- * @return the token identifier corresponding to the next token. */
- TokenKind yylex ();
-
- /**
- * Entry point for error reporting. Emits an error
- * referring to the given location in a user-defined way.
- *
- * @param loc The location of the element to which the
- * error message is related
- * @param s The string for the error message. */
- void yyerror (YYLocation loc, string s);
-}
-
-- semantic types are handled by D unions (same as for C/C++ parsers)
-
-- the following (non-standard) %defines are supported:
-
- %define package "<package_name>"
- %define api.parser.class "my_class_name>"
- %define position_type "my_position_type"
- %define location_type "my_location_type"
-
-- the following declarations basically work like in C/C++:
-
- %locations
- %error-verbose
- %parse-param
- %initial-action
- %code
- %union
-
-- %destructor is not yet supported
diff --git a/data/skeletons/glr2.cc b/data/skeletons/glr2.cc
index 04d76dcc..00adae89 100644
--- a/data/skeletons/glr2.cc
+++ b/data/skeletons/glr2.cc
@@ -344,7 +344,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]).semanticVal()], [$3], [$4])])
+[b4_symbol_value([b4_rhs_data([$1], [$2]).value ()], [$3], [$4])])
@@ -767,7 +767,7 @@ public:
{
setPred (other.pred ());
if (other.yyresolved)
- new (&yysval) value_type (other.semanticVal ());
+ new (&yysval) value_type (other.value ());
else
setFirstVal (other.firstVal ());]b4_parse_assert_if([[
check_();]])[
@@ -792,7 +792,7 @@ public:
yyposn = other.yyposn;
setPred (other.pred ());
if (other.yyresolved)
- semanticVal () = other.semanticVal ();
+ value () = other.value ();
else
setFirstVal (other.firstVal ());]b4_locations_if([[
yyloc = other.yyloc;]])[
@@ -818,13 +818,13 @@ public:
const semantic_option* firstVal () const;
void setFirstVal (const semantic_option* option);
- value_type& semanticVal ()
+ value_type& value ()
{]b4_parse_assert_if([[
check_ ();]])[
return yysval;
}
- const value_type& semanticVal () const
+ const value_type& value () const
{]b4_parse_assert_if([[
check_ ();]])[
return yysval;
@@ -1119,12 +1119,12 @@ public:
else if (yys0->yyresolved)
{
yys1->yyresolved = true;
- yys1->semanticVal() = yys0->semanticVal();
+ yys1->value () = yys0->value ();
}
else if (yys1->yyresolved)
{
yys0->yyresolved = true;
- yys0->semanticVal() = yys1->semanticVal();
+ yys0->value () = yys1->value ();
}
else
{
@@ -1407,7 +1407,7 @@ void glr_state::destroy (char const* yymsg,
]b4_namespace_ref[::]b4_parser_class
check_ ();]])[
if (yyresolved)
yyparser.yy_destroy_ (yymsg, yy_accessing_symbol(yylrState),
- &semanticVal()]b4_locations_if([, &yyloc])[);
+ &value ()]b4_locations_if([, &yyloc])[);
else
{
YY_SYMBOL_PRINT (yymsg << (firstVal() ? " unresolved" : " incomplete"),
@@ -1700,10 +1700,10 @@ public:
#endif
yys.yyresolved = s->yyresolved;
if (s->yyresolved)
- new (&yys.semanticVal ()) value_type (s->semanticVal ());
+ new (&yys.value ()) value_type (s->value ());
else
- /* The effect of using semanticVal or yyloc (in an immediate rule) is
- * undefined. */
+ /* The effect of using yysval or yyloc (in an immediate
+ * rule) is undefined. */
yys.setFirstVal (YY_NULLPTR);]b4_locations_if([[
yys.yyloc = s->yyloc;]])[
yys.setPred(s->pred());
@@ -1740,7 +1740,7 @@ public:
std::cerr << " $" << yyi + 1 << " = ";
yyparser.yy_symbol_print_
(yy_accessing_symbol (yyvsp[yyi - yynrhs + 1].getState().yylrState),
- &yyvsp[yyi - yynrhs +
1].getState().semanticVal()]b4_locations_if([[,
+ &yyvsp[yyi - yynrhs + 1].getState().value ()]b4_locations_if([[,
&]b4_rhs_location(yynrhs, yyi + 1)])[);
if (!yyvsp[yyi - yynrhs + 1].getState().yyresolved)
std::cerr << " (unresolved)";
@@ -2296,7 +2296,7 @@ public:
if (yyrhslen == 0)
*yyvalp = yyval_default;
else
- *yyvalp = yyvsp[YYFILL
(1-yyrhslen)].getState().semanticVal();]b4_locations_if([[
+ *yyvalp = yyvsp[YYFILL (1-yyrhslen)].getState().value
();]b4_locations_if([[
/* Default location. */
YYLLOC_DEFAULT ((*yylocp), (yyvsp - yyrhslen), yyrhslen);
yyerror_range[1].getState().yyloc = *yylocp;
@@ -2657,7 +2657,7 @@ private:
{
yys.yyresolved = true;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- new (&yys.semanticVal ()) value_type (yysval);
+ new (&yys.value ()) value_type (yysval);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
else
diff --git a/examples/d/calc/calc.y b/examples/d/calc/calc.y
index 2c79c158..572b10b6 100644
--- a/examples/d/calc/calc.y
+++ b/examples/d/calc/calc.y
@@ -106,7 +106,7 @@ if (isInputRange!R && is(ElementType!R : dchar))
stderr.writeln(loc.toString(), ": ", s);
}
- Value semanticVal_;
+ Value value_;
Symbol yylex()
{
@@ -129,7 +129,7 @@ if (isInputRange!R && is(ElementType!R : dchar))
int lenChars = 0;
auto copy = input;
import std.conv : parse;
- semanticVal_.ival = input.parse!int;
+ value_.ival = input.parse!int;
while (!input.empty && copy.front != input.front)
{
lenChars++;
@@ -137,7 +137,7 @@ if (isInputRange!R && is(ElementType!R : dchar))
}
location.begin = location.end;
location.end.column += lenChars;
- return Symbol(TokenKind.NUM, semanticVal_.ival, location);
+ return Symbol(TokenKind.NUM, value_.ival, location);
}
// Individual characters
diff --git a/tests/calc.at b/tests/calc.at
index 85f95fca..b1428316 100644
--- a/tests/calc.at
+++ b/tests/calc.at
@@ -563,7 +563,7 @@ class CalcLexer(R) : Lexer
]AT_YYERROR_DEFINE[
- Value semanticVal_;]AT_LOCATION_IF([[
+ Value value_;]AT_LOCATION_IF([[
Location location;
]])[
int parseInt ()
@@ -600,8 +600,8 @@ class CalcLexer(R) : Lexer
// Numbers.
if (input.front.isNumber)
{
- semanticVal_.ival = parseInt;
- return Symbol(TokenKind.]AT_TOKEN_PREFIX[NUM,
semanticVal_.ival]AT_LOCATION_IF([[, location]])[);
+ value_.ival = parseInt;
+ return Symbol(TokenKind.]AT_TOKEN_PREFIX[NUM,
value_.ival]AT_LOCATION_IF([[, location]])[);
}
// Individual characters
diff --git a/tests/d.at b/tests/d.at
index f268b820..869824fe 100644
--- a/tests/d.at
+++ b/tests/d.at
@@ -78,8 +78,6 @@ class CalcLexer(R) : Lexer
void yyerror(string s) {}
- Value semanticVal_;
-
Symbol yylex()
{
$2
diff --git a/tests/scanner.at b/tests/scanner.at
index 46a20116..023e2791 100644
--- a/tests/scanner.at
+++ b/tests/scanner.at
@@ -115,7 +115,7 @@ class YYLexer(R) : Lexer
]AT_YYERROR_DEFINE[
- Value semanticVal_;
+ Value value_;
Symbol yylex ()
{
@@ -131,8 +131,8 @@ class YYLexer(R) : Lexer
switch (c)
{
case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
- semanticVal_.val = c - '0';
- return Symbol(TokenKind.NUM, semanticVal_.val);
+ value_.val = c - '0';
+ return Symbol(TokenKind.NUM, value_.val);
case '+': return Symbol(TokenKind.PLUS);
case '-': return Symbol(TokenKind.MINUS);
case '*': return Symbol(TokenKind.STAR);
--
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 <=
- [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, 2020/12/26
- [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