lib/sema.txt
author mjsousa
Sat, 07 May 2016 21:17:49 +0100
changeset 1010 242907849850
parent 251 5e7457efbb8f
permissions -rw-r--r--
Correctly identify errors when parsing erroneous code (make sure flex goes back to INITIAL state when code contains errors that do not allow determining whether ST or IL is being parsed)
251
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     1
(*
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     2
 * (c) 2011 Edouard Tisserant
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     3
 *
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     4
 * Fake semaphore support, for non preemptive implementation.
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     5
 *
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     6
 *)
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     7
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     8
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     9
FUNCTION_BLOCK SEMA
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    10
  VAR_INPUT
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    11
    CLAIM : BOOL;
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    12
    RELEASE : BOOL;
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    13
  END_VAR
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    14
  VAR_OUTPUT
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    15
    BUSY : BOOL;
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    16
  END_VAR
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    17
  VAR
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    18
    Q_INTERNAL : BOOL;
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    19
  END_VAR
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    20
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    21
  Q_INTERNAL := CLAIM OR ( Q_INTERNAL AND (NOT RELEASE));
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    22
  BUSY := Q_INTERNAL;
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    23
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    24
END_FUNCTION_BLOCK
5e7457efbb8f Added dumb SEMA?implementation
Edouqrd Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    25