Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
val get_args :
Syntax.p_term ->
Syntax.p_term * (Common.Pos.popt * Syntax.p_term) list
get_args t
decomposes the parser level term t
into a spine (h,args)
, when h
is the term at the head of the application and args
is the list of all its arguments. The arguments are stored together with the position of the corresponding application node in the source code. Note that h
is guaranteed not to be a P_Appl
node. Term constructors with no equivalent in the dk syntax (like binary symbol applications) are not handled.
val add_args :
Syntax.p_term ->
(Common.Pos.popt * Syntax.p_term) list ->
Syntax.p_term
add_args t args
builds the application of the term t
to the arguments args
. When args
is empty, the returned value is exactly t
. Note that this function is the inverse of get_args
(in some sense).
type p_dk_rule =
((Common.Pos.strloc * Syntax.p_term option) list
* Syntax.p_term
* Syntax.p_term)
Common.Pos.loc
Representation of a reduction rule, with its context.
val to_p_rule : p_dk_rule -> Syntax.p_rule
to_p_rule r
transforms the dk representation of a rule into the lp representation.