added funcdef, block, and statement writing, assumes expression and vardecl works correctly