]>
Commit | Line | Data |
---|---|---|
186e4953 JF |
1 | #!/usr/bin/python |
2 | ||
3 | import sys | |
4 | ||
5 | lines = sys.stdin.read().rstrip('\n').split('\n') | |
6 | ||
7 | def data(line): | |
8 | name = line[0].replace('&', 'Ampersand').replace('^', 'Carrot').replace('=', 'Equal').replace('!', 'Exclamation').replace('-', 'Hyphen').replace('<', 'Left').replace('%', 'Percent').replace('.', 'Period').replace('|', 'Pipe').replace('+', 'Plus').replace('>', 'Right').replace('/', 'Slash').replace('*', 'Star').replace('~', 'Tilde') | |
9 | text = line[0].lower() | |
10 | word = text[0].isalpha() | |
11 | prefix = None if line[1] == '-' else line[1] | |
12 | assign = None if len(line) < 3 or line[2] != 'A' else '' if len(line) < 4 else line[3] | |
13 | infix = None if len(line) < 3 or line[2] != 'R' else line[3] | |
14 | precedence = line[4] if infix != None and len(line) > 4 else None | |
15 | postfix = infix if infix != None and precedence == None else None | |
16 | if postfix != None: | |
17 | infix = None | |
18 | return name, text, word, prefix, assign, infix, precedence, postfix | |
19 | ||
20 | for line in lines: | |
21 | line = line.split() | |
22 | name, text, word, prefix, assign, infix, precedence, postfix = data(line) | |
23 | print '%%token <CYToken%(name)s> CYToken%(name)s "%(text)s"' % locals() |