--- /dev/null
+#!/usr/bin/python
+
+import sys
+
+lines = sys.stdin.read().rstrip('\n').split('\n')
+
+def data(line):
+ 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')
+ text = line[0].lower()
+ word = text[0].isalpha()
+ prefix = None if line[1] == '-' else line[1]
+ assign = None if len(line) < 3 or line[2] != 'A' else '' if len(line) < 4 else line[3]
+ infix = None if len(line) < 3 or line[2] != 'R' else line[3]
+ precedence = line[4] if infix != None and len(line) > 4 else None
+ postfix = infix if infix != None and precedence == None else None
+ if postfix != None:
+ infix = None
+ return name, text, word, prefix, assign, infix, precedence, postfix
+
+for line in lines:
+ line = line.split()
+ name, text, word, prefix, assign, infix, precedence, postfix = data(line)
+ print '%%token <CYToken%(name)s> CYToken%(name)s "%(text)s"' % locals()