fixed a bug with assigning to a temporary swizzled type, implemented "if" and "for"