Library
Module
Module type
Parameter
Class
Class type
Parameters
Signature
type error = [
|
`OpConflict of Sup.term * Sup.term
(*Priority or associativiy conflict between two operators. In
*)`OpConflict (t,o)
, operatoro
generates a conflict which prevents termt
to be parsed.|
`UnexpectedInfix of Sup.term
(*An infix operator appears without left context. If
*)+
is an infix operator, it is raised in, e.g.,+ x x
orx + + x x
.|
`UnexpectedPostfix of Sup.term
(*A postfix operator appears without left context. If
*)!
is a postfix operator, it is raised in! x
.|
`TooFewArguments
(*More arguments are expected. It is raised for instance on partial application of operators, such as
*)x +
.
]
Errors that can be encountered while parsing a stream of terms.
expression tbl s
parses stream of tokens s
with table of operators tbl
. It transforms a sequence of applications to a structured application tree containing infix and prefix operators. For instance, assuming that +
is declared infix, it transforms 3 + 5 + 2
, represented as @(@(@(@(3,+),5),+),2)
(where @
is the application) into (@(+(@(+,3,5)),2)
.