Commit Graph

277 Commits

Author SHA1 Message Date
Mike Cifelli 4c8342a9f7 convert tail call test to kotlin 2018-08-10 18:52:08 -04:00
Mike Cifelli c08edda548 Refactor interpreter tests 2018-08-10 18:39:41 -04:00
Mike Cifelli c2c53e0d0f Add test for input errors 2018-08-10 17:46:26 -04:00
Mike Cifelli eaf80390be Convert the interpreter to kotlin 2018-08-05 10:48:18 -04:00
Mike Cifelli d376c30d7a Clean up the scanner type test 2018-07-24 18:10:19 -04:00
Mike Cifelli 8a970b6797 Clean up data structure code 2018-07-22 11:30:00 -04:00
Mike Cifelli cb0e8a1d15 Clean up scanner tests 2018-07-22 11:10:00 -04:00
Mike Cifelli e60f253552 Convert some scanner tests to kotlin 2018-07-22 10:35:26 -04:00
Mike Cifelli 4c6920eaa1 Convert some more code to kotlin 2018-07-21 17:31:34 -04:00
Mike Cifelli 1df72e7704 Refactor while loops to use iterator 2018-07-21 13:25:10 -04:00
Mike Cifelli 19d7284633 Clean up converted code 2018-07-21 12:17:52 -04:00
Mike Cifelli f2599821e6 Convert stream tests to kotlin 2018-06-05 20:36:04 -04:00
Mike Cifelli 0f34d25e12 Convert streams to kotlin 2018-06-03 09:31:19 -04:00
Mike Cifelli c5fbab6813 Convert tokens to kotlin 2018-05-19 13:56:14 -04:00
Mike Cifelli b4cd5f2fe4 Refactor code 2018-05-19 11:59:51 -04:00
Mike Cifelli ac290d4997 Convert token factory to kotlin 2018-05-19 11:13:28 -04:00
Mike Cifelli 053ca4852c Convert acceptance tests to kotlin 2018-05-06 10:26:55 -04:00
Mike Cifelli c2e4d76700 Convert test utilities to kotlin 2018-05-05 17:01:49 -04:00
Mike Cifelli 28f2351654 Convert numeric equal to kotlin 2018-05-05 16:46:53 -04:00
Mike Cifelli e672247738 Clean up code 2018-05-05 14:18:29 -04:00
Mike Cifelli 9064acd7ed Convert lisp parser to kotlin 2018-05-05 14:14:00 -04:00
Mike Cifelli 61adaffd3c Convert file position code to kotlin 2018-05-05 12:02:43 -04:00
Mike Cifelli 3664a58989 Convert main class to kotlin 2018-03-30 20:54:48 -04:00
Mike Cifelli d7a751ad39 Convert to function types 2018-03-27 20:52:57 -04:00
Mike Cifelli 2177d13397 Convert lisp interpreter builder to kotlin 2018-03-25 20:16:44 -04:00
Mike Cifelli 1b14306a99 Refactor test code 2018-03-25 11:34:34 -04:00
Mike Cifelli daf43b0ea7 Convert error manager test to kotlin 2018-03-25 11:30:36 -04:00
Mike Cifelli 26709a7f9e Convert runtime environment to kotlin 2018-03-25 11:01:24 -04:00
Mike Cifelli b2989809eb Convert util classes to kotlin 2018-03-24 11:43:22 -04:00
Mike Cifelli d74e472780 Convert function table to kotlin 2018-03-24 11:07:59 -04:00
Mike Cifelli fd322a385f Refactor table code / update kotlin version 2018-03-24 10:33:33 -04:00
Mike Cifelli a2f8086b8e Rename source directories
- Refactor SymbolTable
2018-03-23 18:12:47 -04:00
Mike Cifelli 91c4070b53 Convert ExecutionContext to kotlin 2018-03-21 19:49:51 -04:00
Mike Cifelli d172c62e01 Convert table tests to kotlin 2018-03-19 20:16:20 -04:00
Mike Cifelli 426b130e3b Update code formatting rules 2018-03-19 08:13:40 -04:00
Mike Cifelli b5d817a8ac Add conversion comments to pom 2018-03-18 17:57:09 -04:00
Mike Cifelli c04f4b6c51 Convert some test classes to kotlin 2018-03-18 17:42:28 -04:00
Mike Cifelli 0fb64f0a2d Convert error classes to kotlin 2018-03-18 12:45:57 -04:00
Mike Cifelli 5f0cb1aa86 Convert one class to kotlin 2018-03-18 11:39:01 -04:00
Mike Cifelli 74fba08555 Use resource loader for test files 2018-03-17 16:18:26 -04:00
Mike Cifelli b67071a7f2 Move test resources 2018-03-17 14:37:02 -04:00
Mike Cifelli 60e348449b Move resource folders 2018-03-17 14:19:19 -04:00
Mike Cifelli a25141a9b1 Refactor source directories again 2018-03-17 14:18:03 -04:00
Mike Cifelli bd7df920fa Update import arrangement 2018-03-17 10:02:52 -04:00
Mike Cifelli d0cffe7500 Update code formatter 2018-03-17 09:52:53 -04:00
Mike Cifelli 114a3e4309 Refactor source code directories 2018-03-17 09:23:10 -04:00
Mike Cifelli 76cd2b919a Handle dotted list in length function 2018-03-15 18:30:47 -04:00
Mike Cifelli d7f908a01d Refactor append code 2018-03-15 08:25:42 -04:00
Mike Cifelli 9d13c3d892 Disallow appending improper lists 2018-03-14 21:01:39 -04:00
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 568fce3c11 Load lisp language files automatically 2018-01-21 10:32:55 -05:00
Mike Cifelli 3ef8712f2f Use maven version in greeting 2018-01-20 08:34:31 -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 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