greg
bf3dcc18d0
Fixed trace parsing debug output
2019-08-12 09:34:36 -07:00
greg
d67ccf5c7a
Refactor Expression struct
...
to have explicit kind and type_anno fields, to make it clearer
that this represents source-code level annotation and not any kind
of type inference intermediate product
2019-07-10 18:52:25 -07:00
greg
b6e3469573
Default argument to function
2019-06-16 21:36:59 -07:00
greg
32fe7430a4
Equals should be a token type
2019-06-16 16:07:27 -07:00
greg
c332747c3e
Move parse test code into separate module
2019-06-16 15:03:34 -07:00
greg
33c2786ea1
More complicated FormalParam type
2019-06-16 14:56:52 -07:00
greg
71386be80e
Make tests pass by using multiple-k lookahead
2019-06-14 02:28:14 -07:00
greg
ccdc02bbd0
Peek multiple tokens ahead
2019-06-14 01:30:53 -07:00
greg
3a207cf7a7
Make TokenHandler use an array and index
...
Instead of a peekable iterator, so I can implement LL(k) parsing
2019-06-14 00:44:54 -07:00
greg
53ce31ea8c
Start creating new TokenHandler infra
...
on top of old stuff
2019-06-14 07:21:32 +00:00
greg
4c688ce8b2
Lol grammar is no longer LL(1)
...
need to fix
2019-06-13 02:27:11 -07:00
greg
40579d80ce
More work on args
...
not quite done
2019-06-12 03:28:46 -07:00
greg
fa1257e2cd
Starting work on more complicated call expressions
...
Probably won't build yet
2019-06-12 00:20:20 +00:00
greg
e9fd20bfe5
A few more fixes to EBNF
2019-06-09 01:12:19 -07:00
greg
dfbd951aaf
Some fixes to the EBNF grammar
2019-06-09 01:08:32 -07:00
greg
6b47ecf2d7
First pass at putting EBNF grammar into rustdoc
2019-06-09 00:01:11 -07:00
greg
956353cd80
Move rc! macro to util
...
So it can be used anywhere
2019-03-08 01:15:19 -08:00
greg
f041cc17d2
Wrap all Expression nodes in Meta<Expression>
2019-02-21 23:35:18 -08:00
greg
b35262c444
Rename Node -> Meta
2019-02-21 01:49:15 -08:00
greg
9fa0576547
Rename ExpressionType -> ExpressionKind
2019-02-21 01:26:51 -08:00
greg
a6eb2b4020
Allow type annotations in let expressions
2019-02-20 22:44:45 -08:00
greg
2be55958f4
add Into<String> arg for error constructors
2019-02-20 02:06:58 -08:00
greg
c225e469ee
Change Record variant representation
2019-01-24 20:47:20 -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
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
30676722a3
Transition to edition 2018
2019-01-07 13:00:37 -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
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
58779f8470
Rename method, make sourcemap optional
2018-11-16 12:58:10 -08:00
greg
d357876b16
WIP source map stuff
2018-11-16 04:12:07 -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
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
f4f89b39b6
Handle nested function calls
2018-11-06 02:40:10 -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
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
f883512882
New abstraction layer in Schala-lang parser
...
Just for manipulating tokens
2018-10-21 16:33:21 -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
4679a9fc7f
Remove compiler warnings
2018-10-20 00:55:37 -07:00
greg
dca9ad06c3
Handle HalfExpr closer to correct
2018-10-19 11:02:10 -07:00
greg
6219a06d6f
Converted all parser methods to use the annotation
2018-10-19 02:56:11 -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
4b9c7e38dd
Rename TypeName -> TypeIdentifier
2018-10-18 13:27:09 -07:00
greg
3b20b9e209
Put schala-lang crates into a subdirectory
2018-10-17 14:51:48 -07:00