Project Description

Expressions.Compiler is a lightweight expression compiler and generic parser framework. It is designed to support out-of-the-box propotyping, expressions evaluation & code generation.

Summary

This is a lightweight (~ 20 KB) easy to use framework library. for prototyping of the LL(1) (top-down left-most derivation) parser and PEG parser invented by Bryan Ford in 2004.
This framework can be easily switched between table-based and recursive descent parser implementation. Also it can be used to generate adaptive grammar parser, as it's shown in provided example in the project source tree.
Version history
v1.0.3.0

Added generic classes. All of new generic classes exists in simple form for all public classes and interfaces, which is actually an algorithmic form of conversion function for char as input and double as evaluation of AST as output.

Added brand functionality: a universal generalized parser of stream of type T, returning an AST tree of type U, which can be evaluated to anything special. Tests have been updated to reflect code changes, have been found several hidden errors in tests. At the moment, valid grammar on null input set cannot produce positive parsing results even on any grammar rules set.

All non-generic code not changed for the compatibility with older code. Finally switched code and tests to trace build, debug build and release build. Release build does not have extra code evaluation due to classes-to-string conversion to readable format. All test results produce classes-to-string self descripting readable output only on trace build project configuration.

Math sample updated for the new generic classes.

Version history

v1.0.3.0

Added generic classes. All of new generic classes exists in simple form for all public classes and interfaces, which is actually an algorithmic form of conversion function for char as input and double as evaluation of AST as output.

Added brand functionality: a universal generalized parser of stream of type T, returning an AST tree of type U, which can be evaluated to anything special. Tests have been updated to reflect code changes, have been found several hidden errors in tests. At the moment, valid grammar on null input set cannot produce positive parsing results even on any grammar rules set.

All non-generic code not changed for the compatibility with older code. Finally switched code and tests to trace build, debug build and release build. Release build does not have extra code evaluation due to classes-to-string conversion to readable format. All test results produce classes-to-string self descripting readable output only on trace build project configuration.

Math sample updated for the new generic classes.

v1.0.2.1

Removed depedencies on generic type wrapper for T, core library simplifications, weakened interface dependencies on base classes.

Removed interfaces: 
- IExpression<T>, 
- IExpression, 
- IExpressionTreeInternal.

Expression<T> now supports generic type. Samples & sources can be downloadede through changesets or from download page.

Please, visit  Expressions.Compiler home page at http://expressionscompiler.codeplex.com/