Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ExpressionEvaluator Todo List

Coding Seb edited this pageMar 3, 2021 ·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.

More customization

  • Customization of the script evaluation part

More C# like things support

  • Manage Tuples
  • Addnameof keyword
  • Subscribe to event
  • Manageswitch case

Optimization and/or doing things better

  • Speed up evaluations
    • Caching things and consider using expression tree or other intermediate format. (See)
    • Caching Properties delegates (Do not improve perfs significantly)
  • Better variables management
    • Declare struct and valuetypes without new keyword
    • Scope variables to code blocks (add an option for retrocompatibility)
  • Line and (position) in script exceptions
  • More self explained exceptions
  • Add standard syntax for method declaration (for now see issue#72 Declare methods in scripts)

Other

  • CreateFunc<> orAction<>
  • Return aFunc<> or anAction<>
  • Validate code before evaluate (Hard to do without evaluating things)

Done

  • Manageref method args (see#83)
  • Managein method args (see#83)
  • Manageout method args (see#83)
  • Manageparams methods args (see#83)
  • Add aContext object in addition toVariables Dictionary to allow direct access to it's methods, fields and properties
  • ManageList<>.ForEach
  • Transform an internal lambda toAction<> orFunc<> when needed (To allow writingList<>.ForEach(x => {}))
  • Typed variables (In version 1.4.3.0 SeeDeclare and init variables in scripts
  • Generic types inference (Optimistic way to inferate. Only looking backward for generics in the stack)
  • Add an optionalvar keyword for variables init. (Better for copy paste with C# code)
  • 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...

Optimization and/or doing things better

  • Speed up evaluations
    • Manage inline namespaces faster
    • Option for caching namespace resolution
    • Option for caching type resolution
    • [Kept as this] Manage object creation faster (Activator.CreateInstance finally not so slow comparing to others strategy)

More customization

  • Custom operators (see#27 andAdvanced Customization and Hacking)
    • On the fly operators
    • Operators Dictionary easy customisation
    • Add a way to allow aliases for existing operators likeOr, 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 inVariableEvaluationEventArg 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)

Will not (or can not) be done for now

  • Find a way to manage extensions methods without the need to declaring the static type and without beeing too slow (snippet to add all extensions class providedhere)

Table Of Content

Clone this wiki locally

[8]ページ先頭

©2009-2025 Movatter.jp