bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 0/6] {master} internals: improve readability


From: Akim Demaille
Subject: Re: [PATCH 0/6] {master} internals: improve readability
Date: Thu, 27 Dec 2012 16:42:06 +0100

Le 27 déc. 2012 à 09:25, Akim Demaille <address@hidden> a écrit :

> Théophile is spending time in tables.cc, whose style could use
> some improvements to be easier to understand.
> 
> Akim Demaille (6):
>  tables: style changes
>  tables: use size_t where appropriate
>  tables: scope reduction
>  tables: scope reduction
>  tables: scope reduction
>  tables: scope reduction

One more.

commit 11aef5e95b890364474c49c7d4529de2bec3544e
Author: Akim Demaille <address@hidden>
Date:   Thu Dec 27 10:52:42 2012 +0100

    tables: scope reduction
    
    * src/tables.c (default_goto): Make it easier to understand.

diff --git a/src/tables.c b/src/tables.c
index c623301..a57d465 100644
--- a/src/tables.c
+++ b/src/tables.c
@@ -395,7 +395,7 @@ save_row (state_number s)
       base_number *sp1 = froms[s] = xnmalloc (count, sizeof *sp1);
       base_number *sp2 = tos[s] = xnmalloc (count, sizeof *sp2);
       unsigned int *sp3 = conflict_tos[s] =
-        nondeterministic_parser ? xnmalloc (count, sizeof *sp3) : NULL;;
+        nondeterministic_parser ? xnmalloc (count, sizeof *sp3) : NULL;
 
       /* Store non defaulted actions.  */
       for (i = 0; i < ntokens; i++)
@@ -513,37 +513,38 @@ save_column (symbol_number sym, state_number 
default_state)
 }
 
 
-/*-------------------------------------------------------------.
-| Return `the' most common destination GOTO on SYM (a nterm).  |
-`-------------------------------------------------------------*/
+/*----------------------------------------------------------------.
+| The default state for SYM: the state which is 'the' most common |
+| GOTO destination on SYM (an nterm).                             |
+`----------------------------------------------------------------*/
 
 static state_number
 default_goto (symbol_number sym, size_t state_count[])
 {
-  state_number s;
-  goto_number i;
-  goto_number m = goto_map[sym - ntokens];
-  goto_number n = goto_map[sym - ntokens + 1];
-  state_number default_state = -1;
-  size_t max = 0;
-
-  if (m == n)
-    return -1;
+  goto_number begin = goto_map[sym - ntokens];
+  goto_number end = goto_map[sym - ntokens + 1];
+  state_number res = -1;
 
-  for (s = 0; s < nstates; s++)
-    state_count[s] = 0;
+  if (begin != end)
+    {
+      size_t max = 0;
+      goto_number i;
+      state_number s;
 
-  for (i = m; i < n; i++)
-    state_count[to_state[i]]++;
+      for (s = 0; s < nstates; s++)
+        state_count[s] = 0;
 
-  for (s = 0; s < nstates; s++)
-    if (state_count[s] > max)
-      {
-        max = state_count[s];
-        default_state = s;
-      }
+      for (i = begin; i < end; i++)
+        state_count[to_state[i]]++;
 
-  return default_state;
+      for (s = 0; s < nstates; s++)
+        if (max < state_count[s])
+          {
+            max = state_count[s];
+            res = s;
+          }
+    }
+  return res;
 }
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]