style: comment changes in the skeletons

* data/skeletons/lalr1.cc: Prepare for Java's LAC.
* data/skeletons/lalr1.java: Style fixes.
This commit is contained in:
Akim Demaille
2020-11-01 15:32:24 +01:00
parent 57848d9262
commit 042b916c0e
4 changed files with 55 additions and 47 deletions

View File

@@ -346,12 +346,14 @@ and [Google Java Style
Guide](https://google.github.io/styleguide/javaguide.html). Unfortunately
at some point some GNU Coding Style was installed in Java, but it's an
error. So we should for instance stop putting spaces in function calls.
Because we are standardizing the code, it is currently inconsistent.
Because we are standardizing the code, it is currently inconsistent. Treat
acronyms as words: `YYLacStack`, not `YYLACStack`.
Use a 2-space indentation (Google) rather than 4 (Oracle).
Don't use the "yy" prefix for public members: "getExpectedTokens", not
"yyexpectedTokens" or "yygetExpectedTokens".
Don't use the `yy` prefix for public members: `getExpectedTokens`, not
`yyexpectedTokens` or `yygetExpectedTokens`. Keep the `yy` prefix though
for private details.
## Commit Messages
Imitate the style we use. Use `git log` to get sources of inspiration.

View File

@@ -20,8 +20,7 @@ m4_include(b4_skeletonsdir/[c++.m4])
# api.value.type=variant is valid.
m4_define([b4_value_type_setup_variant])
# Check the value of %define parse.lac, where LAC stands for lookahead
# correction.
# parse.lac
b4_percent_define_default([[parse.lac]], [[none]])
b4_percent_define_check_values([[[[parse.lac]], [[full]], [[none]]]])
b4_define_flag_if([lac])
@@ -851,8 +850,8 @@ m4_if(b4_prefix, [yy], [],
/// The return value of parse ().
int yyresult;]b4_lac_if([[
/// Discard the LAC context in case there still is one left from a
/// previous invocation.
// Discard the LAC context in case there still is one left from a
// previous invocation.
yy_lac_discard_ ("init");]])[
#if YY_EXCEPTIONS
@@ -935,7 +934,7 @@ b4_dollar_popdef])[]dnl
if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ())
{]b4_lac_if([[
if (!yy_lac_establish_ (yyla.kind ()))
goto yyerrlab;]])[
goto yyerrlab;]])[
goto yydefault;
}
@@ -946,7 +945,7 @@ b4_dollar_popdef])[]dnl
if (yy_table_value_is_error_ (yyn))
goto yyerrlab;]b4_lac_if([[
if (!yy_lac_establish_ (yyla.kind ()))
goto yyerrlab;
goto yyerrlab;
]])[
yyn = -yyn;
goto yyreduce;
@@ -1442,7 +1441,9 @@ b4_dollar_popdef])[]dnl
follows. If no initial context is currently established for the
current lookahead, then check if that lookahead can eventually be
shifted if syntactic actions continue from the current context. */
if (!yy_lac_established_)
if (yy_lac_established_)
return true;
else
{
#if ]b4_api_PREFIX[DEBUG
YYCDEBUG << "LAC: initial context established for "
@@ -1451,12 +1452,11 @@ b4_dollar_popdef])[]dnl
yy_lac_established_ = true;
return yy_lac_check_ (yytoken);
}
return true;
}
// Discard any previous initial lookahead context.
void
]b4_parser_class[::yy_lac_discard_ (const char* evt)
]b4_parser_class[::yy_lac_discard_ (const char* event)
{
/* Discard any previous initial lookahead context because of Event,
which may be a lookahead change or an invalidation of the currently
@@ -1472,7 +1472,7 @@ b4_dollar_popdef])[]dnl
if (yy_lac_established_)
{
YYCDEBUG << "LAC: initial context discarded due to "
<< evt << '\n';
<< event << '\n';
yy_lac_established_ = false;
}
}]])b4_parse_error_bmatch([detailed\|verbose], [[

View File

@@ -25,7 +25,10 @@ m4_define([b4_symbol_no_destructor_assert],
[%destructor does not make sense in Java])])])
b4_symbol_foreach([b4_symbol_no_destructor_assert])
# Setup some macros for api.push-pull.
## --------------- ##
## api.push-pull. ##
## --------------- ##
b4_percent_define_default([[api.push-pull]], [[pull]])
b4_percent_define_check_values([[[[api.push-pull]],
[[pull]], [[push]], [[both]]]])
@@ -52,7 +55,8 @@ b4_use_push_for_pull_if([
# Define a macro to encapsulate the parse state variables. This
# allows them to be defined either in parse() when doing pull parsing,
# or as class instance variable when doing push parsing.
m4_define([b4_define_state],[[
m4_define([b4_define_state],
[[
/* Lookahead token kind. */
int yychar = YYEMPTY_;
/* Lookahead symbol kind. */
@@ -76,6 +80,10 @@ m4_define([b4_define_state],[[
]b4_yystype[ yylval = null;
]])[
## ------------- ##
## Parser File. ##
## ------------- ##
]b4_output_begin([b4_parser_file_name])[
]b4_copyright([Skeleton implementation for Bison LALR(1) parsers in Java],
[2007-2015, 2018-2020])[
@@ -343,65 +351,63 @@ import java.text.MessageFormat;
public int size = 16;
public int height = -1;
public final void push (int state, ]b4_yystype[ value]b4_locations_if([, ]b4_location_type[ loc])[) {
public final void push(int state, ]b4_yystype[ value]b4_locations_if([, ]b4_location_type[ loc])[) {
height++;
if (size == height)
{
int[] newStateStack = new int[size * 2];
System.arraycopy (stateStack, 0, newStateStack, 0, height);
stateStack = newStateStack;]b4_locations_if([[
]b4_location_type[[] newLocStack = new ]b4_location_type[[size * 2];
System.arraycopy (locStack, 0, newLocStack, 0, height);
locStack = newLocStack;]])
if (size == height) {
int[] newStateStack = new int[size * 2];
System.arraycopy(stateStack, 0, newStateStack, 0, height);
stateStack = newStateStack;]b4_locations_if([[
]b4_location_type[[] newLocStack = new ]b4_location_type[[size * 2];
System.arraycopy(locStack, 0, newLocStack, 0, height);
locStack = newLocStack;]])
b4_yystype[[] newValueStack = new ]b4_yystype[[size * 2];
System.arraycopy (valueStack, 0, newValueStack, 0, height);
valueStack = newValueStack;
b4_yystype[[] newValueStack = new ]b4_yystype[[size * 2];
System.arraycopy(valueStack, 0, newValueStack, 0, height);
valueStack = newValueStack;
size *= 2;
}
size *= 2;
}
stateStack[height] = state;]b4_locations_if([[
locStack[height] = loc;]])[
valueStack[height] = value;
}
public final void pop () {
pop (1);
public final void pop() {
pop(1);
}
public final void pop (int num) {
public final void pop(int num) {
// Avoid memory leaks... garbage collection is a white lie!
if (0 < num) {
java.util.Arrays.fill (valueStack, height - num + 1, height + 1, null);]b4_locations_if([[
java.util.Arrays.fill (locStack, height - num + 1, height + 1, null);]])[
java.util.Arrays.fill(valueStack, height - num + 1, height + 1, null);]b4_locations_if([[
java.util.Arrays.fill(locStack, height - num + 1, height + 1, null);]])[
}
height -= num;
}
public final int stateAt (int i) {
public final int stateAt(int i) {
return stateStack[height - i];
}
]b4_locations_if([[
public final ]b4_location_type[ locationAt (int i) {
public final ]b4_location_type[ locationAt(int i) {
return locStack[height - i];
}
]])[
public final ]b4_yystype[ valueAt (int i) {
public final ]b4_yystype[ valueAt(int i) {
return valueStack[height - i];
}
// Print the state stack on the debug stream.
public void print (java.io.PrintStream out) {
public void print(java.io.PrintStream out) {
out.print ("Stack now");
for (int i = 0; i <= height; i++)
{
out.print (' ');
out.print (stateStack[i]);
}
out.println ();
for (int i = 0; i <= height; i++) {
out.print(' ');
out.print(stateStack[i]);
}
out.println();
}
}

View File

@@ -117,13 +117,13 @@
// with TOK_ (e.g., TOK_EOF).
%define api.token.prefix {TOK_}
// Customized syntax error messages (see yyreport_syntax_error).
// Customized syntax error messages (see yyreport_syntax_error)...
%define parse.error custom
// with locations.
// ... with locations...
%locations
// and accurate list of expected tokens.
// ... and accurate list of expected tokens.
%define parse.lac full
// Generate the parser description file (calc.output).