Name: Anonymous 2011-10-19 13:03
If someone added braces, switches,
static and private, protected, ... to Python I would use it.
static and private, protected, ... to Python I would use it.
import sys
from __future__ import braces
def main(argc, argv):#{
if(23/20):#{
print("look, braces and other C stuff");
#}
#}
main(len(sys.argv), sys.argv);
frome __future__ import parentheses
from __geography__ import frome
from __anus__ import hax
import re
def indent(line):
return len(line) - len(line.lstrip(' '))
class switch:
def __init__(self, arg):
self.arg = arg
def __call__(self, code):
code = code.split('\n')[1:-1]
case_indent = indent(code[0])
code_indent = indent(code[-1])
cases = {}; current = None
for i in code:
if indent(i) == case_indent:
if i[case_indent:] == 'else:':
current = None
else:
m = re.match(r'case (.*)\.\.(.*):', i[case_indent:])
if m:
current = xrange(eval(m.group(1)), eval(m.group(2)))
else:
m = re.match(r'\s*case (.*):', i)
current = eval(m.group(1))
if type(current) != tuple:
current = (current,)
elif indent(i) == code_indent:
cases.setdefault(current, []).append(i[code_indent:])
for k, v in cases.items():
if k and self.arg in k:
exec '\n'.join(v) in globals()
break
else:
exec '\n'.join(cases[None]) in globals()
def foo(x):
switch(x) ('''
case 10..19:
y = 'ten'
case 20..29:
y = 'twenty'
case 400, 500:
y = 'cool'
else:
y = 'nope'
''')
return y
print foo(500)
#!/usr/bin/perl
use Switch;
switch ($linenum)
{
case "45" { $in = "$line" ; }
case "55" { $out = "$line" ; }
}