Latex API

Latex Parameters: 'latex_registered_subjects'

SYNTAX: latex_registered_subjects(parameter, decision)
  • parameter Name of particular latex parameter
  • decision Possible parameter's value

Table to declare latex parameters along with all possible parameter values - decisions.

Block's Demand: 'latex_scope_demand'

SYNTAX: latex_scope_demand(scope-ref, parameter)

Declares demand for a given scope specified by scope-ref. It initiates latex reasoning in order to find satisfying decision for each demand.

Function's Demand: 'latex_fn_demand', 'latex_fn_demand_ordered'

SYNTAX: latex_fn_demand(fn-ref, parameter) (1) latex_fn_demand_ordered(fn-ref, parameter, id) (2)
  • fn-ref function reference
  • parameter latex parameter
  • id number of the parameter in function signature's arguments list

Latex reasoning determines which functions require additional parameters during runtime. Table (2) holds the same data as (1) along with additional field id to specify exact order of latex parameters in the given function's signature.

Decisions: 'latex_decision', 'late(latex_decision)'

SYNTAX: latex_decision(scope-ref, parameter, decision);
  • scope-ref code block reference
  • parameter latex parameter
  • decision latex decision

Latex reasoning stores its output, found decisions, in this table. Field decision specifies value of a latex parameter parameter in a given code block denoted by scope-ref. If some demand can't be satisfied and no appropriate decision is found, compiler raises an error. Latex parameter can have different values in different code blocks, thus scope-ref is used as a guard.