greg
|
bcf48d0ecb
|
First tests for typechecking
|
2019-02-20 01:33:45 -08:00 |
|
greg
|
f0ed63ccf3
|
Basic if-statement checking
|
2019-02-19 23:00:41 -08:00 |
|
greg
|
6012bd1087
|
Variables
|
2019-02-19 21:41:07 -08:00 |
|
greg
|
df7e74c79d
|
Types with arguments
|
2019-02-17 04:31:02 -08:00 |
|
greg
|
abbd02eaef
|
Use ty! macro
|
2019-02-17 04:25:38 -08:00 |
|
greg
|
993741e67f
|
Get rid of typecheck_
|
2019-02-17 04:08:49 -08:00 |
|
greg
|
fbb7b995b8
|
Rename mk_type! to ty!
Doesn't seem to conflict with the same macro in the parser tests, so should be
ok
|
2019-02-17 03:38:15 -08:00 |
|
greg
|
9d4f086a04
|
Put mk_type! in typechecking module
|
2019-02-17 03:36:12 -08:00 |
|
greg
|
e38ae1c3f1
|
Fix type to make it compile
|
2019-02-15 21:11:50 -08:00 |
|
greg
|
d969d573fa
|
Starting work on values
|
2019-02-12 21:14:13 -08:00 |
|
greg
|
35da1748f0
|
Some more type work
|
2019-02-10 12:21:12 -08:00 |
|
greg
|
5e1799268d
|
Unification works with bad annotations
|
2019-02-10 07:32:12 -08:00 |
|
greg
|
42a801d346
|
Rename Order -> Ordering
|
2019-02-10 07:06:30 -08:00 |
|
greg
|
a80e1bd706
|
Type name infra
|
2019-02-10 07:05:01 -08:00 |
|
greg
|
afd9aa52c5
|
More infra around unify
|
2019-02-10 06:53:11 -08:00 |
|
greg
|
5a70784346
|
Adding unify stub
|
2019-02-10 06:48:25 -08:00 |
|
greg
|
0dff177e8f
|
Add more literals kill errors
|
2019-02-10 05:33:55 -08:00 |
|
greg
|
cf91f74912
|
Pass through type info to repl
|
2019-02-10 05:31:58 -08:00 |
|
greg
|
06e9452718
|
More type infrastructure
From here on out, I can start playing with concrete code that attempts
to actually typecheck limited syntactic constructs, and see what I end
up with.
|
2019-02-10 05:24:11 -08:00 |
|
greg
|
7d3ae36058
|
AST-walking infrastructure
|
2019-02-10 04:42:30 -08:00 |
|
greg
|
e8f1f51639
|
Move (most of) the type definitions back to typechecking module
Still need to figure out the macro export thing
|
2019-02-10 04:30:37 -08:00 |
|
greg
|
170cf349d7
|
Starting typechecking work again
|
2019-02-09 00:25:12 -08:00 |
|
greg
|
c0111e30bc
|
SymbolTable: Add Record type
|
2019-01-25 00:57:01 -08:00 |
|
greg
|
c225e469ee
|
Change Record variant representation
|
2019-01-24 20:47:20 -08:00 |
|
greg
|
1ce06bc0ef
|
More symbol-table refactoring
|
2019-01-20 22:32:58 -08:00 |
|
greg
|
10c3a60515
|
Some symbol-table refactoring
|
2019-01-20 00:23:08 -08:00 |
|
greg
|
a63dcf91b0
|
Replace // with quot
|
2019-01-10 20:57:13 -08:00 |
|
greg
|
479a098e0f
|
Make note to fix parsing bug
|
2019-01-09 17:37:51 -08:00 |
|
greg
|
1085b528fe
|
Don't care about case-sensitivity
|
2019-01-08 02:38:10 -08:00 |
|
greg
|
9b3b5c5541
|
Token offsets
|
2019-01-08 02:11:19 -08:00 |
|
greg
|
ab8e24a276
|
ParseError always has token now
|
2019-01-08 01:04:46 -08:00 |
|
greg
|
09e2d8579d
|
Remove all ParseErrors that don't return the failed token
|
2019-01-08 01:00:40 -08:00 |
|
greg
|
ee7861cbd0
|
Fix how impl blocks work
This gets rid of a token-less parseerror
|
2019-01-08 00:51:56 -08:00 |
|
greg
|
b88def8a2e
|
Make error msg better
|
2019-01-07 16:52:46 -08:00 |
|
greg
|
30676722a3
|
Transition to edition 2018
|
2019-01-07 13:00:37 -08:00 |
|
greg
|
801c90aaa7
|
Reorder parameters in pass functions
|
2019-01-07 02:43:31 -08:00 |
|
greg
|
fa295aab28
|
Show location of error in parse error
|
2019-01-07 01:52:54 -08:00 |
|
greg
|
a0f4abb9a3
|
Add SourceReference
|
2019-01-06 01:58:16 -08:00 |
|
greg
|
78b454fb32
|
Delete this line
|
2019-01-05 20:41:49 -08:00 |
|
greg
|
5491169d55
|
Refactor parsing structure
TokenHandler should contain all the methods for actually manipulating
tokens, Parser should only contain the recursive descent methods
|
2019-01-05 20:23:07 -08:00 |
|
greg
|
2b338fd3c9
|
Move .next() onto token_handler
|
2019-01-05 18:29:24 -08:00 |
|
greg
|
821f321261
|
More Node-wrapping of Expression
|
2019-01-05 18:11:51 -08:00 |
|
greg
|
846eeae04c
|
More use of Token instead of TokenKind
|
2019-01-05 17:50:54 -08:00 |
|
greg
|
22f2750853
|
More use of Token in error messages
|
2019-01-05 17:40:05 -08:00 |
|
greg
|
f2f8ac7ee8
|
Make parserrors have token
|
2019-01-05 17:32:49 -08:00 |
|
greg
|
d0c5dce92b
|
Use get_kind()
|
2019-01-05 17:28:35 -08:00 |
|
greg
|
8eda74c9a5
|
Starting to keep track of locations of errors in file
|
2019-01-05 17:18:10 -08:00 |
|
greg
|
2efac109ef
|
Node for TupleLiteral
|
2019-01-05 16:06:55 -08:00 |
|
greg
|
215e2bbb0d
|
PrefixOp have Node
|
2019-01-05 16:02:30 -08:00 |
|
greg
|
2590def3be
|
More Node-wrapping
|
2019-01-05 15:54:03 -08:00 |
|
greg
|
879a7de83d
|
Wrap Expression in Node
|
2019-01-05 15:47:44 -08:00 |
|
greg
|
4c2e0b8a21
|
Get rid of old code from old ideas
|
2019-01-05 15:35:51 -08:00 |
|
greg
|
282c42da3c
|
Adding Node intermediate type to AST
|
2019-01-05 01:44:32 -08:00 |
|
greg
|
7ac97ca6e8
|
Kill ast_visitor
|
2018-11-26 01:57:44 -08:00 |
|
greg
|
26a8ff307f
|
Add generic Node type
|
2018-11-20 03:21:10 -08:00 |
|
greg
|
6be208b51d
|
Minor fix for parsing error messages
|
2018-11-20 03:03:08 -08:00 |
|
greg
|
e00948cad9
|
Add ast_visitor mod
|
2018-11-17 02:09:16 -08:00 |
|
greg
|
0af6fed505
|
Clear up some code a bit
|
2018-11-17 01:10:23 -08:00 |
|
greg
|
1f527f7949
|
Rename TokenType -> TokenKind
|
2018-11-16 23:17:34 -08:00 |
|
greg
|
b198984fc5
|
implement From for Expression-types
|
2018-11-16 14:06:04 -08:00 |
|
greg
|
58779f8470
|
Rename method, make sourcemap optional
|
2018-11-16 12:58:10 -08:00 |
|
greg
|
a0fa50392c
|
Fix compile error
|
2018-11-16 12:46:29 -08:00 |
|
greg
|
d357876b16
|
WIP source map stuff
|
2018-11-16 04:12:07 -08:00 |
|
greg
|
e42f0c644c
|
Introduce source map
|
2018-11-16 03:56:55 -08:00 |
|
greg
|
2ec7bf3b9a
|
Some initial work on passing token metadata to AST
|
2018-11-16 03:51:03 -08:00 |
|
greg
|
5147e1a3eb
|
Handle underscores in identifiers
|
2018-11-15 16:19:53 -08:00 |
|
greg
|
955c073174
|
Got typechecker unused errors down to one
|
2018-11-13 02:39:02 -08:00 |
|
greg
|
7c46a29141
|
Start adding doc comments
|
2018-11-11 18:04:44 -08:00 |
|
greg
|
0adc761e72
|
Kill an unimplemented!()
|
2018-11-11 02:48:51 -08:00 |
|
greg
|
b2039a7b67
|
Parameterize Type type over existential/universal
|
2018-11-10 16:33:42 -08:00 |
|
greg
|
b4c4531e4d
|
Rename for more concision
|
2018-11-10 14:11:29 -08:00 |
|
greg
|
2d36ad44d6
|
Converting over types
WIP
|
2018-11-09 02:50:29 -08:00 |
|
greg
|
21132a369c
|
Paramaterize Type
|
2018-11-09 02:05:59 -08:00 |
|
greg
|
ff0294c56e
|
Typechecking shouldn't fail yet
|
2018-11-09 02:02:08 -08:00 |
|
greg
|
e39356c0e5
|
Even more type work
|
2018-11-09 00:21:34 -08:00 |
|
greg
|
d44bb02d61
|
Even more types
|
2018-11-08 20:30:17 -08:00 |
|
greg
|
9056e9b0e1
|
More type work2
|
2018-11-08 02:29:54 -08:00 |
|
greg
|
e9b90412ce
|
More type work
|
2018-11-08 02:12:01 -08:00 |
|
greg
|
65c47c20fc
|
Change name of monad in which type inference happens
|
2018-11-07 17:01:07 -08:00 |
|
greg
|
fab3fb8ec2
|
More basic types + test
|
2018-11-07 16:39:32 -08:00 |
|
greg
|
0d5ccd21fe
|
TConst
|
2018-11-07 15:39:40 -08:00 |
|
greg
|
69b7b9f528
|
Print out types to REPL
|
2018-11-07 13:44:28 -08:00 |
|
greg
|
9a09f40222
|
More typing work
|
2018-11-07 03:39:31 -08:00 |
|
greg
|
020819550b
|
More typechecking infrastructure
|
2018-11-06 16:47:34 -08:00 |
|
greg
|
15f9dbe7a6
|
Typechecking infrastructure
|
2018-11-06 13:44:52 -08:00 |
|
greg
|
836bed1207
|
Added janky map to prelude
|
2018-11-06 03:02:32 -08:00 |
|
greg
|
cee5b085d5
|
Simpler syntax for single param in lambdas
This kind of implies that I might want -> for function types after all,
instead of :
|
2018-11-06 02:58:57 -08:00 |
|
greg
|
837a55c718
|
Test for nested function call
|
2018-11-06 02:42:28 -08:00 |
|
greg
|
f4f89b39b6
|
Handle nested function calls
|
2018-11-06 02:40:10 -08:00 |
|
greg
|
c6b4ed7ee4
|
Basic lambdas
|
2018-11-06 01:19:16 -08:00 |
|
greg
|
be425860af
|
Starting on lambdas
|
2018-11-05 21:13:31 -08:00 |
|
greg
|
17e88b33f2
|
Eval test doesn't need to be a macro
Can be a fn
|
2018-11-05 21:07:06 -08:00 |
|
greg
|
47f7eb1ef6
|
Make prelude be separate file
|
2018-11-05 20:55:03 -08:00 |
|
greg
|
72d0cfe466
|
More macro test consolidation
|
2018-11-05 20:52:18 -08:00 |
|
greg
|
cea2f63b44
|
Use macros to make types more concise
|
2018-11-05 20:12:10 -08:00 |
|
greg
|
eec315dd58
|
Get rid of exprstatement! macro
For shorter exst! one
|
2018-11-05 19:58:55 -08:00 |
|
greg
|
1e9aa91c5d
|
More concise test macros
|
2018-11-05 19:57:11 -08:00 |
|
greg
|
9813609ad7
|
Minor test refactoring
|
2018-11-05 19:17:53 -08:00 |
|
greg
|
5953d9d815
|
type annotations on lambdas
|
2018-11-05 19:10:34 -08:00 |
|
greg
|
a74e09c761
|
Change lambda syntax
|
2018-11-05 18:51:01 -08:00 |
|
greg
|
ad53d4394b
|
Get rid of println
|
2018-11-05 14:52:51 -08:00 |
|
greg
|
151246e1c5
|
Test for pattern-matching
|
2018-11-05 14:11:49 -08:00 |
|
greg
|
77d2826918
|
Pattern-match on structured objects
|
2018-11-05 14:01:14 -08:00 |
|
greg
|
1bd48ed5db
|
Fix problem with parsing commas
I should probably rethink how delimited block expressions like if-blocks
(and eventually for-blocks) work
|
2018-11-05 13:07:08 -08:00 |
|
greg
|
c394b81746
|
More pattern-matching
|
2018-11-05 04:02:04 -08:00 |
|
greg
|
ec29077247
|
More tuple-matching
Also discovered parser bug
|
2018-11-05 03:41:03 -08:00 |
|
greg
|
62043ac2d1
|
Starting on pattern-matching tuples
Lots of duplicated code here
|
2018-11-05 03:17:03 -08:00 |
|
greg
|
bada386979
|
More work on subpattern matching
|
2018-11-03 12:53:09 -07:00 |
|
greg
|
e71d404071
|
Finished this refactor
|
2018-11-02 19:54:04 -07:00 |
|
greg
|
cab4702bd6
|
Refactoring matching - WIP
doesn't work yet
|
2018-11-01 02:43:47 -07:00 |
|
greg
|
ec5a9d457e
|
String patterns
|
2018-10-31 01:45:16 -07:00 |
|
greg
|
bfbc1580aa
|
Make tag optional
|
2018-10-30 23:36:55 -07:00 |
|
greg
|
2d6c9010b9
|
More work here
|
2018-10-30 18:53:34 -07:00 |
|
greg
|
f4ff92302f
|
Use subpattern abstraction
|
2018-10-30 18:46:06 -07:00 |
|
greg
|
e88ed97b06
|
Add subpattern struct
|
2018-10-30 18:39:25 -07:00 |
|
greg
|
b8df09e956
|
Change eval strategy to use conditional sigil
|
2018-10-29 01:50:43 -07:00 |
|
greg
|
d7f0147a4f
|
Add conditional target placeholder expr
|
2018-10-28 12:45:45 -07:00 |
|
greg
|
f883512882
|
New abstraction layer in Schala-lang parser
Just for manipulating tokens
|
2018-10-21 16:33:21 -07:00 |
|
greg
|
37070a6b3e
|
Move pass chain generation from macro to codegen
|
2018-10-20 18:00:05 -07:00 |
|
greg
|
d7baf065fb
|
Changing what method to call to start parsing
|
2018-10-20 15:41:09 -07:00 |
|
greg
|
6b42f8b8de
|
Change how parsing works
|
2018-10-20 14:27:00 -07:00 |
|
greg
|
7de536ade0
|
Install failure crate
|
2018-10-20 11:17:18 -07:00 |
|
greg
|
4679a9fc7f
|
Remove compiler warnings
|
2018-10-20 00:55:37 -07:00 |
|
greg
|
c25354b2c7
|
Get rid of typechecking code (for now)
I'm tired of seeing the errors. See branch last_commit_with_typechecking
|
2018-10-20 00:41:56 -07:00 |
|
greg
|
5f8b842bf2
|
Delete newline
|
2018-10-20 00:22:41 -07:00 |
|
greg
|
fef66e345b
|
Subpattern field
|
2018-10-19 17:43:22 -07:00 |
|
greg
|
e57d33eae7
|
More work on more patterns
-need to convert guard into a possibly-empty vec
|
2018-10-19 17:27:06 -07:00 |
|
greg
|
dca9ad06c3
|
Handle HalfExpr closer to correct
|
2018-10-19 11:02:10 -07:00 |
|
greg
|
354148c5ba
|
rename codegen -> chala-lang-codegen
|
2018-10-19 09:57:35 -07:00 |
|
greg
|
6219a06d6f
|
Converted all parser methods to use the annotation
|
2018-10-19 02:56:11 -07:00 |
|
greg
|
3b20b40eb7
|
Proc macro generated code for parsing seems to work
|
2018-10-19 02:45:35 -07:00 |
|
greg
|
4ecf63c54d
|
Okay the proc_macro is actually doing something
At the cost of breaking code
|
2018-10-19 02:36:23 -07:00 |
|
greg
|
3d00667caf
|
Add test for ignored pattern
|
2018-10-18 15:55:24 -07:00 |
|
greg
|
4b9c7e38dd
|
Rename TypeName -> TypeIdentifier
|
2018-10-18 13:27:09 -07:00 |
|
greg
|
dff204069f
|
Starting to implement Ignored pattern
|
2018-10-18 01:54:36 -07:00 |
|
greg
|
f2282f0101
|
case_match_expression split out into its own method
|
2018-10-18 01:49:42 -07:00 |
|
greg
|
40ccea8c05
|
Separate assign_expression method
|
2018-10-18 01:46:30 -07:00 |
|
greg
|
cae6f2f768
|
Rename schala-codegen -> schala-repl-codegen
|
2018-10-18 01:09:29 -07:00 |
|
greg
|
1be6991f55
|
Making eval expression method a bit less complex
by splitting it into submethods
|
2018-10-17 20:46:16 -07:00 |
|
greg
|
1b60bd38ff
|
Add codegen crate for schala-lang
|
2018-10-17 15:29:32 -07:00 |
|
greg
|
3b20b9e209
|
Put schala-lang crates into a subdirectory
|
2018-10-17 14:51:48 -07:00 |
|
greg
|
de0e150536
|
Fix if-block parsing to handle newlines
|
2018-10-17 13:44:29 -07:00 |
|
greg
|
baf51fb147
|
Boolean patterns
|
2018-10-17 12:43:09 -07:00 |
|
greg
|
dc9e493fa1
|
Handle more patterns at reduce_ast level
|
2018-10-16 17:18:03 -07:00 |
|
greg
|
d57a8045a9
|
Rename test helper
|
2018-10-16 04:11:18 -07:00 |
|
greg
|
50d5176b45
|
Fix bug add test
|
2018-10-16 04:10:28 -07:00 |
|
greg
|
501eaeee87
|
Implement numeric pattern matching
|
2018-10-16 03:54:08 -07:00 |
|
greg
|
8619c94217
|
Start handling numeric patterns
Still need to add eval support for this
|
2018-10-16 01:38:41 -07:00 |
|
greg
|
9927a6b1fd
|
Implement custom interpreter directives - and a wtf?
See the comment about &mut self vs &self
|
2018-10-15 20:29:23 -07:00 |
|
greg
|
abe2db25b2
|
full if matching working with basic patterns
|
2018-10-15 19:54:17 -07:00 |
|