Sage Vaillancourt
963996f3a0
Add (eval) function, for evaluating strings
...
Added a few tests for this new function
2020-11-02 15:46:17 -05:00
Sage Vaillancourt
875228a2b6
Add `isstr` to type-checking collection
2020-11-02 15:29:03 -05:00
Sage Vaillancourt
78f5b98f9f
Don't print newlines on (prn) or last expr in file
2020-11-02 15:23:04 -05:00
Sage Vaillancourt
058bd302df
`def` can bind multiple vars at once
...
For example `(def (a b) (10 15))` binds `a` to 10, and `b` to 15
2020-11-02 13:42:37 -05:00
Sage Vaillancourt
3319fdf2c3
Lambdas return only last item. EOL file comments
...
Added (penv) to print the current environment
Changed "Duplicate" test to work with new Lambda structure
2020-11-02 12:40:42 -05:00
Sage Vaillancourt
f9cb2d544a
More robust comment processing
2020-11-02 07:57:13 -05:00
Sage Vaillancourt
54e2e09c5c
Add explicit (print) function
2020-10-30 14:36:44 -04:00
Sage Vaillancourt
99fc088d3e
Try to be less strict about whitespace in files
2020-10-30 09:52:46 -04:00
Sage Vaillancourt
b5648963a7
Correct string equality check
2020-10-30 09:07:09 -04:00
Sage Vaillancourt
b443a54822
Add `pre` for prepending to lists
2020-10-29 11:23:35 -04:00
Sage Vaillancourt
9486854267
Basic file execution
2020-10-29 11:18:06 -04:00
Sage Vaillancourt
7b649fdf16
Add `isnum` and some tests
2020-10-28 18:09:57 -04:00
=
68e062e2e0
Add TYPE_OTHER, subscriptions, and PebbleObjects
...
Move most file-local variables from calc.h to calc.c (so calc.h can be included)
Quick hack to get simple TYPE_LAMBDA evaluated
Add pebcom files for time/vibe/eventually battery etc. functions
Add TYPE_OTHER, so that pebble-specific (and potentially other) objects can be used in PebbLisp
Created PebbleObject/PebbleType to work as a sort of tagged pointer, to be used as a TYPE_OTHER object
Add some functions for creating/editing windows and textlayers from within PebbLisp
Added subscribe(), enabling lambdas to be run at set time intervals
2020-08-09 20:03:02 +01:00
=
5644a46c3c
Add OTHER type. Auto-open script 0 on code-send
2020-08-03 16:21:04 +01:00
=
a5ecb1b3aa
Added TODO. Text size adjusts with code length
...
Can handle hex and binary. Other cleanup
All tests pass
2020-08-02 21:16:26 +01:00
=
81d5a545cf
Some new list functions and better error handling
...
New list functions include (append) (at) (rest) and (reverse). Single quotes now supported for strings.
2020-05-28 15:28:28 +01:00
=
44c9c7a8a1
Use malloc'd strings. Add filter function
2020-05-22 06:16:45 +01:00
=
7ad541eb02
Variableize Makefile and adjust pebble tokens
...
Also made repl() a void function
2020-05-20 01:37:15 +01:00
=
8bdf42f6fd
Revert "Add basic struct notion and tests."
...
This reverts commit 95762976c5
.
Turns out these structs are not implemented well.
2020-05-18 02:22:39 +01:00
=
95762976c5
Add basic struct notion and tests.
...
Don't auto-run tests in debug mode. Some new tests fail for list-related reasons (some work in the REPL).
2020-05-18 00:00:19 +01:00
=
80967b9275
Broke lib-type code into array. New numparse errs
2020-05-16 19:31:14 +01:00
=
c97cbe850c
Ensure plain lists have elements evaluated
...
Add relevant tests. Add new doc comments. Some code shifting.
Tests pass. Valgrind is clean.
2020-05-16 15:46:19 +01:00
=
efb151d0ef
All known memory leaks handled!
...
Watch the commented `if` -127,7 +137,10 @ Object eval for weird behavior
2020-05-16 04:22:08 +01:00
=
f488e29c54
Implement liberal string copying and destruction
2020-05-15 21:28:16 +01:00
=
58705b4aa9
Cat with `+`; Related tests. Reordered pebblisp.c
2020-05-15 05:43:08 +01:00
=
1c82c6f726
Fixed some parsing (tests pass!). Some clean up.
2020-05-15 04:51:59 +01:00
=
8a45444c52
Some clean-up. Removed NO_REPL (redundant via cli)
2020-05-11 06:15:44 +01:00
=
60d6022d46
Multi-statements in cmdline args. Added tests.
...
Commented out unnecessary deleteEnv() in main(). Was segfaulting. May be a bigger bug, there.
2020-05-10 19:16:50 +01:00
=
340af00a29
Enable multi-statements in one line. Break out env
2020-05-10 18:52:22 +01:00
=
263af226b7
Improved testing. Added `spent` and '"' to pebble
...
Tests automatically run on `make`. Removed breaking cleanObject() in parseEval()
2020-05-10 17:51:46 +01:00
=
d83fa29bb4
Began `cat` code and added `spent` demo func
2020-05-10 07:27:59 +01:00
=
874420b3d5
Adjusted func types to account for possible eval
...
Basic ops work with lists. For example (+ 5 (10 15)) => (15 20)
2020-05-10 04:53:10 +01:00
=
d9c860805f
Turns out recursion worked the whole time.
...
Fixed issue with too-small REPL input buffer...
2020-05-10 03:32:26 +01:00
=
cb945a1e41
Seem to have resolved bad nesting issue
...
copyList() now properly deep-copies.
Recursive functions still not working.
2020-05-10 01:39:01 +01:00
=
96abccec7e
Lead on nested function borkage (pebblisp.c:222)
2020-05-09 19:57:21 +01:00
=
3e62d57166
Commands can be issued as args to the executable
2020-05-08 17:08:14 +01:00
=
29aa001de8
Clean-up. Added startList(). Fixed `T` and `F`
2020-05-08 17:00:14 +01:00
=
1da347e612
Added more error-catching
2020-05-08 07:29:06 +01:00
=
73bfffcf55
Clean up printf cruft. Begin adding doc comments
2020-05-08 05:32:08 +01:00
=
3843e34a51
Big mess, but something in there got `map` working
2020-05-08 03:37:54 +01:00
=
a286943984
Busted `map` with less malloc
2020-05-08 01:32:01 +01:00
=
4bc3337dcd
Better handling of raw lists
2020-05-06 16:58:09 +01:00
=
7906e55220
Slight clean-up and error-catching
2020-05-06 08:09:25 +01:00
=
80ca6e1960
Add Object helpers (less redundancy). Add new errs
2020-05-06 07:12:58 +01:00
=
f2c09c0818
Some ops support several args e.g. (+ 1 2 3)
2020-05-06 06:00:40 +01:00
=
42c9f24f85
Added PC makefile, and defines for debug on/off
2020-05-06 05:47:14 +01:00
Sage Vaillancourt
17a85a3931
Script UI now mostly added
2020-05-06 04:33:24 +01:00
Sage Vaillancourt
359d8ed439
Lambdas begin to work!
2020-05-06 04:33:24 +01:00
Sage Vaillancourt
a3bf8ab864
Decent `if` and `def` support!
2020-05-06 04:33:24 +01:00
Sage Vaillancourt
77ff84fd30
Before breaking lists
2020-05-06 04:33:24 +01:00