def stateParseArchitectureName( cls, parserState: ParserState): #document, group): assert isinstance(parserState.CurrentGroup, ArchitectureBlock.NameBlock) tokenIterator = iter(parserState) # iterate architetures NameBlock to find the architecture name for token in tokenIterator: if isinstance(token, IdentifierToken): architectureName = token.Value break else: raise BlockParserException( "", None) # FIXME: change to DOMParserException for token in tokenIterator: if isinstance(token, IdentifierToken): entityName = token.Value break else: raise BlockParserException( "", None) # FIXME: change to DOMParserException oldNode = parserState.CurrentNode architecture = cls(architectureName, entityName) parserState.CurrentNode.AddArchitecture(architecture) parserState.CurrentNode = architecture parserState.CurrentNode.AddLibraryReferences(oldNode.Libraries) parserState.CurrentNode.AddUses(oldNode.PackageReferences) oldNode.Libraries.clear() oldNode.PackageReferences.clear()
def stateParsePackageName(cls, parserState: ParserState): #document, group): assert isinstance(parserState.CurrentGroup, PackageBlock.NameBlock) tokenIterator = iter(parserState) for token in tokenIterator: if isinstance(token, IdentifierToken): packageName = token.Value break else: raise BlockParserException( "", None) # FIXME: change to DOMParserException oldNode = parserState.CurrentNode package = cls(packageName) parserState.CurrentNode.AddPackage(package) parserState.CurrentNode = package parserState.CurrentNode.AddLibraryReferences(oldNode.Libraries) parserState.CurrentNode.AddUses(oldNode.PackageReferences) oldNode.Libraries.clear() oldNode.PackageReferences.clear()