Fix bug: Add support for de-referencing pointers to struct (struct_ptr^.elem1) when used inside FB.
Note that multiple de-referencing of structs (struct_ptr_ptr^^.elem) is not supported inside FB code (this would need BIG changes to the compiler!)
(*
* (c) 2011 Edouard Tisserant
*
* Fake semaphore support, for non preemptive implementation.
*
*)
FUNCTION_BLOCK SEMA
VAR_INPUT
CLAIM : BOOL;
RELEASE : BOOL;
END_VAR
VAR_OUTPUT
BUSY : BOOL;
END_VAR
VAR
Q_INTERNAL : BOOL;
END_VAR
Q_INTERNAL := CLAIM OR ( Q_INTERNAL AND (NOT RELEASE));
BUSY := Q_INTERNAL;
END_FUNCTION_BLOCK