Class Operator
Methods to create OperatorTableRow<TToken, T> values.
Inheritance
- Object
 - Operator
 
Declaration
public static class Operator : Object
        
        
        
            Methods
Binary<TToken, T>(BinaryOperatorType, Parser<TToken, Func<T, T, T>>)
Creates a row in a table of operators which contains a single binary infix operator with the specified associativity. Can be combined with other OperatorTableRow<TToken, T>s using And(OperatorTableRow<TToken, T>) to build a larger row.
Declaration
public static OperatorTableRow<TToken, T> Binary<TToken, T>(BinaryOperatorType type, Parser<TToken, Func<T, T, T>> opParser)
                        Parameters
| Type | Name | Description | 
|---|---|---|
type  | 
                                    The associativity of the infix operator  | 
                                |
opParser  | 
                                    A parser for an infix operator  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a single infix operator.  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
InfixL<TToken, T>(Parser<TToken, Func<T, T, T>>)
Creates a row in a table of operators which contains a single left-associative infix operator. Can be combined with other OperatorTableRow<TToken, T>s using And(OperatorTableRow<TToken, T>) to build a larger row.
Declaration
public static OperatorTableRow<TToken, T> InfixL<TToken, T>(Parser<TToken, Func<T, T, T>> opParser)
                        Parameters
| Type | Name | Description | 
|---|---|---|
opParser  | 
                                    A parser for an infix operator  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a single infix operator.  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
InfixN<TToken, T>(Parser<TToken, Func<T, T, T>>)
Creates a row in a table of operators which contains a single non-associative infix operator. Can be combined with other OperatorTableRow<TToken, T>s using And(OperatorTableRow<TToken, T>) to build a larger row.
Declaration
public static OperatorTableRow<TToken, T> InfixN<TToken, T>(Parser<TToken, Func<T, T, T>> opParser)
                        Parameters
| Type | Name | Description | 
|---|---|---|
opParser  | 
                                    A parser for an infix operator  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a single infix operator.  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
InfixR<TToken, T>(Parser<TToken, Func<T, T, T>>)
Creates a row in a table of operators which contains a single right-associative infix operator. Can be combined with other OperatorTableRow<TToken, T>s using And(OperatorTableRow<TToken, T>) to build a larger row.
Declaration
public static OperatorTableRow<TToken, T> InfixR<TToken, T>(Parser<TToken, Func<T, T, T>> opParser)
                        Parameters
| Type | Name | Description | 
|---|---|---|
opParser  | 
                                    A parser for an infix operator  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a single infix operator.  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
Postfix<TToken, T>(Parser<TToken, Func<T, T>>)
Creates a row in a table of operators which contains a single postfix operator. Can be combined with other OperatorTableRow<TToken, T>s using And(OperatorTableRow<TToken, T>) to build a larger row.
Declaration
public static OperatorTableRow<TToken, T> Postfix<TToken, T>(Parser<TToken, Func<T, T>> opParser)
                        Parameters
| Type | Name | Description | 
|---|---|---|
opParser  | 
                                    A parser for an postfix operator  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a single postfix operator.  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
PostfixChainable<TToken, T>(Parser<TToken, Func<T, T>>[])
Creates a row in a table of operators which contains a chainable collection of postfix operators.
By default Postfix<TToken, T>(Parser<TToken, Func<T, T>>) operators can only appear onc, so foo()() would not be parsed as "call(call(foo))".
This method is equivalent to:
Postfix(
    OneOf(opParsers)
        .AtLeastOnce()
        .Select<Func<T, T>>(fs => z => fs.Aggregate(z, (x, f) => f(x)))
)
Declaration
public static OperatorTableRow<TToken, T> PostfixChainable<TToken, T>(params Parser<TToken, Func<T, T>>[] opParsers)
                        Parameters
| Type | Name | Description | 
|---|---|---|
opParsers  | 
                                    A collection of parsers for individual postfix operators  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a chainable collection of postfix operators  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
PostfixChainable<TToken, T>(IEnumerable<Parser<TToken, Func<T, T>>>)
Creates a row in a table of operators which contains a chainable collection of postfix operators.
By default Postfix<TToken, T>(Parser<TToken, Func<T, T>>) operators can only appear onc, so foo()() would not be parsed as "call(call(foo))".
This method is equivalent to:
Postfix(
    OneOf(opParsers)
        .AtLeastOnce()
        .Select<Func<T, T>>(fs => z => fs.Aggregate(z, (x, f) => f(x)))
)
Declaration
public static OperatorTableRow<TToken, T> PostfixChainable<TToken, T>(IEnumerable<Parser<TToken, Func<T, T>>> opParsers)
                        Parameters
| Type | Name | Description | 
|---|---|---|
IEnumerable<Parser<TToken, Func<T, T>>>  | 
                                    opParsers  | 
                                    A collection of parsers for individual postfix operators  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a chainable collection of postfix operators  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
Prefix<TToken, T>(Parser<TToken, Func<T, T>>)
Creates a row in a table of operators which contains a single prefix operator. Can be combined with other OperatorTableRow<TToken, T>s using And(OperatorTableRow<TToken, T>) to build a larger row.
Declaration
public static OperatorTableRow<TToken, T> Prefix<TToken, T>(Parser<TToken, Func<T, T>> opParser)
                        Parameters
| Type | Name | Description | 
|---|---|---|
opParser  | 
                                    A parser for an prefix operator  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a single prefix operator.  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
PrefixChainable<TToken, T>(Parser<TToken, Func<T, T>>[])
Creates a row in a table of operators which contains a chainable collection of prefix operators.
By default Prefix<TToken, T>(Parser<TToken, Func<T, T>>) operators can only appear onc, so - - 1 would not be parsed as "minus minus 1".
This method is equivalent to:
Prefix(
    OneOf(opParsers)
        .AtLeastOnce()
        .Select<Func<T, T>>(fs => z => fs.AggregateR(z, (f, x) => f(x)))
)
Declaration
public static OperatorTableRow<TToken, T> PrefixChainable<TToken, T>(params Parser<TToken, Func<T, T>>[] opParsers)
                        Parameters
| Type | Name | Description | 
|---|---|---|
opParsers  | 
                                    A collection of parsers for individual prefix operators  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a chainable collection of prefix operators  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
PrefixChainable<TToken, T>(IEnumerable<Parser<TToken, Func<T, T>>>)
Creates a row in a table of operators which contains a chainable collection of prefix operators.
By default Prefix<TToken, T>(Parser<TToken, Func<T, T>>) operators can only appear onc, so - - 1 would not be parsed as "minus minus 1".
This method is equivalent to:
Prefix(
    OneOf(opParsers)
        .AtLeastOnce()
        .Select<Func<T, T>>(fs => z => fs.AggregateR(z, (f, x) => f(x)))
)
Declaration
public static OperatorTableRow<TToken, T> PrefixChainable<TToken, T>(IEnumerable<Parser<TToken, Func<T, T>>> opParsers)
                        Parameters
| Type | Name | Description | 
|---|---|---|
IEnumerable<Parser<TToken, Func<T, T>>>  | 
                                    opParsers  | 
                                    A collection of parsers for individual prefix operators  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a chainable collection of prefix operators  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  | 
                                    
Unary<TToken, T>(UnaryOperatorType, Parser<TToken, Func<T, T>>)
Creates a row in a table of operators which contains a single unary operator - either a prefix operator or a postfix operator. Can be combined with other OperatorTableRow<TToken, T>s using And(OperatorTableRow<TToken, T>) to build a larger row.
Declaration
public static OperatorTableRow<TToken, T> Unary<TToken, T>(UnaryOperatorType type, Parser<TToken, Func<T, T>> opParser)
                        Parameters
| Type | Name | Description | 
|---|---|---|
type  | 
                                    The type of the unary operator  | 
                                |
opParser  | 
                                    A parser for a unary operator  | 
                                
Returns
| Type | Description | 
|---|---|
OperatorTableRow<TToken, T>  | 
                                    A row in a table of operators which contains a single unary operator.  | 
                                
Type Parameters
| Name | Description | 
|---|---|
TToken  | 
                                    |
T  |