@@ -31,46 +31,3 @@ lt_cvc(str1::String, str2::String) = cmp(str1, str2) < 0
3131leq_cvc (str1:: String , str2:: String ) = cmp (str1, str2) <= 0
3232
3333isdigit_cvc (str:: String ) = tryparse (Int, str) != = nothing
34-
35-
36- """
37- interpret_sygus(prog::AbstractRuleNode, grammar_tags::Dict{Int,Any}, input::Dict{Symbol,Any})
38-
39- Custom intepret function for the SyGuS SLIA benchmark.
40- """
41- function interpret_sygus (prog:: AbstractRuleNode , grammar_tags:: Dict{Int,Any} , input:: Dict{Symbol,Any} )
42- r = get_rule (prog)
43- c = get_children (prog)
44-
45- MLStyle. @match grammar_tags[r] begin
46- :concat_cvc => concat_cvc (interpret_sygus (c[1 ], grammar_tags), interpret_sygus (c[2 ], grammar_tags))
47- :replace_cvc => replace_cvc (interpret_sygus (c[1 ], grammar_tags), interpret_sygus (c[2 ], grammar_tags), interpret_sygus (c[3 ], grammar_tags))
48- :at_cvc => at_cvc (interpret_sygus (c[1 ], grammar_tags), interpret_sygus (c[2 ], grammar_tags))
49- :int_to_str_cvc => int_to_str_cvc (interpret_sygus (c[1 ], grammar_tags))
50- :substr_cvc => substr_cvc (interpret_sygus (c[1 ], grammar_tags), interpret_sygus (c[2 ], grammar_tags), interpret_sygus (c[3 ], grammar_tags))
51- :len_cvc => len_cvc (interpret_sygus (c[1 ], grammar_tags))
52- :str_to_int_cvc => str_to_int_cvc (interpret_sygus (c[1 ], grammar_tags))
53- :indexof_cvc => indexof_cvc (interpret_sygus (c[1 ], grammar_tags), interpret_sygus (c[2 ], grammar_tags), interpret_sygus (c[3 ], grammar_tags))
54- :prefixof_cvc => prefixof_cvc (interpret_sygus (c[1 ], grammar_tags), interpret_sygus (c[2 ], grammar_tags))
55- :suffixof_cvc => suffixof_cvc (interpret_sygus (c[1 ], grammar_tags), interpret_sygus (c[2 ], grammar_tags))
56- :contains_cvc => contains_cvc (interpret_sygus (c[1 ], grammar_tags), interpret_sygus (c[2 ], grammar_tags))
57-
58- :+ => interpret_sygus (c[1 ], grammar_tags) + interpret_sygus (c[2 ], grammar_tags)
59- :- => interpret_sygus (c[1 ], grammar_tags) - interpret_sygus (c[2 ], grammar_tags)
60- :(== ) => interpret_sygus (c[1 ], grammar_tags) == interpret_sygus (c[2 ], grammar_tags)
61-
62- :IF => interpret_sygus (c[1 ], grammar_tags) ? interpret_sygus (c[2 ], grammar_tags) : interpret_sygus (c[3 ], grammar_tags)
63-
64- _ =>
65- begin
66- tag = grammar_tags[r]
67- if tag isa Symbol && occursin (" _arg_" , String (tag))
68- # This is an input variable; look it up in the environment
69- return input[tag]
70- else
71- # default behavior
72- return tag
73- end
74- end
75- end
76- end
0 commit comments