Hey all, I'm trying to get functions working in python, and I'm not sure the best way to do this.
What seems natural to me is to define subroutines in the middle of the code as I walk the parse tree: .sub __main__ goto endsub .sub _f print ":(\n" ret .end endsub: $I0 = addr _f end .end But of course, this prints a sad face. :/ I've read imcc/docs/parsing.pod, so I know why it does this... But what's the alternative? I can store all my subroutine definitions in a list or something and then dump them out after the "__main__" routine. Is that the right approach? It seems strange to me, but I'm new at this. --- Incidentally, I spent all day working on pirate, and it now generates (and runs!) code for a bunch of python structures: - lists, strings, ints - assignment and multi-assignment ( x,y=1,2 ) - while, for, if/elif/else, break, continue - math operations (+, -, *, /, %) - boolean logic (and, or, not) - comparison operators It now runs amk's euclid.py perfectly now. Do we have a way to compare the speed vs python? :) Also, I wrote a pretty-printer for the lists in parrot, and you can call it (and presumably other parrot subs) directly from python code: if 1 > 2: _pyprint("one is greater than two...") print "neat,huh?" If I could get this subroutine stuff figured out, you could call functions written in python, too. :) http://sixthdev.versionhost.com/viewcvs.cgi/pirate/ Sincerely, Michal J Wallace Sabren Enterprises, Inc. ------------------------------------- contact: [EMAIL PROTECTED] hosting: http://www.cornerhost.com/ my site: http://www.withoutane.com/ --------------------------------------