-
Notifications
You must be signed in to change notification settings - Fork 101
ExpressionEvaluator Todo List
Coding Seb edited this page May 1, 2019
·
39 revisions
ExpressionEvaluator can already do some fun things, but it could do more. Here is just a small list of ideas and todo stuff (maybe some will never be done, But it's a place to keep track of ideas). It's a kind of not dated roadmap.
- Custom operators (see #27)
- On the fly operators
- Operators Dictionary easy customisation
- Add a way to allow aliases for existing operators like
Or, And
- Add a way to add some custom operators and corresponding implementations
- Flexible length of the operators
- Types : multiple operands vs Single operands (Maybe start with only 2 operands operators)
- Take care of operators precedences (priorities)
- Add generic types in
VariableEvaluationEventArg
andFunctionEvaluationEventArg
for on the fly evaluations (A list of types when using<>
) - On the fly static methods and/or property
- Better onthe fly events priorities management with other evaluations (By adding 2 Pre events See #35)
- On the fly parsing (event with current expression,ref parsing position and the stack)
- Manage Tuples
- Add
nameof
keyword - Manage
ref
method args - Manage
in
method args - Manage
out
method args - Manage
params
methods args - Subscribe to event
- Manage
switch case
- Add an optional
var
keyword for variables init. (Better for copy paste with C# code)
- Speed up evaluations
- Caching things and consider using expression tree or other intermediate format. (See)
- Manage inline namespaces faster
- Option for caching namespace resolution
- Option for caching type resolution
- Manage object creation faster (Actually use Activator.CreateInstance very flexible but very slow)
- Better variables management
- Typed variables or optionally use
var
keyword - declare struct and valuetypes without new keyword
- variables scoped to blocks
- Typed variables or optionally use
- Find a way to manage extentions methods without the need to declaring the static type and withoutbeeing too slow
- Line and (position) in script exceptions
- More self explained exceptions
- Return a
Func<>
or anAction<>
- Validate code before evaluate
-
Manage structs assignation -
Option to force integer eval as double -
Manage numbers decimal separator and functions arguments separators -
Managesizeof
keyword -
Binary numbers -
Hexadecimal numbers -
++
and--
as prefix operators -
Dictionary initializers -
Collection initializers -
Objects initializers -
throw
andtry catch
exception -
ManageExpendoObject
-
Manage calling of Action and Func delegates -
Manage++
and--
for indexing -
Manage assignation to indexer -
Managedo while
-
Properties set assignation -
Manageforeach
-
Managecontinue
keyword -
Managebreak
keyword -
Manage blocks in lambda body -
Managereturn
keyword -
Manage comments//
and/* */
-
ManageEvaluate<type>(calc)
-
Manage chars -
On the fly properties and methods evaluation -
Manage Generic functions and types with<>
-
Manage?:
operator -
Managenew
Keyword -
Manage multi line mode with;? and
= -
Manage blocks likeif for while
...
- Getting Started
- Variables and Functions
- Operators and Keywords
- C# Types Management
- ExpandoObject
- Code Comments Management
- Advanced Customization and Hacking
- Caching
-
Options
- CultureInfoForNumberParsing
- OptionCaseSensitiveEvaluationActive
- OptionVariablesPersistenceCustomComparer
- OptionFluidPrefixingActive
- OptionForceIntegerNumbersEvaluationsAsDoubleByDefault
- OptionNumberParsingDecimalSeparator
- OptionNumberParsingThousandSeparator
- OptionFunctionArgumentsSeparator
- OptionInitializersSeparator
- OptionInlineNamespacesEvaluationRule
- OptionNewFunctionEvaluationActive
- OptionNewKeywordEvaluationActive
- OptionStaticMethodsCallActive
- OptionStaticProperiesGetActive
- OptionInstanceMethodsCallActive
- OptionInstanceProperiesGetActive
- OptionIndexingActive
- OptionStringEvaluationActive
- OptionCharEvaluationActive
- OptionEvaluateFunctionActive
- OptionVariableAssignationActive
- OptionPropertyOrFieldSetActive
- OptionIndexingAssignationActive
- OptionScriptEvaluateFunctionActive
- OptionOnNoReturnKeywordFoundInScriptAction
- OptionScriptNeedSemicolonAtTheEndOfLastExpression
- OptionAllowNonPublicMembersAccess
- Todo List