/[bison]/bison/src/output.c
ViewVC logotype

Diff of /bison/src/output.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.214 by eggert, Wed Dec 11 06:39:20 2002 UTC revision 1.215 by eggert, Fri Dec 13 08:31:23 2002 UTC
# Line 1  Line 1 
1  /* Output the generated parsing program for Bison.  /* Output the generated parsing program for Bison.
2    
3     Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002     Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002
4     Free Software Foundation, Inc.     Free Software Foundation, Inc.
5    
# Line 67  Name (const char *name,                                                        \ Line 68  Name (const char *name,                                                        \
68  {                                                                       \  {                                                                       \
69    Type min = first;                                                     \    Type min = first;                                                     \
70    Type max = first;                                                     \    Type max = first;                                                     \
71      long int lmin;                                                        \
72      long int lmax;                                                        \
73    int i;                                                                \    int i;                                                                \
74    int j = 1;                                                            \    int j = 1;                                                            \
75                                                                          \                                                                          \
# Line 90  Name (const char *name,                                                        \ Line 93  Name (const char *name,                                                        \
93    obstack_1grow (&format_obstack, 0);                                   \    obstack_1grow (&format_obstack, 0);                                   \
94    muscle_insert (name, obstack_finish (&format_obstack));               \    muscle_insert (name, obstack_finish (&format_obstack));               \
95                                                                          \                                                                          \
96      lmin = min;                                                           \
97      lmax = max;                                                           \
98    /* Build `NAME_min' and `NAME_max' in the obstack. */                 \    /* Build `NAME_min' and `NAME_max' in the obstack. */                 \
99    obstack_fgrow1 (&format_obstack, "%s_min", name);                     \    obstack_fgrow1 (&format_obstack, "%s_min", name);                     \
100    obstack_1grow (&format_obstack, 0);                                   \    obstack_1grow (&format_obstack, 0);                                   \
101    MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack),             \    MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack), lmin);      \
                           (long int) min);                              \  
102    obstack_fgrow1 (&format_obstack, "%s_max", name);                     \    obstack_fgrow1 (&format_obstack, "%s_max", name);                     \
103    obstack_1grow (&format_obstack, 0);                                   \    obstack_1grow (&format_obstack, 0);                                   \
104    MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack),             \    MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack), lmax);      \
                           (long int) max);                              \  
105  }  }
106    
107  GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_unsigned_int_table, unsigned int)  GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_unsigned_int_table, unsigned int)
# Line 190  prepare_symbols (void) Line 193  prepare_symbols (void)
193    /* Output YYTOKNUM. */    /* Output YYTOKNUM. */
194    {    {
195      int i;      int i;
196      int *values = XCALLOC (int, ntokens);      int *values = MALLOC (values, ntokens);
197      for (i = 0; i < ntokens; ++i)      for (i = 0; i < ntokens; ++i)
198        values[i] = symbols[i]->user_token_number;        values[i] = symbols[i]->user_token_number;
199      muscle_insert_int_table ("toknum", values,      muscle_insert_int_table ("toknum", values,
# Line 210  prepare_rules (void) Line 213  prepare_rules (void)
213  {  {
214    rule_number r;    rule_number r;
215    unsigned int i = 0;    unsigned int i = 0;
216    item_number *rhs = XMALLOC (item_number, nritems);    item_number *rhs = MALLOC (rhs, nritems);
217    unsigned int *prhs = XMALLOC (unsigned int, nrules);    unsigned int *prhs = MALLOC (prhs, nrules);
218    unsigned int *rline = XMALLOC (unsigned int, nrules);    unsigned int *rline = MALLOC (rline, nrules);
219    symbol_number *r1 = XMALLOC (symbol_number, nrules);    symbol_number *r1 = MALLOC (r1, nrules);
220    unsigned int *r2 = XMALLOC (unsigned int, nrules);    unsigned int *r2 = MALLOC (r2, nrules);
221    short *dprec = XMALLOC (short, nrules);    short *dprec = MALLOC (dprec, nrules);
222    short *merger = XMALLOC (short, nrules);    short *merger = MALLOC (merger, nrules);
223    
224    for (r = 0; r < nrules; ++r)    for (r = 0; r < nrules; ++r)
225      {      {
# Line 269  static void Line 272  static void
272  prepare_states (void)  prepare_states (void)
273  {  {
274    state_number i;    state_number i;
275    symbol_number *values =    symbol_number *values = MALLOC (values, nstates);
     (symbol_number *) alloca (sizeof (symbol_number) * nstates);  
276    for (i = 0; i < nstates; ++i)    for (i = 0; i < nstates; ++i)
277      values[i] = states[i]->accessing_symbol;      values[i] = states[i]->accessing_symbol;
278    muscle_insert_symbol_number_table ("stos", values,    muscle_insert_symbol_number_table ("stos", values,
279                                       0, 1, nstates);                                       0, 1, nstates);
280      free (values);
281    
282    MUSCLE_INSERT_INT ("last", high);    MUSCLE_INSERT_INT ("last", high);
283    MUSCLE_INSERT_INT ("final_state_number", final_state->number);    MUSCLE_INSERT_INT ("final_state_number", final_state->number);

Legend:
Removed from v.1.214  
changed lines
  Added in v.1.215

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26