# Whether to print the spin version of the automaton
print_spin 0

# Where to output the monitor(s)
output_file  ../aspects/adders/monitor.cpp

# The (class) name of the generated monitors
mon_name    test_monitor

# Alphabet reduction
alpha_reduction	 none

# Alphabetization of the transitions 
alphabetization	 assignments

# Should we minimize the automaton
minimize	 1

# Define locations in the user code
location    loc1     "% adder::driver()":entry
location    loc2     "% adder::driver()":exit
# location    loc3 :dummy

# Define variables values at specific locations
value int var1 "int driver::foo(...)" :2
value int ret "int driver::foo(...)" :0

usertype adder

# First monitor definition
formula  G ((loc1 -> "addy->_a >= 0") && (loc2 -> "addy->_a > 0")) @ (loc1 || loc2)
type adder* addy
include adder.h

# One of front_nondet, front_det_switch, front_det_ifelse, back_nondet, back_ass_alpha
encoding	 front_det_switch


