Thomas> As the subject of this e-mail says, the attached patch adds a Thomas> "switch" statement to the Python language.
Thanks for the contribution. I patched my sandbox and it built just fine. I'm going out of town for a couple weeks, so I'll point out what everyone else is thinking then duck out of the way: * Aside from the modified Grammar file there is no documentation. * There are no test cases. * Can you submit a patch on SourceForge? Other than that, my trivial first attempt worked fine: #!/usr/bin/env python switch raw_input("enter a, b or c: "): case 'a': print 'yay! an a!' case 'b': print 'yay! a b!' case 'c': print 'yay! a c!' else: print 'hey dummy! I said a, b or c!' (Need to teach python-mode about the switch and case keywords.) You mentioned: Thomas> I got a bit lost as to why the SWITCH opcode is necessary for Thomas> the implementation of the PEP. The reasoning seems to be Thomas> improving performance, but I'm not sure how a new opcode could Thomas> improve performance. Your implementation is straightforward, but uses a series of DUP_TOP and COMPARE_OP instructions to compare each alternative expression to the initial expression. In many other languages the expression associated with the case would be restricted to be a constant expression so that at compile time a jump table or dictionary lookup could be used to jump straight to the desired case. Skip _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com