from Utils import enum PortalType = enum('Boundary', 'Magic', 'CaveEntrance', 'CaveExit', 'StairsEntrance', 'StairsExit') class Portal(object): def __init__(self, destfile, destx, desty, type): self._destfile = destfile self._destx = destx self._desty = desty self._type = type @property def destfile(self): return self._destfile @property def destx(self): return self._destx @property def desty(self): return self._desty @property def type(self): return self._type
from pyparsing import quotedString, Word, alphas, alphanums, Suppress,\ Optional, Forward, OneOrMore, ZeroOrMore, nums, ParseFatalException,\ Token import re, inspect, types, pickle, exceptions from Utils import enum, find, httpGet import os.path TokenType = enum("StrLit", "NumLit", "Var", "Call", "Def", "End") def getEbnfParser(symbols): """ Returns an EBNF parser for the command language. """ identifier = Word(alphas + '_', alphanums + '_') string = quotedString.setParseAction( lambda t: symbols.append((t[0][1:-1], TokenType.StrLit)) ) integer = Word(nums).setParseAction( lambda t: symbols.append((int(t[0]), TokenType.NumLit)) ) var = Suppress("$") + identifier var.setParseAction( lambda t: symbols.append((t[0], TokenType.Var)) ) literal = var | string | integer fnid = Suppress(Optional(".")) + identifier fnid.setParseAction( lambda t: symbols.append((t[0], TokenType.Call)) ) call = Forward() callb = fnid + ZeroOrMore(call | literal) call << ((Suppress("(") + callb + Suppress(")")) | callb) fndef_head = Suppress("let") + identifier
from Utils import enum Messages = enum('ADD', 'UPDATE', 'DELETE')