summaryrefslogtreecommitdiff
blob: 7a25561f5f8995c1d90a0d710368e6dbef699dc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/usr/bin/env python3
import sys
import argparse


parser = argparse.ArgumentParser(
    description='Property to Predicate parser.'
)

parser.add_argument(
    "predicate_name",
    action='store',
    type=str,
    help="Name of the predicate."
)

parser.add_argument(
    "output_template_file",
    action='store',
    type=argparse.FileType(mode='w',encoding='UTF-8'),
    help="Predicate from Property template file."
)

parser.add_argument(
    "inferred_level",
    action='store',
    type=argparse.FileType(mode='a',encoding='UTF-8'),
    help="Inferred level file."
)

args = parser.parse_args()

var_names = list()
var_types = list()

for line in sys.stdin.readlines():
    line_data = line.strip().split(" ")
    print(line_data)
    var_name = line_data[0].strip()
    var_type = line_data[1].strip()

    args.inferred_level.write("(add_type " + var_type + ")\n")

    var_names.append(var_name)
    var_types.append(var_type)

args.inferred_level.write(
    "(add_predicate _"
    + args.predicate_name
    + " "
    + ' '.join(var_types)
    + ")\n"
)

params = ""
for i in range(len(var_types)):
    if (var_types[i] == "waveform"):
        new_id = ("$" + var_names[i] + ".WFM_ID$")
    else:
        new_id = ("$" + var_names[i] + ".ID$")

    params += (" " + new_id)

    args.output_template_file.write(
        "(add_element "
        + var_types[i]
        + " "
        + new_id
        + ")\n"
    )

args.output_template_file.write(
    "(_"
    + args.predicate_name
    + params
    + ")\n"
)