예제 #1
0
def _loadGrammarTools(originaldic):
    """Converts {"channelname","type"} into {"channelname",instance}"""
    from pydsl.Memory.Loader import load_grammar_tool
    result = {}
    for key in originaldic:
        result[key] = load_grammar_tool(str(originaldic[key]))
    return result
예제 #2
0
def _slice(maingt, inputdata):
    totallen = len(inputdata)
    from pydsl.Memory.Loader import load_grammar_tool
    currenttype = load_grammar_tool(CURRENTGRAMMAR)
    try:
        maxl = currenttype.maxsize
    except NotImplementedError:
        maxl = totallen
    try:
        minl = currenttype.minsize
    except NotImplementedError:
        minl = 1
    maxwsize = maxl - minl + 1
    result = []
    for i in range(totallen):
        for j in range(i+minl, min(i+maxwsize+1, totallen+1)):
            check = maingt({"input":inputdata[i:j]})["output"]
            if check == "True":
                result.append((i,j, inputdata[i:j]))
    return result