Added double curly braces for pragma (kept single curly braces for compatibility). Added macro def and undef surrounding pragma to simplify user code. Moved useless comment from generated code back to code generator.
(* Following taken directly from the IEC 61131.3 draft standard *)
(*
* An IEC 61131-3 IL and ST compiler.
*
* Based on the
* FINAL DRAFT - IEC 61131-3, 2nd Ed. (2001-12-10)
*
*)
FUNCTION_BLOCK HYSTERESIS
(* Boolean hysteresis on difference *)
(* of REAL inputs, XIN1 - XIN2 *)
VAR_INPUT XIN1, XIN2, EPS : REAL; END_VAR
VAR_OUTPUT Q : BOOL := 0; END_VAR
IF Q THEN IF XIN1 < (XIN2 - EPS) THEN Q := 0; END_IF ;
ELSIF XIN1 > (XIN2 + EPS) THEN Q := 1 ;
END_IF ;
END_FUNCTION_BLOCK