Commit Graph

323 Commits

Author SHA1 Message Date
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 ab17d4c60e Static method in SET has been refactored 2017-02-28 15:04:40 -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 544df91c27 Simplified the EQUAL function logic 2017-02-28 12:26:18 -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 5129f6c17b Minor cleanup in SYMBOL-FUNCTION 2017-02-27 14:54:31 -05:00
Mike Cifelli d3e3f52e59 Altered SYMBOL-FUNCTION behavior and cleaned up some code 2017-02-27 14:10:20 -05:00
Mike Cifelli 2ef285e45c Added a few extra unit tests for number prefixes 2017-02-27 13:37:56 -05:00
Mike Cifelli fb35884479 Resolves #7 - Allow prefixing of numbers 2017-02-27 13:34:04 -05:00
Mike Cifelli bf40feadec User defined functions now set up their scope correctly 2017-02-27 12:00:24 -05:00
Mike Cifelli 462e5ea15e Built-in function names are now defined through annotations 2017-02-26 16:47:06 -05:00
Mike Cifelli 8fdaaeb23d Removed duplicate code in SET and SETF 2017-02-26 13:01:47 -05:00
Mike Cifelli 49e145d098 Cleaned up some code 2017-02-26 12:39:08 -05:00
Mike Cifelli e51d275b76 Started added unit tests for the interpreter and main packages 2017-02-26 12:31:27 -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
Mike Cifelli 4f4bc8f71a Added special functions (forms) and refactored internal s-expression predicates 2017-02-25 17:29:37 -05:00
Mike Cifelli b9466d2c5d Cleaned up a parameter name 2017-02-24 16:09:54 -05:00
Mike Cifelli c83db3721c Finished changing car/cdr to first/rest in the code 2017-02-24 16:00:05 -05:00
Mike Cifelli 0855789fde Started changing car/cdr to first/rest, modified acceptance test fixture 2017-02-24 11:07:06 -05:00
Mike Cifelli 496f30cded Added a java recursion library 2017-02-22 14:43:03 -05:00
Mike Cifelli 8cd813ed14 Formatted a source file 2017-02-22 14:38:32 -05:00
Mike Cifelli c55bb21501 Added the FitNesse wiki and a simple acceptance test 2017-02-22 14:33:36 -05:00
Mike Cifelli 6f2802828d Resolves #5 - Added FitNesse to the project 2017-02-22 14:11:40 -05:00
Mike Cifelli 013707e11a Static import of 'eval' 2017-02-21 13:59:56 -05:00
Mike Cifelli 0c3d3ae024 Resolves #1 - Added the IF Special Form 2017-02-21 12:35:47 -05:00
Mike Cifelli 35550c46ac Updates to the unit test framework 2017-02-15 09:29:57 -05:00
Mike Cifelli fa45434228 Added a tail recursive compound interest function 2017-02-14 16:55:48 -05:00
Mike Cifelli f76c587338 A lisp function to compute compound interest and unit tests 2017-02-14 15:24:38 -05:00
Mike Cifelli ea57fc8bae Added unit tests for RuntimeEnvironment 2017-02-14 14:28:47 -05:00
Mike Cifelli b3ae5c9122 Added decorators for output text 2017-02-11 13:33:34 -05:00
Mike Cifelli ce1547d71a Formatted and cleaned some code 2017-02-11 10:51:37 -05:00
Mike Cifelli 6fa132313d Refactored error severity 2017-02-11 10:42:07 -05:00
Mike Cifelli bdcb2227c9 Removed RuntimeExceptions and associated logic 2017-02-09 12:09:51 -05:00
Mike Cifelli 1a25ddc35f Refactored the lisp interpreter builder and some error handling 2017-02-09 11:00:23 -05:00
Mike Cifelli daf51fa198 Added a unit test for Characters 2017-02-08 12:56:24 -05:00
Mike Cifelli b55738231c Added unit tests for the RuntimeEnvironment 2017-02-07 14:38:21 -05:00
Mike Cifelli 65069561b8 Formatted LispInterpreterBuilderImpl 2017-02-06 13:47:05 -05:00
Mike Cifelli 993df541aa Organized imports in several files 2017-02-06 13:44:35 -05:00
Mike Cifelli b6d717ec1c Formatted several files 2017-02-06 13:43:27 -05:00
Mike Cifelli 913fd031c6 Only allow a single interpreter to be built
Renamed Environment to RuntimeEnvironment
2017-02-06 13:39:05 -05:00
Mike Cifelli 4719e14d7f Added unit tests for the FunctionTable and ExecutionContext 2017-02-06 12:02:19 -05:00
Mike Cifelli c2a373dc85 Added the following built-ins: AND & OR 2017-02-05 16:00:56 -05:00
Mike Cifelli a9a47be6cd Allow DEFUN and LAMBDA with an empty body 2017-02-04 15:38:47 -05:00
Mike Cifelli 0a5228d5a7 Update argument validation and added unit tests
Fixed some bugs in LET and LAMBDA

Refactored the code in UserDefinedFunction
2017-02-04 13:51:10 -05:00
Mike Cifelli d7ca5d09da Added unit tests and refactored the let form
Wrote a lisp program to calculate the number of bi-weekly paydays in a year
2017-02-04 12:03:31 -05:00
Mike Cifelli db2817f7be Refactored the symbol table code 2017-01-30 16:12:38 -05:00
Mike Cifelli d3fc8f9812 Refactored the function table logic 2017-01-29 14:33:46 -05:00