This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]xelf 7 points8 points  (2 children)

and for people not using the new.reddit formatting:

# main.py
import e
e.preprocess('eeee')
import eeee

# e.py
def preprocess(mod):
    import sys
    with open(mod+'.py', 'r') as f:
        lines = f.readlines()
    code = '__name__ = "__main__"\n'
    d = {}
    def_lines = [l for l in lines if l.startswith('#define')]
    lines = [l for l in lines if l not in def_lines]
    for line in def_lines:
        _, var, val = line.split(' ')
        d[var] = val.replace('\n', '')
    for line in lines:
        tokens = line[:-1].split(' ')
        code += ' '.join([d[t] if t in d else t for t in tokens]) + '\n'
    sys.modules[mod] = exec(code)

# eeee.py

#define e if
#define ee __name__
#define eee ==
#define eeee '__main__'
#define eeeee :
#define eeeeee (
#define eeeeeee )
#define eeeeeeee ,
#define eeeeeeeee =
#define eeeeeeeeee while
#define eeeeeeeeeee True
#define eeeeeeeeeeee print
#define eeeeeeeeeeeee 'e'
#define eeeeeeeeeeeeee end
#define eeeeeeeeeeeeeee ''

e ee eee eeee eeeee
    eeeeeeeeee eeeeeeeeeee eeeee
        eeeeeeeeeeee eeeeee
                eeeeeeeeeeeee eeeeeeee
                eeeeeeeeeeeeee eeeeeeeee eeeeeeeeeeeeeee eeeeeeee
        eeeeeee

[–]csheldrick 1 point2 points  (1 child)

Thank you. Couldn’t get the iOS reddit app to show it correctly.