It was always intended that a type could come between
the : and = of a declaration.
It makes more sense, and simplifies the grammar, if
we stop treating := as ever being a token.
So now : and = are separate tokens.
If the parse sees ":=", it will happily treat that
as two separate tokens, which is what we want.
Signed-off-by: NeilBrown <neil@brown.name>
###### Grammar
$*var
- VariableDecl -> IDENTIFIER := ${ {
+ VariableDecl -> IDENTIFIER : = ${ {
struct variable *v = var_decl(config2context(config), $1.txt);
$0 = new_pos(var, $1);
$0->var = v;
v->where_decl, Tnone, 0, Tnone);
}
} }$
- | IDENTIFIER ::= ${ {
+ | IDENTIFIER :: = ${ {
struct variable *v = var_decl(config2context(config), $1.txt);
$0 = new_pos(var, $1);
$0->var = v;