file i/o, gimmeh, and arrays are not implemented. Everything else from Recommendation 1.0 is (AFAIK LOL!!! ^^)

http://umich.edu/~rmurillo/lolcode.zip

This one is 4 all my ppl from olden times - it's standard flex, bison, and c. It should run on any gnu-friendly Unix (or Cygwin) implementation with a devel package installed. Run “build” to compile the interpreter and run an example.

It should work with yacc and lex too, but I can't try it cuz I don't has ne munny.

Derived from Tom Niemann's excellent “calc” example in “A Compact Guide to Lex & Yacc” - http://epaperpress.com/lexandyacc/index.html

This is example.lol -

HAI
CAN HAS STDIO?
I HAS A VAR ITZ 3
I HAS A YARN ITZ "O!!!"
VISIBLE VAR
VISIBLE YARN
LOL VAR R 1
LOL YARN R "HAI"
VISIBLE YARN
IM IN YR LOOP
	UPZ VAR!!
	VISIBLE "I M THIS MENNY YRS OLD: "!
	VISIBLE VAR
	I HAS A KITTENZ
	IM IN YR LOOP
		UPZ KITTENZ!!1
		VISIBLE "I HASD THIS MENNY KITTENZ THIS YR: "!
		VISIBLE KITTENZ
		IZ KITTENZ BIGR THAN 5?
			YARLY
				GTFO
			NOWAI
				VISIBLE "STILL POPPEN EM OUT!!!"
		KTHX
	KTHX
	IZ VAR LIEK 5? GTFO KTHX
KTHX
DIAF 1 "BAI"
KTHXBYE

Bobby Tomatoseed, 2007/05/31 15:47

I have a LOLCODE Recommendation v1.0 example file in my repository if you want to check it out. It covers all of the aspects of v1.0, but it doesn't cover every keyword (i.e. it does all 4 math operators, but it doesn't do both binary and self-assignment versions of both). Check it out. I also have a flex/bison implementation that (at present) generates an abstract syntax tree that will be used soon in my compiler.

Nice job with that! Writing stuff with flex/bison is tough when you're rusty or new at it.

Kyle, 2007/06/01 09:04

lol ty - I've been meaning to figure out lex/yacc for a long time, this was a perfect excuse!

And O NOES! My lexxer wants everything to be in upparcase! (That seems appropriate somehow, rite???). K tho I'm gonna use ur above example as a test, it does indeed look robust.

I was gonna try to generate assembly next, then object code, but i dno. It would be a good learning experience. Are you gonna compile for a specific target?

Bobby Tomatoseed, 2007/06/01 14:15

Yeah, I'm aiming to compile it into GNU Assembly… so I guess i'm not really compiling it, I'm transcoding it, but I think the terminology works better ;)

Hopefully it should be general enough assembly that it could be compiled on a variety of platforms, as gcc knows all of the host-specific stuff. I'm not going to be aiming much at writing optimizations in.

Kyle, 2007/06/02 05:21