starting xslt impl
[jackhill/mal.git] / xslt / harness.py
CommitLineData
bfae91cc
A
1import os
2import readline
3import sys
4import xml.etree.ElementTree as ET
5
6fname = sys.argv[1]
7tree = ET.Element('mal')
8ET.SubElement(tree, 'stdin')
9tree = ET.ElementTree(tree)
10
11try:
12 readline.read_history_file('.xslt_mal_history')
13except:
14 pass
15
16while True:
17 try:
18 x = input('user> ')
19 except EOFError:
20 break
21 except KeyboardInterrupt:
22 break
23
24 for a in tree.iter('mal'):
25 for a in a.iter('stdin'):
26 a.text = x
27
28 tree.write('xslt_input.xml')
29 if os.system(f'saxon -xsl:"{fname}" -s:xslt_input.xml > xslt_output.xml 2> xsl_error.xml'):
30 with open('xsl_error.xml', 'r') as f:
31 print(f.readlines()[0])
32 continue
33 tree = ET.parse('xslt_output.xml')
34 stdout = ''
35 for a in tree.iter('mal'):
36 for a in a.iter('stdout'):
37 stdout = a
38 print(stdout.text)
39 stdout.clear()
40 del stdout
41
42readline.write_history_file('.xslt_mal_history')