PLEXIL Checker

22 April 2015

The Plexil Checker is a simple static analyzer for Core PLEXIL plans. The Plexil Checker is most useful for checking Core PLEXIL XML files which have not been generated by the Plexil compiler.

Introduction

The Plexil Checker checks for the following issues within a Core PLEXIL plan:

  • Global declaration overloading

  • Missing global declaration

  • Improper usage of command and library nodes

  • Naming conflicts between nodes

  • Type checking for lookups

  • Variable initializer type consistency

  • Assignment type consistency

Global Declarations specify interfaces for commands, library nodes, and state variables (accessible via lookups). The goal is to have all calls to these elements within a PLEXIL plan conform to these given definitions.

The Plexil Checker validates the plan against the Core PLEXIL schema prior to its analysis.

The Plexil Checker must be used on Core PLEXIL XML files (.plx) only, and not other forms of PLEXIL such as Extended Plexil (.epx files), Standard Plexil (.ple files) or Plexilisp (.pli files).

Note

The Plexil compiler also does all the checks listed above, except for the following:

  • Global declaration overloading

  • Missing global declaration

Running the Checker

Run the checker as follows:

checkPlexil [-d] input_file.plx

The optional -d option will print debugging information. Otherwise, if the program finds any issues with the global declarations or their uses, a list of error messages will be displayed on screen.

The checker can also be run automatically when executing Plexil through any of the scripts plexilexec, plexiltest, or plexilsim, by including the -check command line option.