Commit Graph

171 Commits

Author SHA1 Message Date
Mike Cifelli 0825d1ee96 Increase test coverage 2017-11-26 15:11:41 -05:00
Mike Cifelli 314053a9eb Improve performance slightly 2017-11-26 11:04:53 -05:00
Mike Cifelli 10ff762647 Increment version 2017-11-24 11:11:22 -05:00
Mike Cifelli 5b9fdd5618 Complete tail call optimization
Resolves #2 and #3
2017-11-24 10:56:02 -05:00
Mike Cifelli 0fd3a70171 Perform TCO for AND & OR 2017-11-24 10:07:49 -05:00
Mike Cifelli f3923cadc0 Refactor list parsing code 2017-11-19 13:44:58 -05:00
Mike Cifelli a8d8d6696c LENGTH no longer creates a new instance 2017-11-19 11:17:32 -05:00
Mike Cifelli 1301e0a227 Rename variable for clarity 2017-11-19 10:58:13 -05:00
Mike Cifelli 0f00e35518 Refactor code 2017-11-19 10:54:51 -05:00
Mike Cifelli 1fbc74f3ac Add ability to read large lists 2017-11-19 10:53:21 -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 eb80afb21d Update lanterna version 2017-11-18 10:50:55 -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 efb0329fda Implement TCO for cons cell toString 2017-11-12 16:40:49 -05:00
Mike Cifelli e8e9d2e12d Update formatter settings 2017-11-12 13:46:15 -05:00
Mike Cifelli 6cd5fb66a4 Implement TCO for the length function 2017-11-12 13:27:04 -05:00
Mike Cifelli 7de348d759 Remove wildcard imports 2017-11-12 09:42:25 -05:00
Mike Cifelli 84ccac0edb Improve interpreter performance slightly 2017-04-13 09:07:30 -04:00
Mike Cifelli 63fd890ac6 Add history feature to the terminal
The history is accessed through the up/down arrow keys.

Resolves #8
2017-04-04 15:37:57 -04:00
Mike Cifelli 243f8a83ac Add terminal history class 2017-04-04 07:56:35 -04:00
Mike Cifelli eb82a25f64 Increase test coverage 2017-03-24 09:29:19 -04:00
Mike Cifelli 111dd06d6f Add unit tests 2017-03-23 18:48:37 -04:00
Mike Cifelli 52762a6152 Add and refactor unit tests 2017-03-23 16:14:26 -04:00
Mike Cifelli 23dd1c0654 Increase test coverage and refactor code 2017-03-23 12:14:44 -04:00
Mike Cifelli 79fb8b633b Fix output interfering with input
Refactored some code
2017-03-22 15:26:00 -04:00
Mike Cifelli 228b4b1793 Refactor stream code and add unit tests 2017-03-22 14:08:22 -04:00
Mike Cifelli b298e118e3 Add colors to the interactive interpreter 2017-03-22 11:26:53 -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 5cb6212d2a Fix terminal resize issues 2017-03-21 12:07:22 -04:00
Mike Cifelli a8eff1ad70 Clean up terminal code 2017-03-21 09:25:40 -04:00
Mike Cifelli fc96894d14 Fix text insertion at the end of the buffer 2017-03-20 16:20:28 -04:00
Mike Cifelli 38710e21bf Improve terminal performance 2017-03-20 11:18:36 -04:00
Mike Cifelli cef7be6c25 Add comments to broken code 2017-03-19 17:32:44 -04:00
Mike Cifelli ad173d06a9 Fix issues when input pushes past end of buffer
A few issues still remain:

- Inserting text pushes the remainder of the input to a new line
  at the end of the buffer.

- Resizing the terminal height causes numerous issues.
2017-03-19 17:17:34 -04:00
Mike Cifelli 38ab1144fb Clean up terminal code and unit tests
The terminal unit tests were updated so that they don't rely on an
arbitrary delay.
2017-03-19 12:54:35 -04:00
Mike Cifelli 072a432026 Hide cursor when printing output 2017-03-18 16:55:35 -04:00
Mike Cifelli 31ca72e534 Add a crude interactive terminal implementation 2017-03-18 16:49:46 -04:00
Mike Cifelli 462673ba64 Add line wrapping support to the terminal 2017-03-17 19:40:56 -04:00
Mike Cifelli c533b7c1d9 Start experimenting with lanterna 2017-03-17 16:07:25 -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 f2a481952d Add @Override annotations and clean up code 2017-03-13 09:58:30 -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