# predicator v3.8.0 - Table of Contents

> A secure, non-evaling condition (boolean predicate) engine for end users

## Pages

- [Predicator](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

- Reference
  - [Language Reference](language.md)

- Guides
  - [Nested Data Access](nested-data-access.md)
  - [Custom Functions](custom-functions.md)
  - [Location Expressions](location-expressions.md)

- Architecture
  - [Predicator: Architecture and Language Reference](architecture.md)
  - [Architecture Decision Records](architecture-decision-records.md)
  - [ADR-0001: Keep the stack VM; revise the instruction set (ISA v2)](0001-keep-the-stack-vm-revise-the-instruction-set.md)
  - [ADR-0002: The = grammar break (4.0)](0002-the-equals-grammar-break.md)

## Modules

- [Predicator](Predicator.md): A secure, non-evaluative condition engine for processing end-user boolean predicates.
- [Predicator.Compiler](Predicator.Compiler.md): Compiler that converts AST to various representations using visitors.
- [Predicator.Context](Predicator.Context.md): A bound evaluation context: data, functions, and the unbound-variable policy.
- [Predicator.ContextLocation](Predicator.ContextLocation.md): Resolves location paths for assignment operations in SCXML datamodel expressions.
- [Predicator.Duration](Predicator.Duration.md): Duration utilities for time span calculations in Predicator expressions.
- [Predicator.Errors](Predicator.Errors.md): Common utilities for error formatting across all Predicator error modules.
- [Predicator.Errors.EvaluationError](Predicator.Errors.EvaluationError.md): Error struct for general evaluation errors in Predicator evaluation.
- [Predicator.Errors.LocationError](Predicator.Errors.LocationError.md): Error struct for location expression validation failures.
- [Predicator.Errors.ParseError](Predicator.Errors.ParseError.md): Error struct for parse errors in Predicator expressions.
- [Predicator.Errors.TypeMismatchError](Predicator.Errors.TypeMismatchError.md): Error struct for type mismatch errors in Predicator evaluation.
- [Predicator.Errors.UndefinedVariableError](Predicator.Errors.UndefinedVariableError.md): Error struct for undefined variable errors in Predicator evaluation.
- [Predicator.Evaluator](Predicator.Evaluator.md): Stack-based evaluator for predicator instructions.
- [Predicator.Functions.DateFunctions](Predicator.Functions.DateFunctions.md): Date and time related functions for use in predicator expressions.
- [Predicator.Functions.JSONFunctions](Predicator.Functions.JSONFunctions.md): JSON manipulation functions for Predicator expressions.
- [Predicator.Functions.MathFunctions](Predicator.Functions.MathFunctions.md): Mathematical functions for Predicator expressions.
- [Predicator.Functions.SystemFunctions](Predicator.Functions.SystemFunctions.md): Built-in helper functions for use in predicator expressions.
- [Predicator.Lexer](Predicator.Lexer.md): Lexical analyzer for predicator expressions.
- [Predicator.Parser](Predicator.Parser.md): Recursive descent parser for predicator expressions.
- [Predicator.Types](Predicator.Types.md): Core type definitions for the Predicator library.
- [Predicator.Undefined](Predicator.Undefined.md): The `:undefined` sentinel: predicator's representation of an unbound or
missing value.
- [Predicator.Visitor](Predicator.Visitor.md): Behaviour for AST visitors.
- [Predicator.Visitors.InstructionsVisitor](Predicator.Visitors.InstructionsVisitor.md): Visitor that converts AST nodes to stack machine instructions.
- [Predicator.Visitors.StringVisitor](Predicator.Visitors.StringVisitor.md): Visitor that converts AST nodes back to string expressions.

