Commit Graph

698 Commits

Author SHA1 Message Date
greg 9d99971f49 Fix some integer overflows with binary and hex 2018-07-26 00:52:45 -07:00
greg 76575e9ba3 Starting basic type stuff 2018-07-26 00:52:45 -07:00
greg a50d8d9e3f Starting over with types 2018-07-26 00:52:45 -07:00
greg e6a015090c More type things 2018-07-26 00:52:45 -07:00
greg c18bf9c29f Type singletons test work 2018-07-26 00:52:45 -07:00
greg cfc507a2df TypeSingletonName broken out 2018-07-26 00:52:45 -07:00
greg f7e88c7cab Fix struct literals in if expressions
With special case-ing, sigh :( Also will need to do this for match
expressions but I'll cross that bridge when I come to it
2018-07-26 00:52:45 -07:00
greg 4d0bfa2a52 Don't need clone() here 2018-07-26 00:52:45 -07:00
greg 99e5d86764 Kill separate is_digit method
I care about 10 vs 16 distinction
2018-07-26 00:52:45 -07:00
greg 17e8ebe789 Hex parsing done 2018-07-26 00:52:45 -07:00
greg 967e5cc436 Added a bunch of notes 2018-07-26 00:52:45 -07:00
greg 7a6ace5db1 Fix parse level calculation 2018-07-26 00:52:45 -07:00
greg 129af43e69 Proper indentation of parser debug 2018-07-26 00:52:45 -07:00
greg 17dccf65c8 Move some code around 2018-07-26 00:52:45 -07:00
greg 95c6a23bf1 Better hex literals 2018-07-26 00:52:45 -07:00
greg 2bff53846c Starting hex parsing 2018-07-26 00:52:45 -07:00
greg 514d117c7e Simplify some code 2018-07-26 00:52:45 -07:00
greg 9ec983dc20 unified BoolAtom 2018-07-26 00:52:45 -07:00
greg 8f6c80ac8c Print operation 2018-07-26 00:52:45 -07:00
greg 7f546fa879 Refactoring 2018-07-26 00:52:45 -07:00
greg 48a35aa382 Delete some unneeded code 2018-07-26 00:52:45 -07:00
greg 0c64b14be0 Forgot to change name here 2018-07-26 00:52:45 -07:00
greg 5d9fa6679b Name change
builtin -> primitive
2018-07-26 00:52:45 -07:00
greg ea24ae1bb5 Get rid of some printlns 2018-07-26 00:52:45 -07:00
greg 0d2a0e3536 Implement lambda application 2018-07-26 00:52:45 -07:00
greg 339e3464e3 Plus and multiply 2018-07-26 00:52:45 -07:00
greg c35b684bdd Builtins - + 2018-07-26 00:52:45 -07:00
greg d11c518721 Framework for multiple environments 2018-07-26 00:52:45 -07:00
greg 8dde8c7381 Apply wokr 2018-07-26 00:52:45 -07:00
greg 47cad3712c Fixing quote 2018-07-26 00:52:45 -07:00
greg ffcc0ef379 Starting builtins 2018-07-26 00:52:45 -07:00
greg 6766791627 Lambda abstraction 2018-07-26 00:52:45 -07:00
greg 05de5ebe61 Kill this linker thing 2018-07-26 00:52:45 -07:00
greg 29ebd35165 Kill unused code 2018-07-26 00:52:45 -07:00
greg 622b50a40c Some lambda work 2018-07-26 00:52:45 -07:00
greg 9f916c7c02 Remove a unimplemented 2018-07-26 00:52:45 -07:00
greg 85375bb9df Add fn literal variant 2018-07-26 00:52:45 -07:00
greg d11500c643 Even more concise 2018-07-26 00:52:45 -07:00
greg 8493233b69 Refactoring 2018-07-26 00:52:45 -07:00
greg 60644ba3d7 Starting lambdas 2018-07-26 00:52:45 -07:00
greg 254f2ae4b8 Make var methods better 2018-07-26 00:52:45 -07:00
greg e243b99d3b If expressions 2018-07-26 00:52:45 -07:00
greg 3d023a6704 Rukka - Variables 2018-07-26 00:52:45 -07:00
greg 73612d1465 Define half-working 2018-07-26 00:52:45 -07:00
greg d1a15b64ff Get rid of old import 2018-07-26 00:52:45 -07:00
greg 66e8643382 eq? 2018-07-26 00:52:45 -07:00
greg ad58fc1ad1 True and False primitives 2018-07-26 00:52:45 -07:00
greg adc7be30a9 Some primitive implementations 2018-07-26 00:52:45 -07:00
greg 72097fa125 Fix pointer alias problem 2018-07-26 00:52:45 -07:00
greg ae9d93f6dc Still tryign to make the pointer-munging work 2018-07-26 00:52:45 -07:00
greg 3d421c7039 This has broken sexp parsing 2018-07-26 00:52:45 -07:00
greg 166bc3b3cb Fix print bug 2018-07-26 00:52:45 -07:00
greg 2f263de8ba Convert to more lispish Cons 2018-07-26 00:52:45 -07:00
greg 46ae176498 Special forms list 2018-07-26 00:52:45 -07:00
greg d84def35e7 Unwraps 2018-07-26 00:52:45 -07:00
greg 07e55ca04e Handle top-level empty list 2018-07-26 00:52:45 -07:00
greg 6dcf5c7945 print list 2018-07-26 00:52:45 -07:00
greg 568ee88f3a Tighten code 2018-07-26 00:52:45 -07:00
greg 8749ed984d Some more code 2018-07-26 00:52:45 -07:00
greg 559eaf54de Type simplification 2018-07-26 00:52:45 -07:00
greg bf42b58ca5 State for eval 2018-07-26 00:52:45 -07:00
greg ecdcb7ff3d Numbers 2018-07-26 00:52:45 -07:00
greg 766209e5b2 Fixed string parsing 2018-07-26 00:52:45 -07:00
greg e9429ed62a Strings partway working 2018-07-26 00:52:45 -07:00
greg 6e188976f9 Quotes 2018-07-26 00:52:45 -07:00
greg d235b47bc5 Change Symbol -> Word for token 2018-07-26 00:52:45 -07:00
greg 3fcb840ce5 Fix bug 2018-07-26 00:52:45 -07:00
greg 523bd179a4 Tighten code 2018-07-26 00:52:45 -07:00
greg 35e715dfd6 Intersperse 2018-07-26 00:52:45 -07:00
greg 6eb0fc8834 Parsing correctly yay 2018-07-26 00:52:45 -07:00
greg c0a5418c27 Tokens 2018-07-26 00:52:45 -07:00
greg 42749c1ff6 Sexp parsing 2018-07-26 00:52:45 -07:00
greg 42b9507af0 Parses ( 2018-07-26 00:52:45 -07:00
greg 38e85e2c78 Some halfwritten stuff 2018-07-26 00:52:45 -07:00
greg 7c5fef49f8 List datatype 2018-07-26 00:52:45 -07:00
greg c1e214c701 Add a new language - Rukka
This is a (simple) lisp, partially for fun, partially for testing the
generic interfaces
2018-07-26 00:52:45 -07:00
greg 66e3de41dd Make schala-lib::language private and reexport 2018-07-26 00:52:45 -07:00
greg 9545130fd3 Take TokenError type out of schala-lib 2018-07-26 00:52:45 -07:00
greg ef7412dcd5 I don't need this syntax 2018-07-26 00:52:45 -07:00
greg dee470cb8b Kill some packages from schala bin 2018-07-26 00:52:45 -07:00
greg c057f068ef Get rid of unused imports 2018-07-26 00:52:45 -07:00
greg c4dbdf1fe7 Refactor into libs part II
woo it compiles
2018-07-26 00:52:45 -07:00
greg 4c7174e4c4 Halfway done to library-ifying schala 2018-07-26 00:52:45 -07:00
greg d0538faef3 PLIGenerators can be authoritative, not the instances themselves 2018-07-26 00:52:45 -07:00
greg b97da01370 Some simplification 2018-07-26 00:52:45 -07:00
greg b09efd3660 Passing things along as generators 2018-07-26 00:52:45 -07:00
greg a42a58b155 Don't need mutex, kill it 2018-07-26 00:52:45 -07:00
greg 708c0ab103 Finally removed schala dependency
Now need to clena up everything
2018-07-26 00:52:45 -07:00
greg 1d9d0c4395 Okay this compiles
The secret (from #rust) appeared to be that Fn() needed to have + Send
explicitly annotated on it
2018-07-26 00:52:45 -07:00
greg ffb87ebb82 Working on solution to Rocket state problem 2018-07-26 00:52:45 -07:00
greg 30c741f459 Some linker bullshit
I don't know why I needed to do this
2018-07-26 00:52:45 -07:00
greg d19541b3e1 Splitting up some code
In preparation for splitting schala into crates
2018-07-26 00:52:45 -07:00
greg 3651461bbc Some more structure in evaluator 2018-07-26 00:52:45 -07:00
greg 7730457878 Revert "Starting to split project into multiple crates"
This reverts commit e3b0f4a51e.
Bah, this was a bad idea, wrong way to do it
2018-07-26 00:52:45 -07:00
greg 46dbac7f69 Starting to split project into multiple crates 2018-07-26 00:52:45 -07:00
greg f68167f3a2 Halfway done with evaluating tuples 2018-07-26 00:52:45 -07:00
greg c9625ffa77 Add module keyword 2018-07-26 00:52:45 -07:00
greg 9afbd2305f Literal non-primitive values 2018-07-26 00:52:45 -07:00
greg d7564f81c9 Starting work on literal non-primitve values 2018-07-26 00:52:45 -07:00
greg 2fbb8f2b2f Can eval custom data constructors now 2018-07-26 00:52:45 -07:00