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 '''
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 '''
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
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