def parseField(self, tokens, index):
        indexSave = index #save it since welookahead to see if "in"
        fields = []
        found = False #flag to indicate found 'in' wich indicates fields clause

        while index < len(tokens):
            field = tokens[index]
            if field == 'in': #field list present and completed
                index +=1
                found = True
                break

            if field in Reserved: #field list not present
                break

            index += 1 #eat token
            if REO_Quoted.match(field): # field is double quoted string
                field = field.strip('"')
            elif REO_QuotedSingle.match(field): #field is single quoted string
                field = field.strip("'")  #strip off quotes

            fields.append(field)

        if not found: #no fields clause
            index = indexSave #so restore index
            fields = [] #empty fields list

        #prevent using multiple fields
        if (len(fields) > 1):
            msg = "ParseError: More than one field = '%s'" % (fields)
            raise excepting.ParseError(msg, tokens, index)

        if fields:
            field = fields[0]
            if not REO_IdentPub.match(field):
                msg = "ParseError: Invalid format of field '%s'" % (field)
                raise excepting.ParseError(msg, tokens, index)

        else:
            field = None

        return (field, index)
Test installing tasks with the ``installtasks`` command.
dataset/ETHPy150Open ioflo/ioflo/ioflo/base/building.py/Builder.parseField--crossover with--dataset/ETHPy150Open jgorset/django-kronos/kronos/tests/tests.py/TestCase.test_installtasks