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