Lines Matching refs:input
110 /// fn parse(input: ParseStream) -> Result<Self> {
111 /// let outer_attrs = input.call(Attribute::parse_outer)?;
112 /// let fn_token: Token![fn] = input.parse()?;
113 /// let name: Ident = input.parse()?;
116 /// let brace_token = braced!(content in input);
135 pub fn parse_within(input: ParseStream) -> Result<Vec<Stmt>> {
138 while let semi @ Some(_) = input.parse()? {
141 if input.is_empty() {
144 let stmt = parse_stmt(input, AllowNoSemi(true))?;
153 if input.is_empty() {
156 return Err(input.error("unexpected token, expected `;`"));
165 fn parse(input: ParseStream) -> Result<Self> {
168 brace_token: braced!(content in input),
176 fn parse(input: ParseStream) -> Result<Self> {
178 parse_stmt(input, allow_nosemi)
182 fn parse_stmt(input: ParseStream, allow_nosemi: AllowNoSemi) -> Result<Stmt> {
183 let begin = input.fork();
184 let attrs = input.call(Attribute::parse_outer)?;
188 let ahead = input.fork();
197 input.advance_to(&ahead);
198 return stmt_mac(input, attrs, path).map(Stmt::Macro);
203 if input.peek(Token![let]) && !input.peek(token::Group) {
204 stmt_local(input, attrs).map(Stmt::Local)
205 } else if input.peek(Token![pub])
206 || input.peek(Token![crate]) && !input.peek2(Token![::])
207 || input.peek(Token![extern])
208 || input.peek(Token![use])
209 || input.peek(Token![static])
210 && (input.peek2(Token![mut])
211 || input.peek2(Ident)
212 && !(input.peek2(Token![async])
213 && (input.peek3(Token![move]) || input.peek3(Token![|]))))
214 || input.peek(Token![const])
215 && !(input.peek2(token::Brace)
216 || input.peek2(Token![static])
217 || input.peek2(Token![async])
218 && !(input.peek3(Token![unsafe])
219 || input.peek3(Token![extern])
220 || input.peek3(Token![fn]))
221 || input.peek2(Token![move])
222 || input.peek2(Token![|]))
223 || input.peek(Token![unsafe]) && !input.peek2(token::Brace)
224 || input.peek(Token![async])
225 && (input.peek2(Token![unsafe])
226 || input.peek2(Token![extern])
227 || input.peek2(Token![fn]))
228 || input.peek(Token![fn])
229 || input.peek(Token![mod])
230 || input.peek(Token![type])
231 || input.peek(Token![struct])
232 || input.peek(Token![enum])
233 || input.peek(Token![union]) && input.peek2(Ident)
234 || input.peek(Token![auto]) && input.peek2(Token![trait])
235 || input.peek(Token![trait])
236 || input.peek(Token![default])
237 && (input.peek2(Token![unsafe]) || input.peek2(Token![impl]))
238 || input.peek(Token![impl])
239 || input.peek(Token![macro])
242 let item = item::parsing::parse_rest_of_item(begin, attrs, input)?;
245 stmt_expr(input, allow_nosemi, attrs)
249 fn stmt_mac(input: ParseStream, attrs: Vec<Attribute>, path: Path) -> Result<StmtMacro> {
250 let bang_token: Token![!] = input.parse()?;
251 let (delimiter, tokens) = mac::parse_delimiter(input)?;
252 let semi_token: Option<Token![;]> = input.parse()?;
266 fn stmt_local(input: ParseStream, attrs: Vec<Attribute>) -> Result<Local> {
267 let let_token: Token![let] = input.parse()?;
269 let mut pat = Pat::parse_single(input)?;
270 if input.peek(Token![:]) {
271 let colon_token: Token![:] = input.parse()?;
272 let ty: Type = input.parse()?;
281 let init = if let Some(eq_token) = input.parse()? {
283 let expr: Expr = input.parse()?;
285 let diverge = if let Some(else_token) = input.parse()? {
290 block: input.parse()?,
306 let semi_token: Token![;] = input.parse()?;
318 input: ParseStream,
322 let mut e = expr::parsing::expr_early(input)?;
371 let semi_token: Option<Token![;]> = input.parse()?;
391 Err(input.error("expected semicolon"))