Commit Graph

119 Commits

Author SHA1 Message Date
greg d20acf7166 Add tokenization for string literal prefixes 2019-11-05 02:22:11 -08:00
greg efc8497235 Rearchitect parser
To ensure that the prelude gets parsed with the same ItemId context as
normal REPL input
2019-10-25 01:49:15 -07:00
greg 11a9a60a34 Rejiggering some things with the SourceMap pointer in Parser 2019-10-23 14:47:18 -07:00
greg 5bb1a245c4 Have Parser accept SourceMap reference 2019-10-23 14:47:18 -07:00
greg 82520aa28d Start to add source map insertions 2019-10-23 14:47:18 -07:00
greg 129d9ec673 A bunch of infrastructure for keeping track of AST node locations
Plus a failing test to illustrate the reason we care
2019-10-23 14:47:18 -07:00
greg 7825ef1eb9 Partial module work 2019-10-23 14:47:18 -07:00
greg c560c29b2d Start to add module syntax 2019-10-22 03:15:14 -07:00
greg 4dcd9d0198 Some more parse trace improvements 2019-10-22 02:11:49 -07:00
greg 8656992945 Made parse trace output a bit nicer
Used ... instead of whitespace, removed extraneous "Production"
2019-10-21 19:18:47 -07:00
greg bb87a87848 Remove this TODO; default args are parsed 2019-10-21 10:53:17 -07:00
greg 7c75f9b2a8 Extraneous comment 2019-10-11 18:45:52 -07:00
greg 44d1f4692f Add back parser restrictions 2019-10-11 09:11:14 -07:00
greg 745afe981a Got compilation working again 2019-10-10 17:50:20 -07:00
greg 8d3639ab8e Fix everything if-refactor-related save reduced_ast 2019-10-10 14:38:48 -07:00
greg 3bca82a8c8 Still more refactoring work 2019-10-10 10:34:54 -07:00
greg 811c52c8d3 More if-expr refactoring work
Think I finished all the parsing stuff, just need to fix the types
everywhere else
2019-10-10 03:56:35 -07:00
greg 95e278d1b5 Chunk of work on if-expr AST
don't expect this to compile yet
2019-10-10 03:29:28 -07:00
greg 61b757313d Alter grammar of if-blocks 2019-10-10 02:34:56 -07:00
greg 2ed84de641 Introduce bare else clause in if exprs
With a non-passing test
2019-10-09 01:50:32 -07:00
greg 22efd39114 Change if-expr syntax
use else instead of ->
2019-10-08 18:23:16 -07:00
greg 904d5c4431 Add "production" line to parse debug output
And also add a .next() in the parser that should've been there
2019-10-04 03:12:09 -07:00
greg 28056b1f89 Add production name in ParseError
for debugging
2019-10-04 03:12:00 -07:00
greg f9a59838b0 Get rid of .into()'s in parser 2019-10-01 02:19:12 -07:00
greg c427646e75 Change type alias 2019-09-28 02:42:18 -07:00
greg a054de56a2 Import statement syntax 2019-09-21 02:30:28 -07:00
greg 603ea89b98 Start adding import keyword 2019-09-20 18:19:29 -07:00
greg 71b3365de2 Remove all the rest of the instances of Meta from the AST
Still need to do tests
2019-09-20 02:21:39 -07:00
greg f5d1c89574 Kill more Meta's 2019-09-20 02:03:10 -07:00
greg 8d1e0ebdea Start to get rid of Meta 2019-09-20 01:57:48 -07:00
greg c9052e0a3b QualifiedName with id 2019-09-19 01:34:21 -07:00
greg 56e6eb44f9 Finish adding ItemId to Expression 2019-09-18 14:15:05 -07:00
greg c12cb99b24 ItemId on statement 2019-09-18 10:07:20 -07:00
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