FrameIT
REST_JSON_API.SOMDoc.SOMDocToLambdaExpression Class Reference

Libary and configuartions to translate a SOMDoc AST into an Expression-Tree More...

Public Member Functions

delegate LambdaExpression CustomFunction (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 Builds a LambdaExpression within MakeLambdaExpression More...
 

Static Public Member Functions

static LambdaExpression MakeLambdaExpression (string URI, LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 Maps URI to an operation and uses the other parameters as operants to build an Expression-Tree. More...
 
static LambdaExpression PartialInvoke (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression _PartialInvoke (Expression func, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 May invoke a function with an incomplete parameter set. More...
 
static CustomFunction ChainMakes (CustomFunction[] makes)
 Chains multiple CustomFunctions into a single one. The resalt of one will be used as lambda_applicant for the next one. More...
 
static LambdaExpression ExpresionFuncToLambda (LambdaExpression func, string name_me, LambdaExpression[] args_lamda, ParameterExpression[] bound_params)
 
static LambdaExpression ParseFuncUUToExpression< U > (Func< U, U > func)
 
static LambdaExpression MakeInvert (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression MakeSin (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression MakeCos (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression MakeRoot (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression ProjLVecTupel (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression ProjRVecTupel (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression CalculateAngle (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression MakeTupel (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression MakeObjArray (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression MakeInstantList (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression InsertFrontListLiteral (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression MakeListEnd (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression Identity0 (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression Index0 (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression Tail (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression IfThenElse (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression Aggregate (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static LambdaExpression FeedForwardUntil (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static CustomFunction CallAnyFunction (bool self, string method_name, Type type=null,(uint, LambdaExpression)[] lambda_manual=null)
 Find (any) generic methods and call it, given the arguments. This method tries to match the arguments to a method called method_name in type . If unsuccessfull, an Exception will be thrown. If the results are undecisive, the first one will be used and a log-entree created. More...
 
static LambdaExpression MakeType (KeyValuePair< string, LambdaExpression >[] members, ParameterExpression[] bound_params)
 
static LambdaExpression GetPropertyOrFieldDynamic (LambdaExpression[] lambda_applicant, LambdaExpression[] lambda_arguments, ParameterExpression[] bound_params)
 
static CustomFunction GetPropertyOrField (string property_name)
 
static CustomFunction IntCastedIndexer (string property_name)
 Casts lambda_arguments into ints and uses them to (multidimensional) index lambda_applicant.property_name More...
 

Static Private Attributes

static readonly Dictionary< string, CustomFunctionMMTtoLambdaMaker
 
static readonly Dictionary< string, ExpressionType > MMTtoBinaryExpressionType
 
static readonly Dictionary< string, ExpressionType > MMTtoUnaryExpressionType
 

Detailed Description

Libary and configuartions to translate a SOMDoc AST into an Expression-Tree

Member Function Documentation

◆ _PartialInvoke()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression._PartialInvoke ( Expression  func,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

May invoke a function with an incomplete parameter set.

Parameters
funcfunction to be invoked
lambda_argumentsarguments to invoke with
bound_paramsto be bound as parameters in Expression.Lambda(Expression, ParameterExpression[])
Returns
new function with up to lambda_arguments .Count less arguments
Exceptions
ArgumentExceptioniff func is not a function

◆ Aggregate()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.Aggregate ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ CalculateAngle()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.CalculateAngle ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ CallAnyFunction()

static CustomFunction REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.CallAnyFunction ( bool  self,
string  method_name,
Type  type = null,
(uint, LambdaExpression)[]  lambda_manual = null 
)
static

Find (any) generic methods and call it, given the arguments. This method tries to match the arguments to a method called method_name in type . If unsuccessfull, an Exception will be thrown. If the results are undecisive, the first one will be used and a log-entree created.

Although non-generic methods can be used this way, it is advised against this usage for performance reasons!

Parameters
selfif true the method will be called on the first argument itselfe; otherwise on type
method_namethe name of the function to be called
typethe Type the function is a member of, or null iff the type of the first argument is to be used
lambda_manualcan be used to manually insert any number of constant arguments at any position (0-indexed)
Returns
that dynamically builds a method call
Exceptions
ExceptionIff no matching method could be found

◆ ChainMakes()

static CustomFunction REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.ChainMakes ( CustomFunction[]  makes)
static

Chains multiple CustomFunctions into a single one. The resalt of one will be used as lambda_applicant for the next one.

Parameters
makesto be chained
Returns
wich combines all makes . When executed it will return the return value of the last CustomFunction in makes .

◆ CustomFunction()

delegate LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.CustomFunction ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)

Builds a LambdaExpression within MakeLambdaExpression

Parameters
lambda_applicantarguments to be used; usually comes from OMA.arguments
lambda_argumentscurrently unused. space for a second set of parameters
bound_paramsto be bound as parameters in Expression.Lambda(Expression, ParameterExpression[])
Returns
encoding the current Abstract-Syntax-Tree

◆ ExpresionFuncToLambda()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.ExpresionFuncToLambda ( LambdaExpression  func,
string  name_me,
LambdaExpression[]  args_lamda,
ParameterExpression[]  bound_params 
)
static

◆ FeedForwardUntil()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.FeedForwardUntil ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ GetPropertyOrField()

static CustomFunction REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.GetPropertyOrField ( string  property_name)
static

◆ GetPropertyOrFieldDynamic()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.GetPropertyOrFieldDynamic ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ Identity0()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.Identity0 ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ IfThenElse()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.IfThenElse ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ Index0()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.Index0 ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ InsertFrontListLiteral()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.InsertFrontListLiteral ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ IntCastedIndexer()

static CustomFunction REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.IntCastedIndexer ( string  property_name)
static

Casts lambda_arguments into ints and uses them to (multidimensional) index lambda_applicant.property_name

Parameters
property_namename of property to index

◆ MakeCos()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeCos ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ MakeInstantList()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeInstantList ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ MakeInvert()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeInvert ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ MakeLambdaExpression()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeLambdaExpression ( string  URI,
LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

Maps URI to an operation and uses the other parameters as operants to build an Expression-Tree.

Parameters
URIMMTConstants to be mapped to an operation
lambda_applicantarguments to be used; usually comes from OMA.arguments
lambda_argumentscurrently unused. space for a second set of parameters
bound_paramsto be bound as parameters in Expression.Lambda(Expression, ParameterExpression[])
Returns
encoding the current Abstract-Syntax-Tree
Exceptions
ArgumentExceptioniff lambda_applicant could not be used in URI
NotImplementedExceptioniff URI could not be mapped

◆ MakeListEnd()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeListEnd ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ MakeObjArray()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeObjArray ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ MakeRoot()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeRoot ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ MakeSin()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeSin ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ MakeTupel()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeTupel ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ MakeType()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MakeType ( KeyValuePair< string, LambdaExpression >[]  members,
ParameterExpression[]  bound_params 
)
static

◆ ParseFuncUUToExpression< U >()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.ParseFuncUUToExpression< U > ( Func< U, U >  func)
static

◆ PartialInvoke()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.PartialInvoke ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ ProjLVecTupel()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.ProjLVecTupel ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ ProjRVecTupel()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.ProjRVecTupel ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

◆ Tail()

static LambdaExpression REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.Tail ( LambdaExpression[]  lambda_applicant,
LambdaExpression[]  lambda_arguments,
ParameterExpression[]  bound_params 
)
static

Member Data Documentation

◆ MMTtoBinaryExpressionType

readonly Dictionary<string, ExpressionType> REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MMTtoBinaryExpressionType
staticprivate

◆ MMTtoLambdaMaker

readonly Dictionary<string, CustomFunction> REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MMTtoLambdaMaker
staticprivate

◆ MMTtoUnaryExpressionType

readonly Dictionary<string, ExpressionType> REST_JSON_API.SOMDoc.SOMDocToLambdaExpression.MMTtoUnaryExpressionType
staticprivate

The documentation for this class was generated from the following file: