Commit Graph

729 Commits

Author SHA1 Message Date
greg
f7659a5598 Handle variable lookups 2018-02-26 18:23:10 -08:00
greg
1064d9993a Evaluate binding declarations 2018-02-26 18:18:42 -08:00
greg
0e3320e183 Separate Value and NamedStruct syntactic categories 2018-02-26 18:12:37 -08:00
greg
89a2be19f4 Fixed | 2018-02-26 02:27:36 -08:00
greg
d9e96398a4 More operator stuff 2018-02-26 02:21:21 -08:00
greg
a564ffa1ce Operator changes 2018-02-26 02:11:56 -08:00
greg
b3fff100d2 Fixed tests w/ respect to binop
There's a few unnecessary conversions of &str 's to Rc<String> and back
2018-02-24 17:50:57 -08:00
greg
cfd6df7ba5 Centralize data for prefix ops too 2018-02-24 17:43:26 -08:00
greg
bb2e1ae27a Added type information to binop definitions
Also started centralizing precedence there too
2018-02-24 17:37:23 -08:00
greg
4333563d03 Make sigil field private 2018-02-24 14:39:45 -08:00
greg
e7cabb2a79 Function evaluation work 2018-02-24 14:31:04 -08:00
greg
5da7c809b2 Give State a pointer to its parent
For function call lookups
2018-02-24 13:56:04 -08:00
greg
d229a57837 Finished initial BinOp/PrefixOp 2018-02-23 19:06:37 -08:00
greg
0dd8861f83 Starting to munge BinOp types
Incomplete, doesn't yet compile
2018-02-23 04:10:00 -08:00
greg
4ab900d601 ReplState -> State
Not everythign is a repl
2018-02-23 03:07:58 -08:00
greg
501b975fb6 Move bx! macro up to mod.rs
And make use of it in parser
2018-02-23 03:04:19 -08:00
greg
83315e97ac Move anno-to-type to a method on TypeName 2018-02-23 02:30:34 -08:00
greg
6259a0808c Fix tests too 2018-02-23 01:59:53 -08:00
greg
0c69476fd0 Separate tokenizing module
Parsing was getting too long
2018-02-23 01:58:06 -08:00
greg
1caccc6ae2 Some work on binops 2018-02-23 01:49:37 -08:00
greg
23af2b1455 Some more type-checking work 2018-02-22 19:59:53 -08:00
greg
61795b0331 More work on evaluating applications
for later testing + to kill a compiler warning
2018-02-22 03:34:36 -08:00
greg
a1b874c891 Fix traits, silence warnings 2018-02-22 03:26:32 -08:00
greg
e7103b925b type of a declaration should be Void, not Unit
I think this makes sense

Also kill some compiler warnings
2018-02-22 03:25:05 -08:00
greg
c35401da65 Types in bindings 2018-02-22 03:21:58 -08:00
greg
d51a9a73d7 Simplified match 2018-02-22 00:31:13 -08:00
greg
fddd43b86e Added trait declaration 2018-02-21 22:06:56 -08:00
greg
12f55fa844 More static type work 2018-02-21 18:12:46 -08:00
greg
bb0fb716e4 Finished basic constant type inference 2018-02-21 14:14:24 -08:00
greg
687d482853 More type implementing - WIP
This has a borrowing bug currently
2018-02-21 04:32:30 -08:00
greg
628eb28deb Fix some integer overflows with binary and hex 2018-02-21 03:52:16 -08:00
greg
4c8b4c8c71 Starting basic type stuff 2018-02-21 03:39:40 -08:00
greg
c674148772 Starting over with types 2018-02-21 02:35:09 -08:00
greg
457799e0f7 More type things 2018-02-12 01:45:36 -08:00
greg
681d767855 Type singletons test work 2018-02-12 00:51:53 -08:00
greg
ef4620e90a TypeSingletonName broken out 2018-02-12 00:25:48 -08:00
greg
1f2a4c706f 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-02-11 22:10:21 -08:00
greg
a452bccd1c Don't need clone() here 2018-02-11 16:45:26 -08:00
greg
eca2218f6a Kill separate is_digit method
I care about 10 vs 16 distinction
2018-02-11 16:43:51 -08:00
greg
83aedb0efb Hex parsing done 2018-02-11 16:35:38 -08:00
greg
c0574ff1ef Added a bunch of notes 2018-02-11 02:37:52 -08:00
greg
faa5c6ab42 Fix parse level calculation 2018-02-10 17:45:00 -08:00
greg
9c2d2190b0 Proper indentation of parser debug 2018-02-10 15:10:06 -08:00
greg
21511f5120 Move some code around 2018-02-08 01:15:27 -08:00
greg
8bd399f97a Better hex literals 2018-01-08 06:12:45 -08:00
greg
30a6d0929a Starting hex parsing 2018-01-08 05:57:36 -08:00
greg
bec8aedc22 Simplify some code 2018-01-08 05:21:04 -08:00
greg
559306ffc8 unified BoolAtom 2017-12-30 23:19:42 -08:00
greg
fa8d46e3d7 Print operation 2017-12-29 05:10:03 -08:00
greg
4598802999 Refactoring 2017-12-29 05:03:30 -08:00
greg
5ea83e2da6 Delete some unneeded code 2017-12-29 04:55:03 -08:00
greg
23c0f54042 Forgot to change name here 2017-12-29 04:52:47 -08:00
greg
8618de313b Name change
builtin -> primitive
2017-12-29 04:51:14 -08:00
greg
cd23b23a91 Get rid of some printlns 2017-12-29 04:46:19 -08:00
greg
e6475a1262 Implement lambda application 2017-12-29 03:57:27 -08:00
greg
e6f81b28f9 Plus and multiply 2017-12-25 23:10:16 -08:00
greg
c20d75faf1 Builtins - + 2017-12-24 23:48:13 -08:00
greg
85aabed344 Framework for multiple environments 2017-12-21 03:11:56 -08:00
greg
aa821e720a Apply wokr 2017-12-21 01:14:05 -08:00
greg
0e25720927 Fixing quote 2017-12-21 01:12:05 -08:00
greg
c101610cde Starting builtins 2017-12-20 22:56:24 -08:00
greg
1217f6e143 Lambda abstraction 2017-12-20 18:23:44 -08:00
greg
6f41167402 Kill this linker thing 2017-12-18 01:30:33 -08:00
greg
c6509338d8 Kill unused code 2017-12-12 02:57:19 -08:00
greg
192a6bf6e1 Some lambda work 2017-12-12 02:56:10 -08:00
greg
7e8c4267c2 Remove a unimplemented 2017-12-11 01:55:08 -08:00
greg
25527bbdf0 Add fn literal variant 2017-12-11 01:53:27 -08:00
greg
5e7aef1040 Even more concise 2017-12-10 19:01:44 -08:00
greg
3386fcc505 Refactoring 2017-12-10 18:44:21 -08:00
greg
18a839bb91 Starting lambdas 2017-12-10 03:58:44 -08:00
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