[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
style: comment and formatting changes, and fixes
From: |
Akim Demaille |
Subject: |
style: comment and formatting changes, and fixes |
Date: |
Sun, 8 Nov 2020 13:43:10 +0100 |
commit 4b0cd01fb7a1586e6886207376c587516c3152b5
Author: Akim Demaille <akim.demaille@gmail.com>
Date: Sun Oct 4 14:28:39 2020 +0200
style: comment and formatting changes, and fixes
* examples/c/lexcalc/parse.y: Fix option handling.
* src/gram.h: Clarify comments.
* src/ielr.c: Fix indentation.
* src/print.c, src/state.h: More comments.
diff --git a/examples/c/lexcalc/parse.y b/examples/c/lexcalc/parse.y
index 1da92a3e..377dbf70 100644
--- a/examples/c/lexcalc/parse.y
+++ b/examples/c/lexcalc/parse.y
@@ -132,11 +132,11 @@ int main (int argc, const char *argv[])
int nerrs = 0;
// Enable parse traces on option -p.
- for (int i = 0; i < argc; ++i)
- if (1 < argc && strcmp (argv[1], "-p") == 0)
- yydebug = 1;
- else if (strcmp (argv[i], "-e") == 0)
+ for (int i = 1; i < argc; ++i)
+ if (strcmp (argv[i], "-e") == 0)
parse_expression_p = 1;
+ else if (strcmp (argv[i], "-p") == 0)
+ yydebug = 1;
if (parse_expression_p)
{
diff --git a/src/gram.h b/src/gram.h
index c6ce4194..95fec9be 100644
--- a/src/gram.h
+++ b/src/gram.h
@@ -24,12 +24,12 @@
/* Representation of the grammar rules:
NTOKENS is the number of tokens, and NNTERMS is the number of
- variables (nonterminals). NSYMS is the total number, ntokens +
- nnterms.
+ nonterminals (aka variables). NSYMS is the total number, NTOKENS +
+ NNTERMS.
- Each symbol (either token or variable) receives a symbol number.
+ Each symbol (either token or nterm) receives a symbol number.
Numbers 0 to NTOKENS - 1 are for tokens, and NTOKENS to NSYMS - 1
- are for variables. Symbol number zero is the end-of-input token.
+ are for nterms. Symbol number zero is the end-of-input token.
This token is counted in ntokens. The true number of token values
assigned is NTOKENS reduced by one for each alias declaration.
@@ -41,7 +41,7 @@
are 0, 1, 2...
Internally, we cannot use the number 0 for a rule because for
- instance RITEM stores both symbol (the RHS) and rule numbers: the
+ instance RITEM stores both symbols (the RHS) and rule numbers: the
symbols are integers >= 0, and rule numbers are stored negative.
Therefore 0 cannot be used, since it would be both the rule number
0, and the token $end.
@@ -77,8 +77,8 @@
RULES[R].useful -- whether the rule is used. False if thrown away
by reduce().
- The right hand side is stored as symbol numbers in a portion of
- RITEM.
+ The right hand side of rules is stored as symbol numbers in a
+ portion of RITEM.
The length of the portion is one greater than the number of symbols
in the rule's right hand side. The last element in the portion
@@ -87,7 +87,8 @@
The portions of RITEM come in order of increasing rule number.
NRITEMS is the total length of RITEM. Each element of RITEM is
- called an "item" and its index in RITEM is an item number.
+ called an "item" of type item_number and its index in RITEM is an
+ item_index.
Item numbers are used in the finite state machine to represent
places that parsing can get to.
diff --git a/src/ielr.c b/src/ielr.c
index 93fe3ac2..26754a72 100644
--- a/src/ielr.c
+++ b/src/ielr.c
@@ -701,8 +701,8 @@ ielr_compute_state (bitsetv follow_kernel_items, bitsetv
always_follows,
AnnotationIndex ai;
AnnotationList *a;
for (ai = 0, a = annotation_lists[lr0_isocore->state->number];
- a;
- ++ai, a = a->next)
+ a;
+ ++ai, a = a->next)
work1[ai] =
AnnotationList__computeDominantContribution (
a, lr0_isocore->state->nitems, lookaheads, false);
@@ -982,7 +982,7 @@ ielr_split_states (bitsetv follow_kernel_items, bitsetv
always_follows,
this_state;
this_state = this_state->next)
{
- state *s = this_state->state;
+ const state *s = this_state->state;
for (int i = 0; i < s->transitions->num; ++i)
{
state *t = s->transitions->states[i];
diff --git a/src/print.c b/src/print.c
index 467e2f2f..4555ba98 100644
--- a/src/print.c
+++ b/src/print.c
@@ -43,6 +43,8 @@
#include "symtab.h"
#include "tables.h"
+/* For a given state, the symbol numbers of the lookahead tokens for
+ shifts and errors (i.e. not reduce). */
static bitset no_reduce_set;
diff --git a/src/state.h b/src/state.h
index 6a2fd1c3..7024b3b5 100644
--- a/src/state.h
+++ b/src/state.h
@@ -234,6 +234,8 @@ extern state *final_state;
/* Create a new state with ACCESSING_SYMBOL for those items. */
state *state_new (symbol_number accessing_symbol,
size_t core_size, item_index *core);
+/* Create a new state with the same kernel as S (same accessing
+ symbol, transitions, reductions, consistency and items). */
state *state_new_isocore (state const *s);
/* Record that from S we can reach all the DST states (NUM of them). */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- style: comment and formatting changes, and fixes,
Akim Demaille <=