Example #1
0
    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()
Example #2
0
    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()