Known Issues and Workarounds

From ABL
Revision as of 12:57, 31 July 2006 by Sooraj (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

In case you have an account, here's a link to bugzilla.

Subgoal/Act Arguments

Currently, arguments to goals and acts must take identifiers or literals. Thus, for example,

act build(peasant.getObjectID(), 12, 7, false, player.getHall());

will error out at compile time with a parse error.

To avoid this error, stash the value you want to pass to the act as an identifier using a mental_act, as below.

sequential behavior TestPeasant() {
  ...
  int peasantID;
  int playerHall;

  mental_act {
    ...
    peasantID = peasant.getObjectID();
    playerHall = player.getHall();
  }

  act build(peasantID, 12, 7, false, playerHall);
  ...
} 

We treat this as a bug; it simply hasn't been fixed.

Multiple Success Tests Disallowed

Currently, only one success test can appear on a step. Both the compiler and runtime need to be modified to support multiple success tests appearing on a step.

Parsing is Order Dependent

Currently, parsing of .abl files is order-dependent. Specifically:

  • Declarations of variables must come before any executable code.
  • initial_tree must be the last behavior declaration in a .abl file.
  • Behavior annotations must appear at the top of the behavior.
  • Sensor and Act registration must appear before behavior declarations.

(This list may not be exhaustive. Feel free to add to it.)