From 387c320cfd487e661121ee8877fb3b8980df1d00 Mon Sep 17 00:00:00 2001 From: grammarware Date: Fri, 22 Aug 2008 15:05:41 +0000 Subject: [PATCH] LDF->sample set script, ex-part of LCI git-svn-id: https://slps.svn.sourceforge.net/svnroot/slps@210 ab42f6e0-554d-0410-b580-99e487e6eeb2 --- topics/extraction/ldf2set/Makefile | 6 +++ topics/extraction/ldf2set/xml2set.py | 61 ++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100755 topics/extraction/ldf2set/Makefile create mode 100755 topics/extraction/ldf2set/xml2set.py diff --git a/topics/extraction/ldf2set/Makefile b/topics/extraction/ldf2set/Makefile new file mode 100755 index 00000000..25558c05 --- /dev/null +++ b/topics/extraction/ldf2set/Makefile @@ -0,0 +1,6 @@ +test: + xsltproc ../../../shared/xsl/ldf2samples.xslt ../../fl/ldf/fl.ldf > samples.xml + python xml2set.py samples.xml samples + +clean: + rm -rf samples/* samples.xml *.pyc diff --git a/topics/extraction/ldf2set/xml2set.py b/topics/extraction/ldf2set/xml2set.py new file mode 100755 index 00000000..bfcf17e3 --- /dev/null +++ b/topics/extraction/ldf2set/xml2set.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +import sys +from elementtree import ElementTree + +def copyfile(x,y): + xh=open(x,'r') + yh=open(y,'w') + yh.writelines(xh.readlines()) + xh.close() + yh.close() + +def unpacksamples(where,dir): + library={} + cx = 0 + tree = ElementTree.parse(where) + for outline in tree.findall("//sample"): + cx+=1 + torun = open (dir+'/sample'+`cx`+'.src',"w") + for line in outline.text.split('\n'): + if line.strip()!='': + torun.write(line.strip()+'\n') + torun.close() + if outline.attrib.has_key('id'): + library[outline.attrib['id']]=outline.text + if outline.attrib.has_key('sort'): + sort=outline.attrib['sort'] + else: + sort=None + # All executions + for outline in tree.findall("//runnable"): + if outline.findtext('context'): + if not library.has_key(outline.findtext('context')): + print "No context found for sample",cx,'('+outline.findtext('context')+'), test case not used' + continue + else: + con = open (dir+'/sample'+`cx`+'.src','w') + for line in library[outline.findtext('context')].split('\n'): + if line.strip()!='': + con.write(line.strip()+'\n') + con.close() + if outline.findtext('yields'): + con = open (dir+'/sample'+`cx`+'.val','w') + con.write(outline.findtext('yields')) + con.close() + cx+=1 + torun = open (dir+'/sample'+`cx`+'.run','w') + line = outline.findtext('main') + for arg in outline.findall("argument"): + line += ' ' + arg.text + torun.write(line+'\n') + torun.close() + print cx,'samples in the test set.' + +if __name__ == "__main__": + print 'Sample Set Extractor' + if len(sys.argv) == 3: + unpacksamples(sys.argv[1],sys.argv[2]) + else: + print 'Usage:' + print ' ',sys.argv[0],'','' + sys.exit(1)