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
93d0cfe5b8
Make schala-lib::language private and reexport
2017-11-02 02:45:26 -07:00
greg
69d5f38ea1
Refactor into libs part II
...
woo it compiles
2017-10-30 22:18:02 -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
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
5cb8423ecc
Beginning for expressions
2017-10-08 22:07:18 -07:00
greg
4032707dc9
Kill some comments
2017-10-08 21:26:47 -07:00
greg
1a8423535a
Add test for function decl
2017-10-08 21:25:51 -07:00
greg
338981febe
Changed function signatures around slightly
2017-10-08 21:21:02 -07:00
greg
6dff8b029e
Function definitions expanded
2017-10-08 20:55:05 -07:00
greg
df877830d3
Fixed tests
2017-10-08 19:39:41 -07:00
greg
40696b3cbd
Rename TypeAnno to TypeName everywhere
2017-10-08 19:30:52 -07:00
greg
40a82d7e25
Tests for new type stuff
...
+ some renaming
2017-10-08 19:15:08 -07:00
greg
c605f76059
More type work II
2017-10-08 19:03:02 -07:00
greg
a6d71821b9
More type work I
2017-10-08 18:47:57 -07:00
greg
c4f0331d1a
Symbol table addition should be separate stage
2017-10-08 16:24:44 -07:00
greg
b4054d7581
Impl blocks
2017-10-08 14:24:02 -07:00
greg
74d3828c71
Symbol table debug needs to happen before type check
2017-10-08 13:59:55 -07:00
greg
bb57da564d
Infrastructure to debug symbol table
2017-10-08 13:57:43 -07:00
greg
3f9ae5fac3
Symbol table accepts variables
2017-10-08 13:51:56 -07:00
greg
62edc7c996
type checking / symbol table stuff
2017-10-08 12:22:04 -07:00
greg
e412fb9a89
Convert type-checking function type
2017-10-07 22:08:48 -07:00
greg
3a97401f61
Add symbol table insertion method skeleton
2017-10-07 21:57:51 -07:00
greg
87cfe854ac
Tuple literals
2017-10-06 20:28:07 -07:00
greg
184a2ae03a
Change syntax for type alias
2017-10-04 22:02:31 -07:00
greg
50ceb92d6b
Move type-checking into a module
2017-10-04 02:07:30 -07:00
greg
dd7736e32d
Add some resources
2017-10-03 21:28:17 -07:00
greg
3025af3ded
Starting on impls
2017-10-03 03:49:07 -07:00
greg
65f64ebcc2
Add source file suffix to trait
2017-10-02 23:07:05 -07:00
greg
abbbb34901
Some very basic evaluation stuff
2017-10-02 20:11:27 -07:00
greg
3ff4a34aeb
kill some non-used variable warnings
2017-10-02 01:52:46 -07:00
greg
89482e5b5a
Use a Result
2017-10-01 19:31:43 -07:00
greg
6435d5e958
Make eval output nicer
2017-10-01 19:29:05 -07:00
greg
f6536e7ebd
Evaluation stuff
2017-10-01 19:09:55 -07:00
greg
c5cb223168
Super-minimal type-checking with just ints
2017-10-01 17:50:26 -07:00
greg
d16a0c9380
Evaluation of literals
2017-10-01 12:55:28 -07:00
greg
daf9878020
Kill some unused code
2017-10-01 00:50:13 -07:00
greg
f825c87397
Type checking beginnings
2017-10-01 00:48:08 -07:00
greg
8d2a65b44e
Starting eval framework
2017-09-30 23:30:02 -07:00
greg
6b9fee1aed
Made handling parse errors nicer
2017-09-30 14:41:37 -07:00
greg
d05f173dd3
Using delmited! macro for more things
2017-09-30 14:11:38 -07:00
greg
e88a0f59b5
Made macro less complicatd
2017-09-30 13:46:50 -07:00
greg
90cf7db609
Use the delimiter macro in a few places
...
Made it capable of handling the strict <item> <delim> behavior necessary
for non-blocks, as well as teh loose behavior necessary for blocks,
added a test for a parse error.
2017-09-30 13:04:56 -07:00