|
Revision 1, 0.7 kB
(checked in by nEUrOO, 1 year ago)
|
--
|
| Line | |
|---|
| 1 |
from lxml import etree |
|---|
| 2 |
import sys, os |
|---|
| 3 |
|
|---|
| 4 |
def generate_DOT(xmlName): |
|---|
| 5 |
xsl_tree = etree.parse('./xslt/toDot.xsl') |
|---|
| 6 |
transform = etree.XSLT(xsl_tree) |
|---|
| 7 |
doc = etree.parse(xmlName) |
|---|
| 8 |
result = transform(doc) |
|---|
| 9 |
out = open(xmlName[:xmlName.rfind('.xml')] + '.dot', 'w') |
|---|
| 10 |
out.write(str(result)) |
|---|
| 11 |
out.close() |
|---|
| 12 |
|
|---|
| 13 |
os.system("dot -Tpng -o" + xmlName[:xmlName.rfind('.xml')] + '.png' + " " + xmlName[:xmlName.rfind('.xml')] + '.dot') |
|---|
| 14 |
os.system("rm -f " + xmlName[:xmlName.rfind('.xml')] + '.dot') |
|---|
| 15 |
|
|---|
| 16 |
def generate_AST(fname): |
|---|
| 17 |
xml_name = fname[:fname.rfind('.php')] + '.xml' |
|---|
| 18 |
os.system("php-ast.exe " + fname + " " + xml_name) |
|---|
| 19 |
return xml_name |
|---|
| 20 |
|
|---|
| 21 |
if __name__ == '__main__': |
|---|
| 22 |
fname = sys.argv[1] |
|---|
| 23 |
xml_name = generate_AST(fname) |
|---|
| 24 |
generate_DOT(xml_name) |
|---|