The parser is built on top of ANTLR and the
ANTLR (v3) C# 4.0 grammar
. The grammar is complete enough that I don't even support all of it's functionality. It can parse C# 4.0 completely, but I cannot compile it yet.
Support for dynamics is one thing that sets ExpressionEvaluator apart from other C# expression libraries. ExpressionEvaluator uses code based on decompiled assemblies that use dynamics, as there appears to be no official Microsoft documentation on how to generate
code that uses dynamics.
Born out of necessity, the ScopeCompile feature is a quick way to pass multiple parameters as properties of a single object into an expression without having to reference the object. The object acts as the context of the expression, and any expressions without
a parent context will be checked against the scope context first.
Another feature not usually supported in other libraries is the ability to create loop expressions, with for, foreach, and while statements. Your mileage may vary.