Comp(Assign('y', ALit(1)), While(Not(Eq(Var('x'), ALit(1))), Comp(Assign('y', Times(Var('y'), Var('x'))), Assign('x', Minus(Var('x'), ALit(1))))))