Commit Graph

239 Commits

Author SHA1 Message Date
Aleksey Kladov
70b3372921 Don't allocate when traversing children 2018-07-30 23:20:02 +03:00
Aleksey Kladov
27a40e0a88 type param defaults 2018-07-30 22:27:23 +03:00
Aleksey Kladov
ac0d8c48f7 JS plugin 2018-07-30 21:58:49 +03:00
Aleksey Kladov
6fc66c4ee6 Use boxed sliced for red nodes 2018-07-30 18:14:14 +03:00
Aleksey Kladov
beaddb4780 Intern static tokens 2018-07-30 18:11:33 +03:00
Aleksey Kladov
60e8a845ca simplify codegen 2018-07-30 18:02:13 +03:00
Aleksey Kladov
7fb7cfc2d1 generate single byte tokens 2018-07-30 17:46:50 +03:00
Aleksey Kladov
d436694097 Path expressions 2018-07-30 17:02:51 +03:00
Aleksey Kladov
3b6a6f6673 Add render test functionality 2018-07-30 16:16:58 +03:00
Aleksey Kladov
d39198490f fn ret type 2018-07-30 15:32:19 +03:00
Aleksey Kladov
333e140a50 Mior 2018-07-30 15:25:52 +03:00
Aleksey Kladov
1edb58a802 reformat 2018-07-30 14:08:06 +03:00
Aleksey Kladov
6983091d6d Cleanup tools 2018-07-30 14:06:22 +03:00
Aleksey Kladov
9a4957d143 clean comments 2018-07-30 12:52:59 +03:00
Aleksey Kladov
97bb223279 Remove indirection 2018-07-30 12:46:42 +03:00
Aleksey Kladov
a2a810f118 Add parent links 2018-07-30 12:44:14 +03:00
Aleksey Kladov
423298dddd Trait for tree root 2018-07-30 12:37:03 +03:00
Aleksey Kladov
ae849cf134 Owned&Borrowed nodes
HOLLY COW, UNLIKE C++, WE CAN BE GENERIC WRT OWNERSHIP/BORROWING, SO
WE CAN BOTH MAKE SYNTAX NODES OWNED (WHICH IS CONVENIENT) AND
BORROWED (WHICH IS CONVENIENT FOR LOCAL PROCESSING, BC YOU DON'T NEED
TO BUMP REFCOUNTS).
2018-07-30 03:21:17 +03:00
Aleksey Kladov
83acbc06bd No need to Arc reds, they are rooted anyways 2018-07-30 02:39:26 +03:00
Aleksey Kladov
4e79073e38 Use raw pointers 2018-07-30 02:23:07 +03:00
Aleksey Kladov
b87291a8a4 Move grammar 2018-07-30 02:23:07 +03:00
Aleksey Kladov
13c6a5c4b0 Avoid optimizing trivia for now 2018-07-29 16:19:16 +03:00
Aleksey Kladov
415c891d64 Reorganize 2018-07-29 15:16:07 +03:00
Aleksey Kladov
ad188d4c3d kill old tree 2018-07-29 14:37:48 +03:00
Aleksey Kladov
c12450fb4e Introduce red-green syntax tree 2018-07-29 13:51:55 +03:00
Aleksey Kladov
8d9961b753 Migrate to text-unit 2018-07-28 13:07:10 +03:00
Aleksey Kladov
52dc0ddc84 Add vis test 2018-07-28 13:00:16 +03:00
Aleksey Kladov
c6f4a06b42 G: value_parameters, patterns & let statement 2018-02-18 01:06:48 +03:00
Aleksey Kladov
1c4e05ec2f More correct path type 2018-02-17 16:27:17 +03:00
Aleksey Kladov
b920b3d50b Use stable rustfmt-preview 2018-02-17 01:05:07 +03:00
Aleksey Kladov
c8910b0683 G: for type 2018-02-11 23:32:49 +03:00
Aleksey Kladov
f356628ad8 Formatting 2018-02-11 17:59:24 +03:00
Aleksey Kladov
59087840f5 Document how the parsing works 2018-02-11 17:58:22 +03:00
Aleksey Kladov
9e2c056478 Separate parser API from implementation 2018-02-11 16:53:57 +03:00
Aleksey Kladov
65ebfd9a34 Simplify 2018-02-11 13:19:10 +03:00
Aleksey Kladov
96437b050f Formatting 2018-02-11 12:58:12 +03:00
Aleksey Kladov
8a3f17a4e2 G: fn pointer type 2018-02-11 12:51:09 +03:00
Aleksey Kladov
2fb33b2d0d G: placeholder types 2018-02-11 11:57:05 +03:00
Aleksey Kladov
eb4c05d572 G: reference types 2018-02-11 11:54:09 +03:00
Aleksey Kladov
555c4ae375 G: slice & array types 2018-02-11 11:37:08 +03:00
Aleksey Kladov
ceb94ece2a G: pointer types 2018-02-11 11:19:54 +03:00
Aleksey Kladov
2389cf96dd G: Never type 2018-02-11 11:01:00 +03:00
Aleksey Kladov
b097090690 G: more types 2018-02-11 00:46:28 +03:00
Aleksey Kladov
199b3a1604 G: use name in mods 2018-02-10 14:23:18 +03:00
Aleksey Kladov
d68a187eb5 G: use name in types 2018-02-10 14:22:31 +03:00
Aleksey Kladov
e792ec3eca G: use name refs in paths 2018-02-10 14:17:38 +03:00
Aleksey Kladov
fa2131365e G: use names in traits 2018-02-10 14:15:04 +03:00
Aleksey Kladov
c13e6db774 G: use names in fields 2018-02-10 14:13:30 +03:00
Aleksey Kladov
8a735b6672 G: use names in enums 2018-02-10 14:10:50 +03:00
Aleksey Kladov
ca6e93f091 G: use names in structs 2018-02-10 14:10:02 +03:00
Aleksey Kladov
f746fb6a93 G: use names in consts 2018-02-10 14:08:46 +03:00
Aleksey Kladov
3c9d8ff423 G: names for fns 2018-02-10 14:04:31 +03:00
Aleksey Kladov
fc0a9e266b G: introduce names 2018-02-10 14:00:23 +03:00
Aleksey Kladov
dd6e5371eb G: where clause 2018-02-10 12:53:07 +03:00
Aleksey Kladov
2ef16a4121 G: type item 2018-02-10 12:35:40 +03:00
Aleksey Kladov
ac932df22a reformat 2018-02-09 22:55:50 +03:00
Aleksey Kladov
0ae26c344a Drop ErrorBuilder nonsense 2018-02-09 22:44:50 +03:00
Aleksey Kladov
351107d0b1 Reformat 2018-02-04 17:06:43 +03:00
Aleksey Kladov
c119e8fd8b G: unsafe fn 2018-02-04 17:06:07 +03:00
Aleksey Kladov
85c42fba12 Support contextual tokens 2018-02-04 16:46:26 +03:00
Aleksey Kladov
852543212b Extract parser input into a separate struct 2018-02-04 14:57:57 +03:00
Aleksey Kladov
c74eaf1fdf Simplify 2018-02-04 13:56:51 +03:00
Aleksey Kladov
d94124e3b4 Somewhat more san directory structure 2018-02-04 13:53:47 +03:00
Aleksey Kladov
a40b715ce1 G: unsafe impl & trait 2018-02-04 13:53:05 +03:00
Aleksey Kladov
003ea633e9 Add more inline tests 2018-02-04 12:28:30 +03:00
Aleksey Kladov
9b3d806b0d Add infra for inline tests 2018-02-03 22:34:35 +03:00
Aleksey Kladov
bb381a7ff7 Move tools to a separate package 2018-02-03 12:51:06 +03:00
Aleksey Kladov
e5273d33d0 G: const item 2018-02-03 12:05:57 +03:00
Aleksey Kladov
0000f4f4f2 G: static items 2018-02-02 23:45:15 +03:00
Aleksey Kladov
049c9b60fb L: const & static keywords 2018-02-02 23:30:17 +03:00
Aleksey Kladov
be20b014d9 Move type parameter parsing to a separate file 2018-02-02 23:23:39 +03:00
Aleksey Kladov
7cdf990c40 Move use item parsing to a separate file 2018-02-02 22:21:06 +03:00
Aleksey Kladov
c9318e046c G: extern functions 2018-02-02 22:08:37 +03:00
Aleksey Kladov
7a02097b71 Formatting 2018-01-30 22:56:13 +03:00
Aleksey Kladov
197a2e6fef G: type_parameter_list 2018-01-30 22:53:19 +03:00
Aleksey Kladov
55e2a478be Reformat 2018-01-28 23:14:00 +03:00
Aleksey Kladov
c23a2519e1 Print identifiers in test data 2018-01-28 23:13:32 +03:00
Aleksey Kladov
b7c141e0b5 Parse enums 2018-01-28 22:59:18 +03:00
Aleksey Kladov
8ca02acb5a Generic params in structs 2018-01-28 21:18:24 +03:00
Aleksey Kladov
7e55b2693f Move struct parsing to a separate module 2018-01-28 21:18:24 +03:00
Aleksey Kladov
d1d47e6244 Skip over balanced parens 2018-01-28 20:53:01 +03:00
Aleksey Kladov
dee7046f7e Don't return SyntaxKind from bump 2018-01-28 14:58:51 +03:00
Aleksey Kladov
2141888782 Rename raw_lookahead -> nth 2018-01-28 14:33:10 +03:00
Aleksey Kladov
60725def49 Simplify 2018-01-28 14:30:59 +03:00
Aleksey Kladov
3cd2b2473b Drop curly_block
closes #13
2018-01-28 14:26:24 +03:00
bors[bot]
7a6fa6504c Merge #24
24: Block Comments r=matklad a=CAD97

closes #7
2018-01-28 10:52:49 +00:00
Christopher Durham
5982e6d73b
Update comments.rs 2018-01-28 05:51:39 -05:00
Christopher Durham
f4f79038d1 Block Comments
closes #7
2018-01-28 05:08:25 -05:00
Aleksey Kladov
83aa6f0899 Simplify item parsing 2018-01-28 12:57:03 +03:00
Christopher Durham
14c0ee90ca
Update gen.rs 2018-01-28 04:31:18 -05:00
Aleksey Kladov
169d5d371a Drop repr(u32) from SyntaxKind
Nomicon says it disables some optimizations:
https://doc.rust-lang.org/beta/nomicon/other-reprs.html#repru-repri
2018-01-28 12:24:03 +03:00
bors[bot]
bec9f09134 Merge #18
18: Comments r=matklad a=matklad
2018-01-28 09:07:26 +00:00
Aleksey Kladov
d3dedcace8 Document events a bit 2018-01-28 12:06:43 +03:00
Aleksey Kladov
cd4e13f10a Document events a bit 2018-01-28 12:06:26 +03:00
Aleksey Kladov
52104f7d25 Explain TOMBSTONE and EOF 2018-01-28 11:43:59 +03:00
bors[bot]
092f9a6b98 Merge #17
17: Document the design of `FileBuilder` r=matklad a=matklad
2018-01-28 08:18:47 +00:00
Aleksey Kladov
1417f26f82 Document the design of FileBuilder 2018-01-28 11:18:17 +03:00
Christopher Durham
4244948c6b Convert SyntaxKind to an enum 2018-01-27 21:52:22 -05:00
Christopher Durham
50b9012e10 Add minimal docs to most public symbols 2018-01-27 20:29:14 -05:00
Christopher Durham
55e8755fbb Enforce rustfmt format 2018-01-27 18:36:02 -05:00