Pattern matches one type of paren but not another
Maury Markowitz <[email protected]> Sun, 28 May 2023 14:12:10 -0400
| Newsgroups | gmane.comp.parsers.bison.general |
|---|---|
| Message-ID | <[email protected]> |
Following, sort of, some advice I received earlier I modified my bison by adding this:
open_bracket:
'(' | '[';
close_bracket:
')' | ']’;
And then modified the original code thus:
variable:
VARIABLE_NAME
{
variable_t *new = malloc(sizeof(*new));
new->name = $1;
new->subscripts = NULL;
new->slicing = NULL;
$$ = new;
}
|
VARIABLE_NAME open_bracket exprlist close_bracket
{
variable_t *new = malloc(sizeof(*new));
new->name = $1;
new->subscripts = $3;
new->slicing = NULL;
$$ = new;
}
This source code works:
130 DIM A$(26),G$(26),L$(1)
But this fails:
130 DIM A$[26],G$[26],L$[1]
In this case it falls though the first variable case, not the second, it is not treating the [ as an open. The open_bracket is the only place [ appears.
I assume I have screwed up the alternation?