Header menu logo XParsec

Operator Module

Provides functions to create and parse expressions using operators.

Functions and values

Function or value Description

create ops

Full Usage: create ops

Parameters:
    ops : Operator<'Op, 'Index, 'Expr, 'T, 'State, 'Input, 'InputSlice> seq

Returns: Operators<'Op, 'Index, 'Expr, 'T, 'State, 'Input, 'InputSlice>

Creates an `Operators` instance from a collection of operators. The returned instance can be used to parse expressions using the defined operators.

ops : Operator<'Op, 'Index, 'Expr, 'T, 'State, 'Input, 'InputSlice> seq
Returns: Operators<'Op, 'Index, 'Expr, 'T, 'State, 'Input, 'InputSlice>

enclosedBy op closeOp power parseOp parseCloseOp complete

Full Usage: enclosedBy op closeOp power parseOp parseCloseOp complete

Parameters:
    op : 'a
    closeOp : 'a
    power : Precedence
    parseOp : Parser<'a, 'b, 'c, 'd, 'e>
    parseCloseOp : Parser<'a, 'b, 'c, 'd, 'e>
    complete : 'f -> 'f

Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

Creates an operator defining a pair of delimiters with the specified properties.

op : 'a
closeOp : 'a
power : Precedence
parseOp : Parser<'a, 'b, 'c, 'd, 'e>
parseCloseOp : Parser<'a, 'b, 'c, 'd, 'e>
complete : 'f -> 'f
Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

indexer op closeOp power parseOp innerParser parseCloseOp complete

Full Usage: indexer op closeOp power parseOp innerParser parseCloseOp complete

Parameters:
    op : 'a
    closeOp : 'a
    power : Precedence
    parseOp : Parser<'a, 'b, 'c, 'd, 'e>
    innerParser : Parser<'f, 'b, 'c, 'd, 'e>
    parseCloseOp : Parser<'a, 'b, 'c, 'd, 'e>
    complete : 'g -> 'f -> 'g

Returns: Operator<'a, 'f, 'g, 'b, 'c, 'd, 'e>

Creates an indexer operator with the specified properties.

op : 'a
closeOp : 'a
power : Precedence
parseOp : Parser<'a, 'b, 'c, 'd, 'e>
innerParser : Parser<'f, 'b, 'c, 'd, 'e>
parseCloseOp : Parser<'a, 'b, 'c, 'd, 'e>
complete : 'g -> 'f -> 'g
Returns: Operator<'a, 'f, 'g, 'b, 'c, 'd, 'e>

infixLeftAssoc op power parseOp complete

Full Usage: infixLeftAssoc op power parseOp complete

Parameters:
    op : 'a
    power : Precedence
    parseOp : Parser<'a, 'b, 'c, 'd, 'e>
    complete : 'f -> 'f -> 'f

Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

Creates a left-associative infix operator with the specified properties.

op : 'a
power : Precedence
parseOp : Parser<'a, 'b, 'c, 'd, 'e>
complete : 'f -> 'f -> 'f
Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

infixNonAssoc op power parseOp complete

Full Usage: infixNonAssoc op power parseOp complete

Parameters:
    op : 'a
    power : Precedence
    parseOp : Parser<'a, 'b, 'c, 'd, 'e>
    complete : 'f -> 'f -> 'f

Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

Creates a non-associative infix operator with the specified properties.

op : 'a
power : Precedence
parseOp : Parser<'a, 'b, 'c, 'd, 'e>
complete : 'f -> 'f -> 'f
Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

infixRightAssoc op power parseOp complete

Full Usage: infixRightAssoc op power parseOp complete

Parameters:
    op : 'a
    power : Precedence
    parseOp : Parser<'a, 'b, 'c, 'd, 'e>
    complete : 'f -> 'f -> 'f

Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

Creates a right-associative infix operator with the specified properties.

op : 'a
power : Precedence
parseOp : Parser<'a, 'b, 'c, 'd, 'e>
complete : 'f -> 'f -> 'f
Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

parser pExpr operators

Full Usage: parser pExpr operators

Parameters:
    pExpr : Parser<'Expr, 'T, 'State, 'Input, 'InputSlice>
    operators : Operators<'Op, 'Index, 'Expr, 'T, 'State, 'Input, 'InputSlice>

Returns: Parser<'Expr, 'T, 'State, 'Input, 'InputSlice>

Parses an expression using the provided expression parser and operator definitions.

pExpr : Parser<'Expr, 'T, 'State, 'Input, 'InputSlice>
operators : Operators<'Op, 'Index, 'Expr, 'T, 'State, 'Input, 'InputSlice>
Returns: Parser<'Expr, 'T, 'State, 'Input, 'InputSlice>

postfix op power parseOp complete

Full Usage: postfix op power parseOp complete

Parameters:
    op : 'a
    power : Precedence
    parseOp : Parser<'a, 'b, 'c, 'd, 'e>
    complete : 'f -> 'f

Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

Creates a postfix operator with the specified properties.

op : 'a
power : Precedence
parseOp : Parser<'a, 'b, 'c, 'd, 'e>
complete : 'f -> 'f
Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

prefix op power parseOp complete

Full Usage: prefix op power parseOp complete

Parameters:
    op : 'a
    power : Precedence
    parseOp : Parser<'a, 'b, 'c, 'd, 'e>
    complete : 'f -> 'f

Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

Creates a prefix operator with the specified properties.

op : 'a
power : Precedence
parseOp : Parser<'a, 'b, 'c, 'd, 'e>
complete : 'f -> 'f
Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

ternary op power parseOp parseTernaryOp complete

Full Usage: ternary op power parseOp parseTernaryOp complete

Parameters:
    op : 'a
    power : Precedence
    parseOp : Parser<'a, 'b, 'c, 'd, 'e>
    parseTernaryOp : Parser<'a, 'b, 'c, 'd, 'e>
    complete : 'f -> 'f -> 'f -> 'f

Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

Creates a ternary operator with the specified properties. Ternary operators are always right associative.

op : 'a
power : Precedence
parseOp : Parser<'a, 'b, 'c, 'd, 'e>
parseTernaryOp : Parser<'a, 'b, 'c, 'd, 'e>
complete : 'f -> 'f -> 'f -> 'f
Returns: Operator<'a, 'g, 'f, 'b, 'c, 'd, 'e>

Type something to start searching.