# Path: progSpec.py
# def cdlog(lvl, mesg):
#     global MaxLogLevelToShow
#     global lastLogMesgs
#     global highestLvl
#     highestLvl=lvl
#     resizeLogArray(lvl)
#     lastLogMesgs[lvl]=mesg
#     for i in range(highestLvl+1, len(lastLogMesgs)):
#         lastLogMesgs[i]=''
#     if(lvl<=MaxLogLevelToShow):
#         if(lvl==0): print('')
#         printAtLvl(lvl, mesg, '|    ')
# 
# def cdErr(mesg):
#     global lastLogMesgs
#     global highestLvl
#     highestLvl+=1
#     lastLogMesgs[highestLvl]="\n\nError: "+mesg
#     exit(1)


from inspect import getsourcefile
from os.path import abspath
from pprint import pprint
from progSpec import cdlog, cdErr
from pyparsing import ParseResults
import os
import re
import codeDogParser
import progSpec
        filteredTag = []
        for tagItem in ReqTag.tagListContents:
            filteredTag.append(tagItem.tagValue[0])
        filteredTags.append(filteredTag)
    return filteredTags

def extractLibTags(library):
    libTags = loadTagsFromFile(library)
    tagsFromLibFiles[library] = libTags
    ReqTags = progSpec.fetchTagValue([libTags], 'requirements')
    if ReqTags == None:
        ReqTags =[]
    elif len(ReqTags)>0:
        ReqTags = filterReqTags(ReqTags)
    interfaceTags = progSpec.fetchTagValue([libTags], 'interface')
    if interfaceTags == None:
        interfaceTags =[]
    featuresTags = progSpec.fetchTagValue([libTags], 'featuresNeeded')
    featuresNeeded =[]
    if featuresTags:
        for feature in featuresTags:
            featuresNeeded.append(['feature',feature])
    return [ReqTags,interfaceTags,featuresNeeded]

def libListType(libList):
    if isinstance(libList, str): return "STRING"
    op=libList[0]
    if (op=='AND' or op=='OR'):
        return op
    print("WHILE EXAMINING:", libList)

# Path: progSpec.py
# def cdlog(lvl, mesg):
#     global MaxLogLevelToShow
#     global lastLogMesgs
#     global highestLvl
#     highestLvl=lvl
#     resizeLogArray(lvl)
#     lastLogMesgs[lvl]=mesg
#     for i in range(highestLvl+1, len(lastLogMesgs)):
#         lastLogMesgs[i]=''
#     if(lvl<=MaxLogLevelToShow):
#         if(lvl==0): print('')
#         printAtLvl(lvl, mesg, '|    ')
# 
# def cdErr(mesg):
#     global lastLogMesgs
#     global highestLvl
#     highestLvl+=1
#     lastLogMesgs[highestLvl]="\n\nError: "+mesg
#     exit(1)


# Path: libraryMngr.py
from inspect import getsourcefile
from os.path import abspath
from pprint import pprint
from progSpec import cdlog, cdErr
from pyparsing import ParseResults
import os
import re
import codeDogParser
import progSpec

        filteredTag = []
        for tagItem in ReqTag.tagListContents:
            filteredTag.append(tagItem.tagValue[0])
        filteredTags.append(filteredTag)
    return filteredTags

def extractLibTags(library):
    libTags = loadTagsFromFile(library)
    tagsFromLibFiles[library] = libTags
    ReqTags = progSpec.fetchTagValue([libTags], 'requirements')
    if ReqTags == None:
        ReqTags =[]
    elif len(ReqTags)>0:
        ReqTags = filterReqTags(ReqTags)
    interfaceTags = progSpec.fetchTagValue([libTags], 'interface')
    if interfaceTags == None:
        interfaceTags =[]
    featuresTags = progSpec.fetchTagValue([libTags], 'featuresNeeded')
    featuresNeeded =[]
    if featuresTags:
        for feature in featuresTags:
            featuresNeeded.append(['feature',feature])
    return [ReqTags,interfaceTags,featuresNeeded]

def libListType(libList):
    if isinstance(libList, str): return "STRING"
    op=libList[0]
    if (op=='AND' or op=='OR'):
        return op
    print("WHILE EXAMINING:", libList)

    cdErr('Invalid type encountered for a library identifier:'+str(op))