Interface IExpressionFactory<T>
- Namespace
- RandomizerCore.StringParsing
- Assembly
- RandomizerCore.dll
Factory to produce domain specific expressions during parsing. Should support operators as defined by a paired IOperatorProvider
public interface IExpressionFactory<T>
Type Parameters
T
Methods
CreateAtomExpression(Token)
Creates an atom expression from a token
IExpression<T> CreateAtomExpression(Token token)
Parameters
token
Token
Returns
- IExpression<T>
CreateInfixExpression(IExpression<T>, OperatorToken, IExpression<T>)
Creates the appropriate infix expression for the provided operator
IExpression<T> CreateInfixExpression(IExpression<T> left, OperatorToken op, IExpression<T> right)
Parameters
left
IExpression<T>op
OperatorTokenright
IExpression<T>
Returns
- IExpression<T>
CreatePostfixExpression(IExpression<T>, OperatorToken)
Creates the appropriate postfix expression for the provided operator
IExpression<T> CreatePostfixExpression(IExpression<T> operand, OperatorToken op)
Parameters
operand
IExpression<T>op
OperatorToken
Returns
- IExpression<T>
CreatePrefixExpression(OperatorToken, IExpression<T>)
Creates the appropriate prefix expression for the provided operator
IExpression<T> CreatePrefixExpression(OperatorToken op, IExpression<T> operand)
Parameters
op
OperatorTokenoperand
IExpression<T>
Returns
- IExpression<T>
IsAtom(Token)
Determines whether a token is a valid atomic expression
bool IsAtom(Token token)
Parameters
token
Token