from .node import Node from . import skipWhitespace, ParserError from gameRecord import GameRecord class Collection: def __init__(self,s): self.gameTrees=[] i=skipWhitespace(s,0) if i>=len(s): return elif not GameTree.fits(s,i): raise ParserError("expected a GameTree starting with '('",s,i) while GameTree.fits(s,i): i,x=GameTree.create(s,i) self.gameTrees.append(x) if i=len(s) or s[i]!=")": raise ParserError("expected end of a GameTree marked by ')'",s,i) i=skipWhitespace(s,i+1) return (i,res) ## Expand multiple games into distinct GameTrees and yield each. def listGames(self): if len(self.nodes)==0: return None for node in self.nodes[0].listGINodes(): yield GameRecord(self._buildSubtree(node)) def getNode(self,i): if 0<=i