🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Tangent: One step forward, One step back

Published May 29, 2008
Advertisement
After the (admittedly unsurprising) partial failure of my car's brake system and the resultant hours at the garage, I got some Tangent work done.

The primary work of the day was refactoring the identifier resolution/overload-ambiguity checking into separate bits. Part of the problem of "just make it work" is that the working bits tend to be sticky. This was one of those cases where I rushed to make it work, and now had to go back and do it more right. In this case, it's because I failed to account for methods returning method groups. The returned group never got fanned out into its possible permutations so the 'gobbler' style methods I want didn't work.

(That is, a method group where it 'gobbles' a parameter and returns itself again to gobble more or void to terminate. A mildly more functional approach to varargs.)

And the part that did the syntax analysis wasn't able to nicely interact with the part that did identifier resolution because the later was doing too much. That's all done now, but I managed to break the little I did have working.

discard print (Parameters); is parsed in as discard(print); Effectively doing nothing. It's probably some simple/dumb mistake I did during the refactoring, but I'm not quite sure where. And it's a little too late to be hunting through compiler internals to see which of the three change points caused this particular symptom... But once I do fix that tidbit, gobbling should work now. Leaving me free to continue on to method declarations.
0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement