sebastien / lambdafactory

Language construction kit and program manipulation framework

This URL has Read+Write access

README
== LambdaFactory
== Custom Language Development Kit

LambdaFactory provides a factory-based (as in design patterns) API to create
every element that makes a program, from the simple computations to the
OO and functional constructs.

LambdaFactory support front-end and back-end plugins. Front-end plugins are
parsers that parse a specific language and generate a LambdaFactory program
model. Back-end plugins are plugins that translate the LambdaFactory program
model to a specific language.

LambdaFactory comes with the following backends:

  - JavaScript
  - ActionScript 3.0
  - Python

Installing LambdaFactory
========================

Simply put the 'Distribution/lambdafactory' somewhere in your 'PYTHONPATH' or
do:

>  export PYTHONPATH=`pwd`/Distribution/lambdafactory

or use the regular way

>  python setup.py install

Specifying passes
=================

On the command-line, you can use the -P option to specify the passes that you
want to use for a particular run. By default, these passes are:

>  lf -PImportation,BasicDataFlow,DataFlowBinding

for the JavaScript target, a specific pass is added:

>  lf -PExtendJSruntime,Importation,BasicDataFlow,DataFlowBinding

the passes are specified in order and have to be either the name of a
'lambdafactory.passes' pass subclass, or be a fully-qualified name of a Pass
class (which then has to be a loadable Python module)

# EOF