Commit Graph

325 Commits

Author SHA1 Message Date
Simon Forman 6e6e52d206 Don't assert defs twice.
Each definition is getting parsed with the name of the next one as part
of its body, then the next one fails to parse and the thing backtracks.
So each definition (but the last) gets asserted twice.

    def(--,[1,-,?])
    def(--,[1,-])
    def(?,[dup,bool,++])
    def(?,[dup,bool])
    def(++,[1,+,anamorphism])
    def(++,[1,+])
    def(anamorphism,[[pop,[]],swap,[dip,swons],genrec,app1])
    def(anamorphism,[[pop,[]],swap,[dip,swons],genrec])
    def(app1,[grba,infrst,app2])
    def(app1,[grba,infrst])
    def(app2,[[grba,swap,grba,swap],dip,[infrst],cons,ii,app3])
    def(app2,[[grba,swap,grba,swap],dip,[infrst],cons,ii])

...and so on.
2020-01-25 16:13:06 -08:00
Simon Forman 1ecb5be278 Change back to CLP(FD) semantics.
Minor changes to parser to make it less logical but a little firmer.
(E.g. ints can't be backtracked into becoming symbols!)
2020-01-25 15:50:50 -08:00
Simon Forman 36ec93e46b Docs and minor cleanup to the grammar. 2020-01-25 14:35:44 -08:00
Simon Forman 0588496ca5 Minor cleanup. 2019-12-03 08:41:42 -08:00
Simon Forman fdf0339e16 Make parser REs into module-level "constants". 2019-12-02 14:26:07 -08:00
Simon Forman 39a0e73fac Some helper scripts for windows. 2019-12-02 14:14:38 -08:00
Simon Forman 57446a1179 Minor docs update. 2019-12-02 14:13:50 -08:00
Simon Forman eb591d27e0 Debugging this sucks.
Even with the RISC emu GUI.

Redesign vm?  Add more tooling?  Use MetaII?

Happy Thanksgiving!
2019-11-28 07:58:42 -08:00
Simon Forman ff69046a4c Emit a sort of symbol table. 2019-11-13 21:15:33 -08:00
Simon Forman 4a1770b1cc 4 is already an offset 2019-11-13 15:07:27 -08:00
Simon Forman 93caa2ed66 Definitions. 2019-11-13 11:41:41 -08:00
Simon Forman 851f212fb2 "swap" word. 2019-11-12 16:09:13 -08:00
Simon Forman 4faebb4551 "new" word. 2019-11-12 15:47:33 -08:00
Simon Forman 4cba943355 Refactor sub_base_merge_and_store. 2019-11-12 11:42:24 -08:00
Simon Forman 89c58d4f5a dup cons i 2019-11-12 09:23:31 -08:00
Simon Forman e72fa2585f Forgot to "return" from i combinator. 2019-11-12 09:18:58 -08:00
Simon Forman 9cfb06c736 Even "nicer". 2019-11-12 09:06:22 -08:00
Simon Forman 54fe7cbab7 Charming. 2019-11-12 09:03:54 -08:00
Simon Forman f201cd6bb3 dexpr//1 2019-11-12 09:02:19 -08:00
Simon Forman afea54bf08 The i combinator. 2019-11-12 08:37:20 -08:00
Simon Forman 80d127788e head_addr 2019-11-11 07:51:58 -08:00
Simon Forman c3e44e2bf8 Simple push of empty list. 2019-11-11 07:45:22 -08:00
Simon Forman 3126dce307 Dup.
ANd portray_clause to stablize output logical variable names.
2019-11-10 14:35:57 -08:00
Simon Forman 0b210d7754 halt. 2019-11-10 10:58:47 -08:00
Simon Forman 2e301fa6c3 word works with negative numbers now.
symbols moved to head of machine code.
2019-11-10 10:53:55 -08:00
Simon Forman 4a39d82c75 merge_and_store, chain_link 2019-11-09 21:55:01 -08:00
Simon Forman cde066eb86 Minor refactor.
It doesn't save space (but if I reuse it once it will.)
2019-11-09 21:20:31 -08:00
Simon Forman 2b9034f6d5 Pass through label. 2019-11-09 20:19:15 -08:00
Simon Forman 8405d3f863 if_literal and lookup 2019-11-09 18:39:39 -08:00
Simon Forman 7a821a4eaf incr stack
Really decr, but I'm abstracting.
2019-11-09 18:28:01 -08:00
Simon Forman 67583716f2 Refactoring and cleanup. 2019-11-09 18:15:56 -08:00
Simon Forman 04b021846a load 2019-11-09 18:02:07 -08:00
Simon Forman 8ee9a05780 Bleah. 2019-11-09 15:20:06 -08:00
Simon Forman e4c17f8c24 Base address in unpack_pair. 2019-11-09 15:12:44 -08:00
Simon Forman bcadc95aa3 unpack_pair 2019-11-09 15:03:17 -08:00
Simon Forman a1ecea341a Minor refactor. 2019-11-09 14:02:18 -08:00
Simon Forman c211848d5c Refactoring, with oddball quoting "symbols". 2019-11-09 13:59:06 -08:00
Simon Forman a38d8153cd That works nicely, again. 2019-11-09 13:42:14 -08:00
Simon Forman b7659bdeaa Convert to ? DCG and it's macro-time! 2019-11-09 13:34:51 -08:00
Simon Forman 632161b6d1 I think that does it for cons.
Offsets in pair records can be negative.
2019-11-09 12:14:51 -08:00
Simon Forman ab0ff48c54 That's the mainloop converted to permit negative offsets. 2019-11-09 12:03:13 -08:00
Simon Forman 9ce9d967cf Minor cleanup, bug fixes. 2019-11-09 11:27:29 -08:00
Simon Forman 3c796310a5 Minor bugfix.
asr not ror.
2019-11-08 15:24:09 -08:00
Simon Forman 4c13868e7c Cons 2019-11-08 14:06:28 -08:00
Simon Forman d67420ae68 Just do it in asm. 2019-11-08 08:08:53 -08:00
Simon Forman 5172be7a0a hmm... 2019-11-07 20:21:26 -08:00
Simon Forman 3f843ed4cc WIth push2 finished that's the mainloop converted. 2019-11-07 17:25:04 -08:00
Simon Forman 65d55cf7b4 lookup 2019-11-07 16:28:28 -08:00
Simon Forman 7bab15c64a if_literal 2019-11-07 16:15:41 -08:00
Simon Forman 0ce64f2ec4 A start on converting the mainloop. 2019-11-07 15:53:07 -08:00