Signature.Pragma
Signature pragmas for setting compilation parameters
Plain pragmas may be interspersed between signature declarations.
type t =
| Name of {
location : Syncom.Location.t;
constant : Syncom.Qualified_identifier.t;
meta_variable_base : Syncom.Identifier.t;
computation_variable_base : Syncom.Identifier.t Support.Option.t;
}
Name { constant = c; meta_variable_base = u; computation_variable_base = Option.Some x; _ }
is the pragma --name c u x.
for configuring the name-generation settings for meta-variables and computation-level variables generated for objects of type c
.
| Default_associativity of {
location : Syncom.Location.t;
associativity : Syncom.Associativity.t;
}
Default_associativity { associativity; _ }
is the pragma --assoc <associativity>.
where <associativity>
is either left
, right
or none
. This pragma assigns the default associativity for infix constants declared afterwards.
| Prefix_fixity of {
location : Syncom.Location.t;
constant : Syncom.Qualified_identifier.t;
precedence : Support.Int.t Support.Option.t;
postponed : Stdlib.Bool.t;
}
Prefix_fixity { constant = c; precedence; postponed; _ }
is the pragma --prefix c precedence.
for configuring the constant c
to be parsed as a prefix operator with precedence
.
If a precedence is already assigned to c
, and precedence = Option.None
, then the pre-existing precedence is used.
If postponed = false
, then the pragma is attached to a constant declared earlier than the pragma. Otherwise, when postponed = true
, then the pragma is attached to a constant declared immediately after the pragma.
| Infix_fixity of {
location : Syncom.Location.t;
constant : Syncom.Qualified_identifier.t;
precedence : Support.Int.t Support.Option.t;
associativity : Syncom.Associativity.t Support.Option.t;
postponed : Stdlib.Bool.t;
}
Infix_fixity { constant = c; precedence; associativity; postponed; _ }
is the pragma --infix c precedence associativity.
for configuring the constant c
to be parsed as an infix operator with precedence
and associativity
.
c
, and precedence = Option.None
, then the pre-existing precedence is used.associativity = Option.None
, then the associativity defaults to the associativity configured by the --default_associativity assoc.
pragma, or Associativity.Non_associative
if that pragma was never used.If postponed = false
, then the pragma is attached to a constant declared earlier than the pragma. Otherwise, when postponed = true
, then the pragma is attached to a constant declared immediately after the pragma.
| Postfix_fixity of {
location : Syncom.Location.t;
constant : Syncom.Qualified_identifier.t;
precedence : Support.Int.t Support.Option.t;
postponed : Stdlib.Bool.t;
}
Postfix_fixity { constant = c; precedence; postponed; _ }
is the pragma --postfix c precedence.
for configuring the constant c
to be parsed as a postfix operator with precedence
.
If a precedence is already assigned to c
, and precedence = Option.None
, then the pre-existing precedence is used.
If postponed = false
, then the pragma is attached to a constant declared earlier than the pragma. Otherwise, when postponed = true
, then the pragma is attached to a constant declared immediately after the pragma.
| Not of {
location : Syncom.Location.t;
}
Not _
is the pragma --not
which asserts that the declaration that follows it fails reconstruction.
| Open_module of {
location : Syncom.Location.t;
module_identifier : Syncom.Qualified_identifier.t;
}
Open { module_identifier; _ }
is the pragma --open module_identifier.
for opening the module module_identifier
, which adds its values to the current scope.
| Abbreviation of {
location : Syncom.Location.t;
module_identifier : Syncom.Qualified_identifier.t;
abbreviation : Syncom.Identifier.t;
}
Abbreviation { module_identifier; abbreviation; _ }
is the pragma --abbrev module_identifier abbreviation.
for defining the alias abbreviation
for the module module_identifier
.
| Query of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t Support.Option.t;
typ : Synext__.Synext_definition.LF.Typ.t;
expected_solutions : Support.Int.t Support.Option.t;
maximum_tries : Support.Int.t Support.Option.t;
}
Logic programming query on an LF type
*)