aboutsummaryrefslogtreecommitdiff
path: root/src/parser/event_parser/grammar/items/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/event_parser/grammar/items/mod.rs')
-rw-r--r--src/parser/event_parser/grammar/items/mod.rs70
1 files changed, 0 insertions, 70 deletions
diff --git a/src/parser/event_parser/grammar/items/mod.rs b/src/parser/event_parser/grammar/items/mod.rs
index 1c092779b..35825e7c4 100644
--- a/src/parser/event_parser/grammar/items/mod.rs
+++ b/src/parser/event_parser/grammar/items/mod.rs
@@ -83,76 +83,6 @@ fn item(p: &mut Parser) {
83 item.complete(p, item_kind); 83 item.complete(p, item_kind);
84} 84}
85 85
86fn type_param_list(p: &mut Parser) {
87 if !p.at(L_ANGLE) {
88 return;
89 }
90 let m = p.start();
91 p.bump();
92
93 while !p.at(EOF) && !p.at(R_ANGLE) {
94 match p.current() {
95 LIFETIME => lifetime_param(p),
96 IDENT => type_param(p),
97 _ => p.err_and_bump("expected type parameter"),
98 }
99 if !p.at(R_ANGLE) && !p.expect(COMMA) {
100 break;
101 }
102 }
103 p.expect(R_ANGLE);
104 m.complete(p, TYPE_PARAM_LIST);
105
106 fn lifetime_param(p: &mut Parser) {
107 assert!(p.at(LIFETIME));
108 let m = p.start();
109 p.bump();
110 if p.eat(COLON) {
111 while p.at(LIFETIME) {
112 p.bump();
113 if !p.eat(PLUS) {
114 break;
115 }
116 }
117 }
118 m.complete(p, LIFETIME_PARAM);
119 }
120
121 fn type_param(p: &mut Parser) {
122 assert!(p.at(IDENT));
123 let m = p.start();
124 p.bump();
125 if p.eat(COLON) {
126 loop {
127 let has_paren = p.eat(L_PAREN);
128 p.eat(QUESTION);
129 if p.at(FOR_KW) {
130 //TODO
131 }
132 if p.at(LIFETIME) {
133 p.bump();
134 } else if paths::is_path_start(p) {
135 paths::type_path(p);
136 } else {
137 break;
138 }
139 if has_paren {
140 p.expect(R_PAREN);
141 }
142 if !p.eat(PLUS) {
143 break;
144 }
145 }
146 }
147 if p.at(EQ) {
148 types::type_ref(p)
149 }
150 m.complete(p, TYPE_PARAM);
151 }
152}
153
154fn where_clause(_: &mut Parser) {}
155
156fn extern_crate_item(p: &mut Parser) { 86fn extern_crate_item(p: &mut Parser) {
157 assert!(p.at(EXTERN_KW)); 87 assert!(p.at(EXTERN_KW));
158 p.bump(); 88 p.bump();