Closed jonathanvdc closed 7 years ago
I've just fixed this bug. I'm sorry that it took so long, despite being pretty easy to fix (just 5 lines added to the parser).
The exponentiation operator has not been removed. Treating Foo** x
as a variable declaration, rather than an expression, is the same problem as treating Foo* x
as a variable declaration rather than an expression. The relatively complicated trickery (TentativeVarDecl
, TentativeExpr
) that resolves Foo* x
is implicitly re-used for Foo** x
.
Awesome! Thanks!
I was doing some low-level programming just now and thought I'd write a simple
echo
program:Seems reasonable, right? Well actually, the EC# parser parses
byte** argv
as@'**(#uint8, argv)
instead of#var(#of(@'*, #of(@'*, #uint8)), argv)
. (I guess any expressiona ** b
is ambiguous in this way.)I've resorted to writing
byte* * argv
for now, but that's just poor style. Would you consider dropping the@'**
from EC#? There's not even a macro for@'**
right now: removing the operator shouldn't break any code.