java.lang.Object
dev.jcputney.elearning.parser.input.scorm12.adl.prerequisite.PrerequisiteParser

public final class PrerequisiteParser extends Object
Parser for AICC prerequisite script expressions used in SCORM 1.2.

The parser implements a recursive descent parser for the following grammar:

 expression  → term (('|') term)*
 term        → factor (('&') factor)*
 factor      → '~'? atom
 atom        → IDENTIFIER | '(' expression ')'
 IDENTIFIER  → [A-Za-z0-9_-]+
 

Operator precedence (highest to lowest):

  1. NOT (~) - unary prefix
  2. AND (&) - left associative
  3. OR (|) - left associative

This parser never throws exceptions. Instead, it returns a ParseError for malformed expressions, allowing consumers to gracefully handle errors.

  • Method Details

    • parse

      public static PrerequisiteExpression parse(String expression)
      Parses an AICC prerequisite script expression.

      This method never throws exceptions. For invalid expressions, it returns a ParseError containing details about the parsing failure.

      Parameters:
      expression - the prerequisite expression to parse
      Returns:
      the parsed expression tree, or a ParseError if parsing fails