Jump to content

April 2017 »

232425 26 272829
- - - - -

Refactoring makes my brain hurt.

4: Adsense

So as threatened, I implemented generic types last weekend. Took about a solid afternoon to make it happen, so not bad at all.

In the process, I realized that there's just a ton of code in the Epoch compiler in particular that's... gross. So I took a few days and cleaned it up substantially. As a bonus, adding namespaces to the language should be pretty smooth now, once I get around to it.

There's still a lot of cleanup left to do, and even more documentation; the code is in a sorry state these days due to a combination of neglect and churn... which, now that I say it out loud, is a weird combination.

Anyways, bottom line is that I need to spend a healthy chunk of time just going through the entire code base and making it sleek. Apparently people actually download the code on occasion, so it's worth making sure that the quality reflects on my actual programming habits and not my quick-and-dirty prototyping habits :-D

I'll probably split the next few weeks between minor cleanup tasks and implementing generic (i.e. templatized) code generation. That's going to be a nightmare.

Nov 10 2012 03:45 AM
I know your pain, I'm 3/4 of the way through the front end of the compiler for my scripting language Mir (similar to C#) and things can get pretty unmanageable if you don't have a clear design in mind. My parser alone is over 3000 lines of code.

What kind of syntax are you using for generics? The <> style has proven to be hell to parse correctly in expressions because in my case it makes the grammar context sensitive. I ended up having to defer expression parsing until the contextual analysis phase. The parser just determines the set of tokens that correspond to each place an expression should be and passes those on to the next phase. The contextual analyzer then checks each identifier as it parses to see if it is declared as a template and then if so parses the '<' as the start of a template instantiation, rather than a less-than expression.

Note: GameDev.net moderates comments.