Esempio n. 1
0
 def store(self, **kwargs):
     '''Read GDL rules into the datalog database.'''
     self.db = self.db or Database()
     tokens = Lexer.run_lex(**kwargs)
     for tree in Parser.run_parse(tokens):
         if tree.is_true():
             raise GameError(GameError.NO_TRUE_ALLOWED)
         elif tree.is_init():
             true = tree.copy()
             true.token.set(value='true')
             self.db.define(true)
         self.db.define(tree)
     try:
         roles = self.db.facts[('role', 1)]
     except KeyError:
         raise GameError(GameError.NO_PLAYERS)
     self.players = set([str(x[0]) for x in roles])
Esempio n. 2
0
 def store(self, **kwargs):
     '''Read GDL rules into the datalog database.'''
     self.db = self.db or Database()
     tokens = Lexer.run_lex(**kwargs)
     for tree in Parser.run_parse(tokens):
         if tree.is_true():
             raise GameError(GameError.NO_TRUE_ALLOWED)
         elif tree.is_init():
             true = tree.copy()
             true.token.set(value='true')
             self.db.define(true)
         self.db.define(tree)
     try:
         roles = self.db.facts[('role', 1)]
     except KeyError:
         raise GameError(GameError.NO_PLAYERS)
     self.players = set([str(x[0]) for x in roles])
Esempio n. 3
0
 def _single_move_to_ast(self, move):
     '''Converts the move string to an ASTNode.'''
     return Parser.run_parse(Lexer.run_lex(data=move))[0]
Esempio n. 4
0
 def _single_move_to_ast(self, move):
     '''Converts the move string to an ASTNode.'''
     return Parser.run_parse(Lexer.run_lex(data=move))[0]