greg
8dc8833eb3
Item Id store
2019-09-18 09:56:11 -07:00
greg
b517bc2366
Add ItemId type to AST
2019-09-18 02:15:45 -07:00
greg
b91c3c9da5
Change design of Statement AST node
2019-09-17 02:25:11 -07:00
greg
08da787aae
Make AST a struct
2019-09-11 19:25:12 -07:00
greg
9a28ccfd85
Tests compile again
2019-09-07 19:08:50 -07:00
greg
ea542192be
Temp qualified names work
2019-09-06 17:19:41 -07:00
greg
79635f2f86
Add Meta annotation to QualifiedName
2019-09-06 10:03:50 -07:00
greg
2b5b1589b0
tests compile, 15 fail
2019-09-06 02:30:18 -07:00
greg
44c073320b
Code builds, tests don't
2019-09-06 02:23:04 -07:00
greg
c04e4356a1
Changing how patterns work
...
to support qualified names in patterns
2019-09-04 10:53:52 -07:00
greg
24e0ecbe73
partial work
2019-09-03 21:14:12 -07:00
greg
b4da57f5c5
Make Meta<Expression> exist everywhere it needs to
2019-09-02 14:41:09 -07:00
greg
8b87945bee
Wrap remaining Expressions in Meta
2019-09-02 14:13:53 -07:00
greg
34abb9b081
Start work on qualified names
2019-08-31 23:39:01 -07:00
greg
063a13f7ff
Move BinOp into ast subcrate
...
now builtins is only builtin semantics and has nothing to do with
operators
2019-08-15 06:28:40 -07:00
greg
fde169b623
Make operators live in a submodule of ast
...
Starting with PrefixOp, BinOp happens next
2019-08-14 07:25:45 -07:00
greg
0dd6b26e5a
Move where PrefixOp lives
2019-08-13 04:17:17 -07:00
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