Commit Graph

94 Commits

Author SHA1 Message Date
Mike Cifelli ac365918b2 Implement append built in function 2018-03-14 20:32:01 -04:00
Mike Cifelli 62f351ec62 Add function for displaying execution context
- Use lambda character in addition to keyword
2018-02-11 14:17:49 -05:00
Mike Cifelli 99ae99a8ab Create symbols dynamically 2018-01-27 20:02:03 -05:00
Mike Cifelli 735f1d584a Add remainder function 2018-01-13 08:52:29 -05:00
Mike Cifelli 6a4d19517e Add modulo function 2018-01-12 21:04:59 -05:00
Mike Cifelli a9c13610a2 Perform TCO on numerous functions 2017-11-18 18:01:00 -05:00
Mike Cifelli 62b2653b2c Allow for tail calls in recurse argument list 2017-11-18 14:54:53 -05:00
Mike Cifelli 1995b23f42 Refactor code 2017-11-18 10:36:24 -05:00
Mike Cifelli e0e726d6c0 Fix apply for macros 2017-11-18 10:21:57 -05:00
Mike Cifelli aeb3074750 Restore scope properly after errors 2017-11-18 09:24:45 -05:00
Mike Cifelli e2272fa976 Improve recur behavior 2017-11-17 19:14:59 -05:00
Mike Cifelli 6cf017734f Narrow the behavior of RECUR 2017-11-17 17:57:14 -05:00
Mike Cifelli b4229c6ac1 Implement RECUR 2017-11-16 20:53:55 -05:00
Mike Cifelli e8e9d2e12d Update formatter settings 2017-11-12 13:46:15 -05:00
Mike Cifelli 7de348d759 Remove wildcard imports 2017-11-12 09:42:25 -05:00
omicron 3ebd5d49a9 Update files for eclipse oxygen 2017-11-12 08:37:39 -05:00
Mike Cifelli c8c9a477b7 Refactor common test set up and tear down code 2017-07-19 15:23:15 -04:00
Mike Cifelli a8620307c9 Clean up code 2017-03-24 09:36:44 -04:00
Mike Cifelli 23dd1c0654 Increase test coverage and refactor code 2017-03-23 12:14:44 -04:00
Mike Cifelli 058e937c3e Refactor main interpreter code
Fixed several minor issues

Only print the last value when interpreting a file

Resolves #4
2017-03-21 15:03:16 -04:00
Mike Cifelli a86832f9cb Switch from ant to maven 2017-03-15 13:37:39 -04:00
Mike Cifelli a21114ac7c Add a GENSYM-EQUAL function for unit testing macros
Some macro definitions were refactored along with their associated
unit tests.
2017-03-13 14:43:31 -04:00
Mike Cifelli b2d6f21f88 Add tests for macros 2017-03-13 10:15:05 -04:00
Mike Cifelli c2d722d5ab Fix nested comma handling in a backquote 2017-03-12 14:18:37 -04:00
Mike Cifelli e89a6f2dde Add unit tests for the backquote facility
Renamed BackTick to Backquote globally.
2017-03-12 12:19:45 -04:00
Mike Cifelli 698305f07f Add the backtick facility
Resolves #20
2017-03-11 15:41:07 -05:00
Mike Cifelli 655f49e612 Add DEFMACRO special function
Resolves #16
2017-03-10 15:08:42 -05:00
Mike Cifelli e78e18df98 Add a simple GENSYM function 2017-03-10 13:14:16 -05:00
Mike Cifelli 87eb0204f5 Remove SETF function 2017-03-07 16:41:26 -05:00
Mike Cifelli 736e230de9 Add LET* special function 2017-03-07 13:26:24 -05:00
Mike Cifelli d1060a8aad Add aliases for several functions 2017-03-07 13:15:40 -05:00
Mike Cifelli 77a341a1a7 Add more advanced lisp objects
Added a class to compute compound interest.

An alias for FUNCALL has been added: CALL

Refactored some acceptance tests to load code from files.
2017-03-06 16:52:06 -05:00
Mike Cifelli 8a719c8e44 Add unit test for LOAD 2017-03-05 10:41:49 -05:00
Mike Cifelli 04cb46e94d Store the base directory for an interpreted files
A bug was resolved where some functions were getting a null
ErrorManager.

A reset funtion was added to RuntimeEnvironment.

Resolves #15
2017-03-05 10:20:31 -05:00
Mike Cifelli 311a3b4036 Cleaned up code and tests 2017-03-03 15:06:49 -05:00
Mike Cifelli 503b19a5e1 Resolves #14 - Load now keeps track of directories 2017-03-03 12:56:06 -05:00
Mike Cifelli ba53448c9d Exception checking unit tests were refactored 2017-03-03 12:07:23 -05:00
Mike Cifelli d55ebdd22f Resolves #13 - Exclusion based on type in ArgumentValidator 2017-03-02 11:39:07 -05:00
Mike Cifelli 2bd0c1a674 Major Refactor - Static constants and test case names 2017-03-02 09:54:23 -05:00
Mike Cifelli ba203d34b9 dlambda was converted for multiple method classes
Added several unit tests, including a failing one for CASE
Added an acceptance test for dlambda
2017-03-01 16:33:06 -05:00
Mike Cifelli 64e18fe076 Resolves #12 - &rest keyword added to lambda lists
Added unit tests and cleaned up some code
The setup for acceptance tests now cleans up the environment
2017-03-01 11:11:59 -05:00
Mike Cifelli 42191ec69d Parts of CASE and COND were refactored
Updated the terminology used in the code
Added test cases
Changed the format of error/warning messages
2017-02-28 16:16:43 -05:00
Mike Cifelli 4253145383 A few test cases were added for CASE 2017-02-28 15:07:37 -05:00
Mike Cifelli 05f75b627b Resolves #11 - The CASE special function has been added
Refactored some unit tests
2017-02-28 15:01:05 -05:00
Mike Cifelli d2dfe23083 Resolves #10 - The equality predicates have been refactored 2017-02-28 11:54:19 -05:00
Mike Cifelli 50a3f3be67 Resolves #6 - PROGN Special Function (Form) 2017-02-27 15:36:17 -05:00
Mike Cifelli d3e3f52e59 Altered SYMBOL-FUNCTION behavior and cleaned up some code 2017-02-27 14:10:20 -05:00
Mike Cifelli bf40feadec User defined functions now set up their scope correctly 2017-02-27 12:00:24 -05:00
Mike Cifelli 1fed0433e5 Formatted a source file 2017-02-25 19:12:34 -05:00
Mike Cifelli 78c7bf4d9c Added DEFINE-MACRO for user defined special functions (forms) 2017-02-25 19:11:31 -05:00