Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
from Utils import enum

Messages = enum('ADD', 'UPDATE', 'DELETE')