Sage Vaillancourt
c37a12e244
Rename main() files.
...
Tweak checkTypes() to expect a closing semicolon.
2023-03-03 10:57:04 -05:00
Sage Vaillancourt
6176e9eb4b
Improve lambda param handling.
...
Add (rand)
Clean up testing output.
tic-tac-toe.pbl QOL changes
2022-10-25 14:39:20 -04:00
Sage Vaillancourt
672cdb692a
Display parseEval source in error messages.
2022-10-25 13:21:04 -04:00
Sage Vaillancourt
ce3472cb90
Add simple varargs.
2022-04-25 13:39:03 -04:00
Sage Vaillancourt
d40e551933
Add dedicated plfunc directory.
...
Contains most native pl functions.
Consolidated pebcom into pebbleobject.
Broke out several pc (STANDALONE) and plstring functions into their own files.
2022-04-22 08:57:02 -04:00
Sage Vaillancourt
11525e9531
More (table) use in Forbble2.
...
Clean objects when adding duplicates to a hash table.
Type-check hash functions.
Add (switch) (first-where) and (match) to lib.pbl.
Support escaping in (standalone) strings.
2022-04-19 15:18:29 -04:00
Sage Vaillancourt
8e30b24e8f
Start work on hash-table objects.
2022-04-18 16:59:35 -04:00
Sage Vaillancourt
4ea3b1d36d
Start work on forbble2.
...
Keep the old version around for now.
Add (indexOf) and (split) to lib.pbl
Distinct addToEnv() and setInEnv().
Add .clangd to gitignore.
2022-04-18 15:37:34 -04:00
Sage Vaillancourt
04b7e7b64a
Centralize/simplify file-reading.
...
Handle comments at the token level.
2022-04-18 11:18:43 -04:00
Sage Vaillancourt
e326af38f8
Allow number indexing of struct fields.
...
Better error messages on failed struct access.
2022-04-13 16:57:58 -04:00
Sage Vaillancourt
96d759a7e6
Merge branch 'master' of https://gitlab.com/sagev9000/pebblisp
2022-04-11 20:44:38 -04:00
Sage Vaillancourt
48b1f3c54b
Correcting some REPL behavior.
...
Add BuildListNamed() macro for optimized list creation.
2022-04-11 20:43:45 -04:00
Sage Vaillancourt
7b014ebafa
Fix (reduce) with lambdas.
...
Fix await memory leak.
Allow running specific tests with --run-test x (for valgrinding).
2022-04-11 16:38:49 -04:00
Sage Vaillancourt
7a0433aa68
Add funcyEval() for equivalent Func/Lambda eval.
...
Still a bit buggy.
Some general renaming for clarification.
2022-04-07 01:20:59 -04:00
Sage Vaillancourt
4d215b1b79
Add simple sigint handler for repl.
...
inline evalLambdaArgs() and evalBuiltIns()
2022-04-06 16:55:49 -04:00
Sage Vaillancourt
abaf3a1ddc
Use plfunc name in type-error messages.
...
Previously used the name of the C function.
2022-04-06 09:55:31 -04:00
Sage Vaillancourt
deca6045ff
More useful type-error messages.
...
BAD_PARAMS_ON -> BAD_PARAMS
Replace printType() with getTypeName().
Use --ignore-config in testing.
Add type-checking (and missing clone) to (await).
2022-04-06 09:51:53 -04:00
Sage Vaillancourt
fc4f0bef28
Move main() etc. into main.c
2022-04-05 20:05:58 -04:00
=
323b3113d7
Patch to compile for Pebble devices.
...
Mostly throwing ifdef Standalone all over the place.
2022-04-02 11:51:06 +01:00
Sage Vaillancourt
1a13fe4814
Add `unused` macro.
...
Prefer malloc() over calloc() in env.c
2022-04-01 15:07:19 -04:00
Sage Vaillancourt
2fb6643326
A bit of cleanup and warning-hushing.
2022-03-31 14:12:52 -04:00
Sage Vaillancourt
ac04fa1a96
Make pointer-printing in (penv) optional.
...
Colorize (penv) output.
2022-03-31 13:23:45 -04:00
Sage Vaillancourt
fb2e1811ff
Rename possessive to structAccess.
...
Gives better error messages.
Use typical type-checking in structAccess.
Make checkTypes() more global, and move to pebblisp.c
2022-03-31 12:09:23 -04:00
Sage Vaillancourt
32e21bf758
Replace (struct's field) with (struct.field)
...
It was cute, but hard to read in space-delimited lists.
Convert (map) to a normal pl function.
Add trueObject() falseObject() macros.
2022-03-31 10:29:10 -04:00
Sage Vaillancourt
d76e3f5341
Make (def) a normal function.
...
Remove (defe) for now.
2022-03-30 16:32:42 -04:00
Sage Vaillancourt
5779ad5427
Define function symbols at their declaration.
2022-03-29 19:00:01 -04:00
Sage Vaillancourt
af7a2e6265
Cleanup and a couple (micro) optimizations.
2022-03-28 23:51:05 -04:00
Sage Vaillancourt
66a07e395c
Add some runtime type-checking.
...
Adjust simple-ops structure.
2022-03-28 13:19:44 -04:00
Sage Vaillancourt
9a454e6a30
Small optimizations and cleanup.
2022-03-27 00:03:34 -04:00
Sage Vaillancourt
5226640fb6
Some stringing cleanup and unused code removal.
2022-03-26 12:54:38 -04:00
Sage Vaillancourt
581dfed359
Combine fn macros.
...
Toying with storing fn types in the code.
2022-03-24 23:58:54 -04:00
Sage Vaillancourt
0a649095ab
Start switch to array-based functions.
...
No more mandatory two-params, though several things are still busted.
2022-03-24 16:59:59 -04:00
Sage Vaillancourt
d743970b1a
Tweak (eval) to accept SLIST arguments.
...
Tweak implicit-cat detection.
Explicit empty-string notation in test display.
A couple more tests.
2022-03-23 01:00:11 -04:00
Sage Vaillancourt
5a622736d3
Handle more testing stuff statically.
...
Remove fnt and just have centralized fn.
Longer printObj temp string.
`?` now shows tests.
Add more internal testing.
2022-03-22 11:45:02 -04:00
Sage Vaillancourt
097cbf6a5c
Start some internal testing frameworking.
2022-03-21 12:33:57 -04:00
Sage Vaillancourt
3bf65577c0
Add help text for STANDALONE.
...
Pull most user functions into the new plfunc.
Could integrate some tests directly into pl with --run-tests
2022-03-20 03:50:43 -04:00
Sage Vaillancourt
30e8c87e66
General code clean-up.
2022-03-19 22:25:20 -04:00
Sage Vaillancourt
711719289f
Several changes.
...
Add `reduce` and `islist`.
- Reduce is broken with lambdas for some reason.
Remove `switch` from lib (breaks `penv`).
More detailed lambda to-stringing.
A bit of fixing for lambdas that return lambdas.
Re-org Object fields for simpler visual debugging.
Let `cat` work with one argument.
Add prompt option for `inp`.
Some more refinement of the webby.pl example.
2022-03-16 16:50:55 -04:00
Sage Vaillancourt
7faf2ebbb3
Add POST method.
...
Rename `addroute` to `get`.
2022-03-15 23:22:28 -04:00
Sage Vaillancourt
f37969418d
Add simple web server implementation.
...
Adjust global Environment implementation.
Example `webby.pl` is now a simple server program.
Only limit stringNObj outside of STANDALONE implementations.
Larger catObjects sizes.
Parsing files ignores semicolons inside of quotes.
2022-03-15 21:48:04 -04:00
Sage Vaillancourt
1d5621923c
Further flesh-out structs.
...
Temporarily disable http due to buggy Ubuntu libmicrohttpd.
Add a way to access their fields with `'s`.
- Uses some fairly hacky parseAtom additions. Needs to be refined.
Add structCapacity to Environment.
Add global Environment pointer.
Use structDef indexes instead of direct pointers.
- Easier to increase capacity this way
strcpy struct field names
2022-03-15 15:27:02 -04:00
Sage Vaillancourt
11f39bf136
Add simple webserver functionality.
2022-03-14 23:46:20 -04:00
Sage Vaillancourt
e2c977e95a
Finally some consistent styling.
...
Centralized printf/printd defines in object.h
Removed null/isList checking from FOR_POINTER_IN_LIST
2022-01-07 16:55:03 -05:00
Sage Vaillancourt
49bf4aa1a2
Add system calls and some char processing.
...
Color REPL error output.
Add 'clear' shorthand to REPL.
Add basic switch to lib.
2021-12-10 16:38:44 -05:00
=
3d8e2d30d4
Add LOW_MEM and SIMPLE_ERRORS flags for aplite.
...
LOW_MEM drops some functionality (like `defe`) for very low memory devices like
aplite. SIMPLE_ERRORS is enabled when compiling with LOW_MEM, and overrides the
new error-with-context functionality with older, less intensive methods.
Also marked more code for standalone compilation only.
2021-07-21 19:31:40 +01:00
Sage Vaillancourt
3d48c2eae0
Added `loadfile` to standalone.
...
Tests now manually load the library file, instead of needing it to be
installed.
2021-07-04 21:49:41 -04:00
Sage Vaillancourt
7c7a68df5f
Add `iserr`, `defe`. Fix `eval`. Increase env size
...
`iserr` is a basic type-check like `isnum`
`defe` adds a string to the environment as the equivalent symbol
`eval` can take in variables or functions, instead of just raw strings
Broke type-printing into its own function
Errors maxing out an environment. Likely extending incorrectly
2020-11-06 15:07:12 -05:00
Sage Vaillancourt
e0153528a1
Take input in standalone. Print numbers as chars
2020-11-02 16:38:37 -05:00
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