19 Commits

Author SHA1 Message Date
Jonathan Bernard 99a3601896 Fixed a bug with how Labdas evaluate their arguments.
Arguments should be evaluated in the calling scope, but due to the way labdas
were constructing a new symbol table, the arguments were being evaluated inside
the closure scope.
2010-04-20 11:18:09 -05:00
Jonathan Bernard 794467003a Implemented NOT. Fixed SExp.NIL equality bug. 2010-02-09 14:13:30 -06:00
Jonathan Bernard c754b2e7a9 LETREC tests 2009-12-01 20:05:05 -06:00
Jonathan Bernard 2b45af2d9c Reworked closure calculation. Added several special forms. Bug fixes. TypeUtil
Not completely happy with closure calculation, but satisfied.
Added debug toString to SymbolTable

Many additional changes, see diff.
2009-11-30 20:41:08 -06:00
Jonathan Bernard 7f288c0878 Generalized special form argument type checking. Added <=, <, =, /=, >, >= 2009-11-25 16:18:13 -06:00
Jonathan Bernard 86a0e3981b Updated build process for better cross-platform support. 2009-11-25 13:53:08 -06:00
Jonathan Bernard c63b92bf41 Functions as first-class objects, lambdas implemented. Added several new SFs 2009-11-25 13:38:12 -06:00
Jonathan Bernard 14ac02ab12 Cleaning up generated parser files. 2009-11-24 11:55:57 -06:00
Jonathan Bernard 2c0e932f89 Polished build process. Added CONS special form. 2009-11-24 11:55:02 -06:00
Jonathan Bernard e6a608ee2b Added keywords, several new special forms 2009-11-24 09:22:52 -06:00
Jonathan Bernard dfc1234817 Implemented on-line help system, initial trace system, debug functions.
Rewrote REPL
Added NIL and comments to parser.
Added T as a predefined constant.
Added HELP, TRACE, ENABLE-DEBUG-AST special form.
Fixed variable evaluation (shouldn't automatically eval it's value)
2009-11-21 20:00:39 -06:00
Jonathan Bernard 943c91dedc Fixed function calling mechanism. 2009-11-20 13:59:40 -06:00
Jonathan Bernard 1642e5a51a Function lookup and calling implemented. Some SpecialForms implemented.
Special forms:
    DEFUN
    SETQ
    +
    -
    *
    /
2009-11-20 10:26:21 -06:00
Jonathan Bernard f6d3658342 Safety point before changing the return type of SExp.eval to SExp 2009-11-20 09:10:21 -06:00
Jonathan Bernard adc5b2d250 Continued work on List.eval, general function/macro/special form invocation. 2009-11-20 06:19:03 -06:00
Jonathan Bernard 1595ae1921 Re-architected SymbolTable using maps rather than sequences. 2009-11-19 10:59:14 -06:00
Jonathan Bernard ebbcb87745 Initial thoughts and groundwork for scoping, activation records, and functions. 2009-11-19 09:57:41 -06:00
Jonathan Bernard 9a165a2131 Finished initial version of AbstractSyntax 2009-11-19 09:56:52 -06:00
Jonathan Bernard 577ffcdcb3 Initial commit, Parser and abstract syntax tree skeleton done. 2009-11-18 20:00:29 -06:00