Commit Graph

659 Commits

Author SHA1 Message Date
greg
92d641fca0 Make var methods better 2017-12-10 03:35:51 -08:00
greg
9b4499c5ac If expressions 2017-12-10 02:58:07 -08:00
greg
07e19cbfa2 Rukka - Variables 2017-12-09 19:08:08 -08:00
greg
cc79565fb3 Define half-working 2017-12-07 20:28:09 -08:00
greg
405f91a770 Get rid of old import 2017-12-07 19:55:18 -08:00
greg
faed1d6f25 eq? 2017-12-07 19:54:53 -08:00
greg
f6d047e3b8 True and False primitives 2017-12-07 19:51:34 -08:00
greg
fcd980f148 Some primitive implementations 2017-12-07 19:48:48 -08:00
greg
c3919daa66 Fix pointer alias problem 2017-12-07 11:22:59 -08:00
greg
f8152f68ad Still tryign to make the pointer-munging work 2017-12-07 08:15:28 -08:00
greg
9273773bf4 This has broken sexp parsing 2017-12-04 04:56:29 -08:00
greg
844cef36c7 Fix print bug 2017-12-04 03:26:38 -08:00
greg
0e17e45f3e Convert to more lispish Cons 2017-12-04 03:23:55 -08:00
greg
18d8ca7bd5 Special forms list 2017-12-04 03:06:54 -08:00
greg
2ee14bf740 Unwraps 2017-12-04 03:02:38 -08:00
greg
502497687a Handle top-level empty list 2017-12-04 03:01:47 -08:00
greg
107897ec97 print list 2017-12-04 02:44:09 -08:00
greg
8534fb4118 Tighten code 2017-12-04 02:00:00 -08:00
greg
a1e38aba8e Some more code 2017-12-04 01:57:24 -08:00
greg
2f8ef99b08 Type simplification 2017-12-03 22:20:43 -08:00
greg
2bb55b6cca State for eval 2017-12-03 22:10:19 -08:00
greg
bcd70ff538 Numbers 2017-12-03 19:21:56 -08:00
greg
728393671f Fixed string parsing 2017-12-03 17:47:17 -08:00
greg
9c3e223e51 Strings partway working 2017-12-03 17:11:17 -08:00
greg
2738119f17 Quotes 2017-12-03 06:04:53 -08:00
greg
630ead289c Change Symbol -> Word for token 2017-12-01 03:00:42 -08:00
greg
485e869c90 Fix bug 2017-12-01 02:58:09 -08:00
greg
9e8a3d1f08 Tighten code 2017-12-01 02:39:17 -08:00
greg
b1da524a8f Intersperse 2017-12-01 02:36:52 -08:00
greg
787b6d51a4 Parsing correctly yay 2017-12-01 02:16:28 -08:00
greg
1dae4443cd Tokens 2017-11-30 22:37:49 -08:00
greg
210a45c92e Sexp parsing 2017-11-29 02:08:30 -08:00
greg
815e0401f2 Parses ( 2017-11-29 01:45:29 -08:00
greg
753247ee83 Some halfwritten stuff 2017-11-28 03:37:16 -08:00
greg
6223fc20f3 List datatype 2017-11-27 00:57:26 -08:00
greg
da928db351 Add a new language - Rukka
This is a (simple) lisp, partially for fun, partially for testing the
generic interfaces
2017-11-26 21:17:17 -08:00
greg
93d0cfe5b8 Make schala-lib::language private and reexport 2017-11-02 02:45:26 -07:00
greg
687b28d1d1 Take TokenError type out of schala-lib 2017-11-01 22:41:34 -07:00
greg
b62f618256 I don't need this syntax 2017-11-01 01:25:26 -07:00
greg
f25b76ea11 Kill some packages from schala bin 2017-11-01 01:23:54 -07:00
greg
6b2736348d Get rid of unused imports 2017-10-31 00:45:15 -07:00
greg
69d5f38ea1 Refactor into libs part II
woo it compiles
2017-10-30 22:18:02 -07:00
greg
a6f8616839 Halfway done to library-ifying schala 2017-10-30 20:06:20 -07:00
greg
cdcb55e3b8 PLIGenerators can be authoritative, not the instances themselves 2017-10-29 13:45:55 -07:00
greg
74ac26841f Some simplification 2017-10-29 12:27:24 -07:00
greg
8fd29b5090 Passing things along as generators 2017-10-29 04:09:10 -07:00
greg
5ebc96daa7 Don't need mutex, kill it 2017-10-29 04:04:54 -07:00
greg
277e039251 Finally removed schala dependency
Now need to clena up everything
2017-10-29 03:41:40 -07:00
greg
6e8f57e54f Okay this compiles
The secret (from #rust) appeared to be that Fn() needed to have + Send
explicitly annotated on it
2017-10-29 03:16:08 -07:00
greg
ae02391270 Working on solution to Rocket state problem 2017-10-27 00:30:28 -07:00
greg
9379485713 Some linker bullshit
I don't know why I needed to do this
2017-10-26 02:03:47 -07:00
greg
910522537c Splitting up some code
In preparation for splitting schala into crates
2017-10-23 20:51:08 -07:00
greg
98e1a5235a Some more structure in evaluator 2017-10-23 01:54:35 -07:00
greg
e054c4b27f Revert "Starting to split project into multiple crates"
This reverts commit e3b0f4a51e.
Bah, this was a bad idea, wrong way to do it
2017-10-23 00:45:01 -07:00
greg
e3b0f4a51e Starting to split project into multiple crates 2017-10-23 00:43:43 -07:00
greg
911f26e9c6 Halfway done with evaluating tuples 2017-10-23 00:22:25 -07:00
greg
677e3ae0a9 Add module keyword 2017-10-22 03:58:09 -07:00
greg
4c256cb5f7 Literal non-primitive values 2017-10-14 13:54:17 -07:00
greg
688e1c7f5d Starting work on literal non-primitve values 2017-10-13 18:56:02 -07:00
greg
26c9c72bcc Can eval custom data constructors now 2017-10-13 03:05:18 -07:00
greg
2d614aa17a Float literals, kill old code 2017-10-13 00:01:43 -07:00
greg
ecb2eb0f87 Some more primitive types + binop-checking 2017-10-12 23:59:52 -07:00
greg
4c4004d3ac Add required imports 2017-10-12 21:46:12 -07:00
greg
9b4a23c4f2 Some partial work on refactoring type infer fn 2017-10-12 20:14:33 -07:00
greg
936c168cef Add colored output to non-interactive 2017-10-12 10:43:54 -07:00
greg
db835f42aa Convert webapp to using included files 2017-10-12 02:13:55 -07:00
greg
cd5fc36c37 Fix type check macro to add symbol table 2017-10-11 16:43:04 -07:00
greg
d7a33c974e More work with unification 2017-10-11 02:33:46 -07:00
greg
b2288206d2 the evar table
TODO find a better way to represent this
2017-10-11 02:11:12 -07:00
greg
d962e2c27a Unify work 2017-10-11 02:03:50 -07:00
greg
4534c1d3d6 Move type-level func up 2017-10-11 01:55:45 -07:00
greg
f79dc0b1e3 Okay I am figuring things out about hindley-milner again 2017-10-11 01:50:04 -07:00
greg
4928fc0019 rename type_var to ty 2017-10-10 22:14:55 -07:00
greg
d735e45688 String and () types 2017-10-10 21:51:45 -07:00
greg
b4208b696d Change around some stuff 2017-10-10 21:23:24 -07:00
greg
ff3dbbcbc6 Change Variable to Value 2017-10-10 21:02:32 -07:00
greg
e3261be8a0 Partial handling of user defined types 2017-10-10 17:29:28 -07:00
greg
f131105b50 Starting to make unify actually work 2017-10-10 04:38:59 -07:00
greg
1089a33634 Convert unify to are types
b/c Type implements Clone
Maybe wanna kill this later for efficiency
2017-10-10 04:26:40 -07:00
greg
6c60794485 Have + do something different with strings
Needed to introduce polymorphism soon
2017-10-10 02:45:25 -07:00
greg
2f18529bcc Operator typing a little bit 2017-10-10 02:41:17 -07:00
greg
c68e09d89d Slight refactoring 2017-10-10 02:32:02 -07:00
greg
d9e8178a90 Renamed all the type-related types 2017-10-10 02:17:07 -07:00
greg
57536e6399 Move some type checking code around 2017-10-10 01:11:24 -07:00
greg
32e077c407 Merge branch 'master' of github.com:neunenak/schala 2017-10-10 01:09:27 -07:00
greg
83752a1c74 Some more type work 2017-10-10 01:04:19 -07:00
greg
33d0d49d30 Basic typing test 2017-10-09 12:26:25 -07:00
greg
76a9367284 String types 2017-10-09 11:42:53 -07:00
greg
66c7bbeb07 Floats, pathspec changes 2017-10-09 04:02:50 -07:00
greg
ed8359bcd7 Store constant state, func/binding as value
on symbol table, instead of key
2017-10-09 02:38:33 -07:00
greg
996f75e15c A lot more type work 2017-10-09 02:26:59 -07:00
greg
30a54d997c Simplify symbol table code 2017-10-09 00:59:52 -07:00
greg
4bcbf1854a Use universal/existential type data structures 2017-10-09 00:36:54 -07:00
greg
f2c6556c2a Use name TypeVariable 2017-10-09 00:22:42 -07:00
greg
9161e2751f (Janky) type inference for explicitly-type-annotated values 2017-10-08 23:45:38 -07:00
greg
60fc9fd7e1 Super-basic type inference working
with a bunch of assumptions and hard-coded values
2017-10-08 23:33:53 -07:00
greg
3b249045aa Call needs to accept a general argument 2017-10-08 23:02:03 -07:00
greg
ff0e14d9a9 Rename params -> args in Call Expr 2017-10-08 22:52:05 -07:00
greg
8fe535597e Starting to actually do Hindley-Milner!! 2017-10-08 22:48:10 -07:00
greg
4bb8f82579 Make AST output red 2017-10-08 22:17:29 -07:00