def makeMarkerNeed(self, kind, tokens, index):
        frame = "" # name of marked frame

        connective = tokens[index]
        if connective == 'in': #optional in frame clause
            index += 1 #eat token
            frame = tokens[index] #need to resolve
            index += 1 #eat token

        if not frame: #default to current frame
            frame = 'me'

        sharePath, index = self.parseIndirect(tokens, index)

        # assign marker type actual marker Act created in need's resolve
        marker = 'Marker' + kind.capitalize()

        actorName = 'Need' + kind.capitalize()
        if actorName not in needing.Need.Registry:
            msg = "ParseError: Need '%s' can't find actor named '%s'" %\
                (kind, actorName)
            raise excepting.ParseError(msg, tokens, index)

        parms = {}
        parms['share'] = sharePath
        parms['frame'] = frame  # marked frame name resolved in resolvelinks
        parms['marker'] = marker # marker kind resolved in resolvelinks
        act = acting.Act(   actor=actorName,
                            registrar=needing.Need,
                            parms=parms,
                            human=self.currentHuman,
                            count=self.currentCount)
        return (act, index)
Support method to make either NeedUpdate or NeedChange
dataset/ETHPy150Open ioflo/ioflo/ioflo/base/building.py/Builder.makeMarkerNeed