static recurselyResolveTokenizedUtterance(tokUtt, entities, errorMsgs, srcUtterance) {
        for (const item of tokUtt) {
            if (item === Object(item)) {
                let entityName = item.entityName.trim()
                if (entityName && InvalidCharsInIntentOrEntityName.some(x => entityName.includes(x))) {
                    errorMsgs.push(`Invalid utterance line, entity name ${entityName} cannot contain any of the following characters: [<, >, *, %, &, :, \\, $]`);
                    continue;
                }

                if (item.entityValue === undefined) {
                    // we have a pattern.any entity
                    const patternStr = item.role ? `{${item.entityName}:${item.role}}` : `{${item.entityName}}`
                    srcUtterance += patternStr;
                    entities.push({
                        type: LUISObjNameEnum.PATTERNANYENTITY,
                        entity: item.entityName.trim(),
                        role: item.role.trim()
                    })
                } else {
                    // we have a new entity
                    let newEntity = {
                        type: LUISObjNameEnum.ENTITIES,
                        entity: item.entityName.trim(),
                        role: item.role.trim(),
                        startPos: srcUtterance.length,
                        endPos: undefined
                    };
                    if (item.entityValue === undefined) {
                        errorMsgs.push(`Composite entity "${item.parent.entityName}" includes pattern.any entity "${item.entityName}".\r\n\tComposites cannot include pattern.any entity as a child.`)
                    } else {
                        srcUtterance = this.recurselyResolveTokenizedUtterance(item.entityValue, entities, errorMsgs, srcUtterance).trimLeft();
                        newEntity.endPos = srcUtterance.length - 1;
                        entities.push(newEntity);
                    }
                }
            } else {
                srcUtterance += item;
            }
        }
        return srcUtterance;
    }
@param {Object[]} tokUtt 
@param {Object[]} entities 
@param {Object[]} errorMsgs 
@param {String} srcUtterance