lex ['B':'o':'o':'l':rest] = (Right BoolTypeToken, rest)
//Two character tokens
lex [':':':':rest] = (Right DoubleColonToken, rest)
+lex ['!':'=':rest] = (Right NotEqualToken, rest)
lex ['<':'=':rest] = (Right LesserEqToken, rest)
lex ['>':'=':rest] = (Right GreaterEqToken, rest)
lex ['=':'=':rest] = (Right EqualsToken, rest)
print i [VarToken:rest] = ["var ":print i rest]
print i [ReturnToken:rest] = ["return ":print i rest]
print i [IfToken:rest] = ["if":print i rest]
-print i [ElseToken:rest] = ["else":print i rest]
+print i [ElseToken:rest] = ["else ":print i rest]
print i [WhileToken:rest] = ["while":print i rest]
print i [TrueToken:rest] = ["True":print i rest]
print i [FalseToken:rest] = ["False":print i rest]
print i [CharTypeToken:rest] = ["Char":print i rest]
print i [BoolTypeToken:rest] = ["Bool":print i rest]
print i [DoubleColonToken:rest] = [" :: ":print i rest]
+print i [NotEqualToken:rest] = [" != ":print i rest]
print i [LesserEqToken:rest] = [" <= ":print i rest]
print i [GreaterEqToken:rest] = [" >= ":print i rest]
print i [EqualsToken:rest] = [" == ":print i rest]