# predicator v5.0.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)
  - [ISA Reference](isa.md)

- Guides
  - [Nested Data Access](nested-data-access.md)
  - [Custom Functions](custom-functions.md)
  - [Location Expressions](location-expressions.md)
  - [Embedding Compiled Programs](embedding.md)
  - [Porting Predicator](porting.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)
  - [ADR-0003: The Elixir implementation leads the ISA](0003-the-elixir-implementation-leads-the-isa.md)
  - [ADR-0009: The compiled envelope carries the position table](0009-the-compiled-envelope-carries-the-position-table.md)
  - [ADR-0011: Casts compile to a cast opcode; :: is postfix and failure is :undefined](0011-casts-are-an-opcode.md)

## Modules

- [Predicator](Predicator.md): A secure, non-evaluative condition engine for processing end-user boolean predicates.
- [Predicator.Cast](Predicator.Cast.md): The `::` cast conversion matrix.
- [Predicator.Compiled](Predicator.Compiled.md): A compiled program and its source-location table, as one value.
- [Predicator.Compiler](Predicator.Compiler.md): Compiler that converts AST to various representations using visitors.
- [Predicator.Conformance.Coverage](Predicator.Conformance.Coverage.md): The diffing logic behind `mix corpus.coverage` (`px-35i.4` Phase 6).
- [Predicator.Conformance.Features](Predicator.Conformance.Features.md): Feature tags for the conformance corpus (`px-35i.4`).
- [Predicator.Conformance.Generator](Predicator.Conformance.Generator.md): The pure half of conformance corpus generation (`px-35i.4`).
- [Predicator.Conformance.JSON](Predicator.Conformance.JSON.md): A deterministic JSON writer for the conformance corpus (`px-35i.4`).
- [Predicator.Conformance.Values](Predicator.Conformance.Values.md): The tagged-value codec for the conformance corpus (`px-35i.4`).
- [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.FunctionProvider](Predicator.FunctionProvider.md): Behaviour for a module that supplies callable functions to the evaluator.
- [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.Instructions](Predicator.Instructions.md): Version and tier queries over a compiled instruction list.
- [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.

## Mix Tasks

- [mix corpus.coverage](Mix.Tasks.Corpus.Coverage.md): Prints a checklist of behaviors the existing ExUnit suite exercises that
the shipped conformance corpus does not (`px-35i.4` Phase 6).
- [mix corpus.generate](Mix.Tasks.Corpus.Generate.md): Regenerates `conformance/corpus/tier-*.json` and `conformance/manifest.json`
from the authored cases in `conformance/cases/*.json` (`px-35i.4`).

