예제 #1
0
def test2():
    from langscape import load_langlet
    cfuncall = load_langlet("cfuncall")
    import urllib2
    f = urllib2.urlopen("http://codespeak.net/svn/xpython/trunk/dist/src/Objects/classobject.c")
    source = f.read()
    from langscape.sourcetools.search import CSearchObject
    so = CSearchObject(cfuncall, cfuncall.symbol.funcall)
    from langscape.csttools.cstsearch import find_node, find_all
    for i, m in enumerate(so.finditer(source)):
        print i, m.matched


    '''
예제 #2
0
def test2():
    from langscape import load_langlet
    cfuncall = load_langlet("cfuncall")
    import urllib2
    f = urllib2.urlopen(
        "http://codespeak.net/svn/xpython/trunk/dist/src/Objects/classobject.c"
    )
    source = f.read()
    from langscape.sourcetools.search import CSearchObject
    so = CSearchObject(cfuncall, cfuncall.symbol.funcall)
    from langscape.csttools.cstsearch import find_node, find_all
    for i, m in enumerate(so.finditer(source)):
        print i, m.matched
    '''
예제 #3
0
def test1():
    import langscape
    python = langscape.load_langlet("python")
    so = CSearchObject(python, python.parse_symbol.return_stmt)
    so.condition = lambda x: True
    text = open(r"codesearch.py").read()
    '''
    textit = so.finditer(text)
    for item in textit:
        print item.matched
    # print so.begin, so.end
    # print text[so.begin: so.end]
    '''
    def subst_return(langlet, node):
        test = find_node(node, langlet.symbol.test)
        if test:
            test[:] = langlet.fn.test(langlet.fn.CallFunc("measure", [test[:]]))
        return node

    cso = CSearchObject(python, python.parse_symbol.return_stmt)
    res = cso.subst(text, subst_return)
    print res
예제 #4
0
def test1():
    import langscape
    python = langscape.load_langlet("python")
    so = CSearchObject(python, python.parse_symbol.return_stmt)
    so.condition = lambda x: True
    text = open(r"codesearch.py").read()
    '''
    textit = so.finditer(text)
    for item in textit:
        print item.matched
    # print so.begin, so.end
    # print text[so.begin: so.end]
    '''
    def subst_return(langlet, node):
        test = find_node(node, langlet.symbol.test)
        if test:
            test[:] = langlet.fn.test(langlet.fn.CallFunc(
                "measure", [test[:]]))
        return node

    cso = CSearchObject(python, python.parse_symbol.return_stmt)
    res = cso.subst(text, subst_return)
    print res