commit-bison
[Top][All Lists]
Advanced

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

bison ChangeLog


From: Akim Demaille
Subject: bison ChangeLog
Date: Sun, 07 Apr 2002 12:28:39 -0400

CVSROOT:        /cvsroot/bison
Module name:    bison
Changes by:     Akim Demaille <address@hidden>  02/04/07 12:28:39

Modified files:
        .              : ChangeLog 

Log message:
        Remove the useless rules from the parser.
        * src/gram.h, src/gram.c (rules_swap, rule_rhs_length): New.
        (ritem_longest_rhs): Use the latter.
        * src/gram.h (rule_t): `number' is a new member.
        * src/reader.c (packgram): Set it.
        * src/reduce.c (reduce_grammar_tables): Move the useless rules at
        the end of `rules', and count them out of `nrules'.
        (reduce_output, dump_grammar): Adjust.
        * src/print.c (print_grammar): It is no longer needed to check for
        the usefulness of a rule, as useless rules are beyond `nrules + 1'.
        * tests/reduce.at (Reduced Automaton): New test.
        Changes in version 1.49a:
        * False `Token not used' report fixed.
        On a grammar such as
        /* Allocate input grammar variables for bison,
        This file is part of Bison, the GNU Compiler Compiler.
        int error_token_number;
        /*------------------------.
        | Dump RITEM for traces.  |
        `------------------------*/
        size_t
        ritem_longest_rhs (void)
        {
        int i;
        return max;
        }
        typedef struct rule_s
        {
        short lhs;
        short *rhs;
        short prec;
        extern int error_token_number;
        /* Dump RITEM for traces. */
        void ritem_print PARAMS ((FILE *out));
        fprintf (out, "%snn", _("Grammar"));
        fprintf (out, "  %sn", _("Number, Line, Rule"));
        for (i = 1; i < nrules + 1; i++)
        fputs ("nn", out);
        while (p)
        {
        bucket *ruleprec = p->ruleprec;
        rules[ruleno].lhs = p->sym->number;
        rules[ruleno].rhs = ritem + itemno;
        rules[ruleno].line = p->line;
        bitset_set (V1, rules[i].precsym);
        }
        static void
        reduce_grammar_tables (void)
        {
        if (nuseless_productions > 0)
        {
        int pn;
        for (pn = 1; pn < nrules + 1; pn++)
        rules[pn].useful = bitset_test (P, pn);
        }
        }
        {
        int i;
        fprintf (out, "%snn", _("Useless rules:"));
        fputs ("nn", out);
        }
        }
        fprintf (out, "nn");
        fprintf (out, "Rulesn-----nn");
        fprintf (out, "Num (Prec, Assoc, Useful, Ritem Range) Lhs -> Rhs (Ritem 
range) [Num]n");
        {
        int rhs_count = 0;
        /* Find the last RHS index in ritems. */
        }
        fprintf (out, "nn");
        fprintf (out, "Rules interpretedn-----------------nn");
        {
        fprintf (out, "%-5d  %s :", i, symbols[rules[i].lhs]->tag);
        for (r = rules[i].rhs; *r >= 0; r++)
        ## ------------------- ##
        ## Underivable Rules.  ##
        ## ------------------- ##

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/bison/bison/ChangeLog.diff?tr1=1.599&tr2=1.600&r1=text&r2=text




reply via email to

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