# Debugging options for the org.eclipse.ocl.examples.codegen plug-in

# Turn on tracing of the place building 
org.eclipse.ocl.examples.codegen/cse/build=false
# Turn on tracing of the places before CSE 
org.eclipse.ocl.examples.codegen/cse/places=false
# Turn on tracing of the places after pruning redundant analyses
org.eclipse.ocl.examples.codegen/cse/prune=false
# Turn on tracing of the places after pulling up occluded analyses 
org.eclipse.ocl.examples.codegen/cse/pullUp=false
# Turn on tracing of the places after pushing up joint analyses 
org.eclipse.ocl.examples.codegen/cse/pushUp=false
# Turn on tracing of the places after rewriting to use the let expressions 
org.eclipse.ocl.examples.codegen/cse/rewrite=false

# Turn on tracing of the classpath synthesis 
org.eclipse.ocl.examples.codegen/classPath=false
# Turn on tracing of the explicit compilations 
org.eclipse.ocl.examples.codegen/compiles=false
