12
12
def escape (data ):
13
13
return data .encode ('unicode_escape' )
14
14
15
- def print_kast (data , sort = "SortJSON" ):
15
+ def print_int (data ):
16
+ sys .stdout .write ("\dv{SortInt{}}(\" " )
17
+ sys .stdout .write (data )
18
+ sys .stdout .write ("\" )" )
19
+
20
+ def print_string (data ):
21
+ sys .stdout .write ("\dv{SortString{}}(" )
22
+ sys .stdout .write (json .dumps (data ))
23
+ sys .stdout .write (")" )
24
+
25
+ def print_k_config_var (data ):
26
+ sys .stdout .write ("\dv{SortKConfigVar{}}(\" $" + data + "\" )" )
27
+
28
+ def print_sort_injection (s1 , s2 , data , printer ):
29
+ sys .stdout .write ("inj{Sort" + s1 + "{}, " + "Sort" + s2 + "{}}(" )
30
+ printer (data )
31
+ sys .stdout .write (")" )
32
+
33
+ def print_kast (data , sort = "JSON" ):
16
34
if isinstance (data , list ):
17
35
sys .stdout .write ("LblJSONList{}(" )
18
36
for elem in data :
@@ -27,7 +45,7 @@ def print_kast(data, sort="SortJSON"):
27
45
sys .stdout .write ("LblJSONObject{}(" )
28
46
for key , value in data .items ():
29
47
sys .stdout .write ("LblJSONs{}(LblJSONEntry{}(" )
30
- print_kast (key , "SortJSONKey " )
48
+ print_kast (key , sort = "JSONKey " )
31
49
sys .stdout .write (',' )
32
50
print_kast (value )
33
51
sys .stdout .write ('),' )
@@ -36,26 +54,29 @@ def print_kast(data, sort="SortJSON"):
36
54
sys .stdout .write (')' )
37
55
sys .stdout .write (')' )
38
56
elif isinstance (data , str ) or isinstance (data , unicode ):
39
- sys .stdout .write ("inj{SortString{}, " + sort + "{}}(\dv{SortString{}}(" ),
40
- sys .stdout .write (json .dumps (data ))
41
- sys .stdout .write ('))' )
57
+ print_sort_injection ("String" , sort , data , print_string )
42
58
elif isinstance (data , long ) or isinstance (data , int ):
43
- sys .stdout .write ("inj{SortInt{}, " + sort + '{}}(\dv{SortInt{}}("' ),
44
- sys .stdout .write (str (data ))
45
- sys .stdout .write ('"))' )
59
+ print_sort_injection ("Int" , sort , data , print_int )
46
60
else :
47
61
sys .stdout .write (type (data ))
48
62
raise AssertionError
49
63
50
64
def print_klabel (s ):
51
- sys .stdout .write ("Lbl" + s .replace ("_" , "'Unds'" ).replace ("`" , "" ).replace ("(.KList)" , "{}" ) + " " )
52
-
53
- sys .stdout .write ("LblinitGeneratedTopCell{}(Lbl'Unds'Map'Unds'{}(Lbl'Unds'Map'Unds'{}(Lbl'Unds'Map'Unds'{}(Lbl'Stop'Map{}(),Lbl'UndsPipe'-'-GT-Unds'{}(inj{SortKConfigVar{}, SortKItem{}}(\dv{SortKConfigVar{}}(\" $PGM\" )),inj{SortJSON{}, SortKItem{}}( " )
54
- print_kast (data )
55
- sys .stdout .write ("))),Lbl'UndsPipe'-'-GT-Unds'{}(inj{SortKConfigVar{}, SortKItem{}}(\dv{SortKConfigVar{}}(\" $SCHEDULE\" )),inj{SortSchedule{}, SortKItem{}}( " )
56
- print_klabel (sys .argv [2 ])
57
- sys .stdout .write ("()))),Lbl'UndsPipe'-'-GT-Unds'{}(inj{SortKConfigVar{}, SortKItem{}}(\dv{SortKConfigVar{}}(\" $MODE\" )),inj{SortMode{}, SortKItem{}}( " )
58
- print_klabel (sys .argv [3 ])
59
- sys .stdout .write ("()))))\n " )
65
+ sys .stdout .write ("Lbl" + s .replace ("_" , "'Unds'" ).replace ("`" , "" ).replace ("(.KList)" , "{}" ) + "()" )
66
+
67
+ def print_config_map_entry (k , v , vsort , vprint ):
68
+ sys .stdout .write ("Lbl'UndsPipe'-'-GT-Unds'{}(" )
69
+ print_sort_injection ("KConfigVar" , "KItem" , k , print_k_config_var )
70
+ sys .stdout .write ("," )
71
+ print_sort_injection (vsort , "KItem" , v , vprint )
72
+ sys .stdout .write (")" )
73
+
74
+ sys .stdout .write ("LblinitGeneratedTopCell{}(Lbl'Unds'Map'Unds'{}(Lbl'Unds'Map'Unds'{}(Lbl'Unds'Map'Unds'{}(Lbl'Stop'Map{}()," )
75
+ print_config_map_entry ("PGM" , data , "JSON" , print_kast )
76
+ sys .stdout .write (")," )
77
+ print_config_map_entry ("SCHEDULE" , sys .argv [2 ], "Schedule" , print_klabel )
78
+ sys .stdout .write (")," )
79
+ print_config_map_entry ("MODE" , sys .argv [3 ], "Mode" , print_klabel )
80
+ sys .stdout .write ("))\n " )
60
81
sys .stdout .write ("\n " )
61
82
sys .stdout .flush ()
0 commit comments