merged ifdeftoif updates into master
todo: verify new AST structures