greg
|
a396c448ec
|
Centralize data for prefix ops too
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
d3ef980dc5
|
Added type information to binop definitions
Also started centralizing precedence there too
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
df86e0c16e
|
Make sigil field private
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
274bf80b5d
|
Function evaluation work
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
f0a39ac88a
|
Give State a pointer to its parent
For function call lookups
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
85e65273fe
|
Finished initial BinOp/PrefixOp
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
413c5afe67
|
Starting to munge BinOp types
Incomplete, doesn't yet compile
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
36174140bc
|
ReplState -> State
Not everythign is a repl
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
75ecfb4e86
|
Move bx! macro up to mod.rs
And make use of it in parser
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
e86d401c90
|
Move anno-to-type to a method on TypeName
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
b2319f0971
|
Fix tests too
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
d423e88845
|
Separate tokenizing module
Parsing was getting too long
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
5cb0e6715d
|
Some work on binops
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
5bb2c319e8
|
Some more type-checking work
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
440783bb64
|
More work on evaluating applications
for later testing + to kill a compiler warning
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
9834ee295e
|
Fix traits, silence warnings
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
9346bb9581
|
type of a declaration should be Void, not Unit
I think this makes sense
Also kill some compiler warnings
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
f46f593c44
|
Types in bindings
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
ec7d185ed5
|
Simplified match
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
3f1cf1d975
|
Added trait declaration
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
39ee550b54
|
More static type work
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
d5df868f10
|
Finished basic constant type inference
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
55629e6d9d
|
More type implementing - WIP
This has a borrowing bug currently
|
2018-07-26 00:52:45 -07:00 |
|
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
|
66e3de41dd
|
Make schala-lib::language private and reexport
|
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
|
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 |
|
greg
|
1884eae191
|
Float literals, kill old code
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
bb880d44fa
|
Some more primitive types + binop-checking
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
22b4738726
|
Add required imports
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
0202aab181
|
Some partial work on refactoring type infer fn
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
5f1c46cb87
|
Fix type check macro to add symbol table
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
0ea9bd3d95
|
More work with unification
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
0cf56eea4f
|
the evar table
TODO find a better way to represent this
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
ab53c5394e
|
Unify work
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
f6c85951fe
|
Move type-level func up
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
c530715671
|
Okay I am figuring things out about hindley-milner again
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
617a30b967
|
rename type_var to ty
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
cd11d18385
|
String and () types
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
f82c6199c0
|
Change around some stuff
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
f75cd763f8
|
Change Variable to Value
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
54c16f0190
|
Partial handling of user defined types
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
8d8e3cd565
|
Starting to make unify actually work
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
47975cf8f6
|
Convert unify to are types
b/c Type implements Clone
Maybe wanna kill this later for efficiency
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
ddd861fbea
|
Have + do something different with strings
Needed to introduce polymorphism soon
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
200d0f9867
|
Operator typing a little bit
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
3e44bd3a18
|
Slight refactoring
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
e2a94280c2
|
Renamed all the type-related types
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
c5b3bafe43
|
Move some type checking code around
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
b417451536
|
Basic typing test
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
a0faed3603
|
String types
|
2018-07-26 00:52:45 -07:00 |
|
greg
|
83752a1c74
|
Some more type work
|
2017-10-10 01:04:19 -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 |
|