Commit Graph

145 Commits

Author SHA1 Message Date
Simon Forman ecf79b9de0 pop_any(), pop_int(), and add 2023-02-03 15:46:52 -08:00
Simon Forman 3ae0e5b3a6 Interpret symbols.
C has function pointers, we can put them in the Gperf wordlist, this
makes the interpreter really simple.  No need for a dictionary (yet).

Implementing the basis functions will be a bit of a slog, and
I still have to implement definitions, but this is starting to shape up
nicely.
2023-02-03 11:48:32 -08:00
Simon Forman f2b2b92c2c Yet more minor cleanup. 2023-02-03 09:39:02 -08:00
Simon Forman 7df01dfe5e More minor cleanup. 2023-02-03 09:30:11 -08:00
Simon Forman 64eb28a648 Minor cleanup. 2023-02-03 09:27:30 -08:00
Simon Forman 8647f40895 newJoyList 2023-02-03 09:18:32 -08:00
Simon Forman fb40b11fb0 Can haz function pointers in my worldist. 2023-02-03 08:13:57 -08:00
Simon Forman cd98e01efc typedef for the win! 2023-02-02 20:45:28 -08:00
Simon Forman f74a0fe0fa make clean rule 2023-02-02 17:02:55 -08:00
Simon Forman 4be1cc5767 Use gperf to save memory.
We check terms to see if they're in the wordlist, if they are we reuse
the string from the wordlist instead of allocating a new one.

(I've always wanted to use Gperf so I'm pretty stoked about this!)
2023-02-02 16:58:44 -08:00
Simon Forman 0a66f2b804 Ignore object files. 2023-02-02 16:14:11 -08:00
Simon Forman 8dcaee342d minor cleanup 2023-02-02 16:13:15 -08:00
Simon Forman a2a18a1d05 Gperf. 2023-02-02 16:12:59 -08:00
Simon Forman 70fc8c612c Minor cleanup. 2023-02-02 13:22:11 -08:00
Simon Forman e342fb31de True and False values. 2023-02-02 13:06:07 -08:00
Simon Forman ab8b26d6f0 Copyright, etc. 2023-02-02 11:14:58 -08:00
Simon Forman dee703ea52 Fix bug with no trailing spaces.
Gotta update that pointer, eh?
2023-02-02 10:58:03 -08:00
Simon Forman e393016a32 I was post-incrementing when I should have been pre-incrementing!
D'oh!
2023-02-02 08:52:27 -08:00
Simon Forman b759582439 Simple terms work. Problem is with sub-lists. 2023-02-02 08:36:13 -08:00
Simon Forman ebae69c391 Parsing isn't this hard? 2023-02-02 08:32:45 -08:00
Simon Forman 9356e5394b Um, don't do that.
I wonder where the data was winding up?
2023-02-01 20:36:18 -08:00
Simon Forman 288142c01a Minor cleanup. 2023-02-01 20:34:49 -08:00
Simon Forman bb41bf619d Remove separate parser code. 2023-02-01 20:34:04 -08:00
Simon Forman 5d47512bf5 Print true, false, and lists. 2023-02-01 20:33:04 -08:00
Simon Forman b09055f299 Print ints. 2023-02-01 20:28:24 -08:00
Simon Forman 202747cfbb Print list. 2023-02-01 20:09:03 -08:00
Simon Forman cd0bfc09d2 Text to expr coming along. 2023-02-01 19:26:50 -08:00
Simon Forman 8ae9851c0f Need to be able to store a string. 2023-02-01 18:37:10 -08:00
Simon Forman 66cbbac1cc Minor cleanup. 2023-02-01 18:35:11 -08:00
Simon Forman 6b87e46e00 Minor cleanup.
Don't pass NULL to strpbrk().
2023-02-01 17:39:37 -08:00
Simon Forman 5118881e6c Handle stretches of blanks.
Don't create zero-length strings.
2023-02-01 17:25:54 -08:00
Simon Forman 9762502ea6 Nice skeleton of parser. 2023-02-01 17:17:35 -08:00
Simon Forman 6694d3d596 Almost there on parsing. 2023-02-01 16:57:46 -08:00
Simon Forman 2f71db945a trim_leading_blanks 2023-02-01 16:40:14 -08:00
Simon Forman b8b37af1a4 Let's parse. 2023-02-01 16:02:19 -08:00
Simon Forman e32d1d22e6 Don't version the binary. 2023-02-01 15:26:07 -08:00
Simon Forman e44dd3c9e6 I think I'm doing this right? 2023-02-01 15:25:21 -08:00
Simon Forman 5a32c649f9 minor style glitch 2023-02-01 14:56:11 -08:00
Simon Forman e211fff94f Minor cleanup. 2023-02-01 14:55:21 -08:00
Simon Forman 28fa767593 Messing around with C. 2023-02-01 14:23:54 -08:00
Simon Forman 8cb04fc72d At this point...
...I'm just relearning C semantics.  (And they are garbage, as is widely
known.)

I don't think there's much point to this (at the moment) because I don't
want to relearn C (at the moment) and Nim is available (at the moment.)

Really, I'm trying to do away with the entire relationship of C et. al.
to the underlying machine.  (For instance, Nim gives you a much nicer
relationship, without the vast distance that, say, Python imposes.)  I
should really look at other compiled languages, like Ocaml or Julia.
2022-09-22 20:43:25 -07:00
Simon Forman ae864909ee Create an int and add ints. 2022-09-22 20:08:24 -07:00
Simon Forman 5caa685bab Try using GC_register_finalizer? 2022-09-22 19:34:57 -07:00
Simon Forman 5ceab61ca1 Maybe this is the right thing to do?
https://stackoverflow.com/questions/59489221/using-the-gmp-library-with-boehms-garbage-collector
2022-09-22 19:00:40 -07:00
Simon Forman 813c5c0a23 What would a little C Joy look like?
Let's use GMP for ints and Boehm GC.
2022-09-22 17:26:28 -07:00