extern c in ast.c and task.c