Remove parse module.
This commit is contained in:
		
							parent
							
								
									4c46df9a59
								
							
						
					
					
						commit
						2a84e038c4
					
				| @ -7,7 +7,6 @@ mod metadata; | |||||||
| mod request; | mod request; | ||||||
| mod response; | mod response; | ||||||
| 
 | 
 | ||||||
| // use parse::Entry;
 |  | ||||||
| use self::metadata::Metadata; | use self::metadata::Metadata; | ||||||
| use self::request::Request; | use self::request::Request; | ||||||
| use self::response::Response; | use self::response::Response; | ||||||
|  | |||||||
| @ -21,7 +21,6 @@ use quote::{ToTokens, Tokens}; | |||||||
| use api::{Api, Exprs}; | use api::{Api, Exprs}; | ||||||
| 
 | 
 | ||||||
| mod api; | mod api; | ||||||
| // mod parse;
 |  | ||||||
| 
 | 
 | ||||||
| /// Generates a `ruma_api::Endpoint` from a concise definition.
 | /// Generates a `ruma_api::Endpoint` from a concise definition.
 | ||||||
| ///
 | ///
 | ||||||
| @ -197,10 +196,8 @@ mod api; | |||||||
| #[proc_macro] | #[proc_macro] | ||||||
| pub fn ruma_api(input: TokenStream) -> TokenStream { | pub fn ruma_api(input: TokenStream) -> TokenStream { | ||||||
|     let exprs: Exprs = syn::parse(input).expect("ruma_api! failed to parse input"); |     let exprs: Exprs = syn::parse(input).expect("ruma_api! failed to parse input"); | ||||||
|     let api = match Api::try_from(exprs.inner) { | 
 | ||||||
|         Ok(api) => api, |     let api = Api::from(exprs.inner); | ||||||
|         Err(error) => panic!("{}", error), |  | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
|     let mut tokens = Tokens::new(); |     let mut tokens = Tokens::new(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										144
									
								
								src/parse.rs
									
									
									
									
									
								
							
							
						
						
									
										144
									
								
								src/parse.rs
									
									
									
									
									
								
							| @ -1,144 +0,0 @@ | |||||||
| //! Implementation details of parsing proc macro input.
 |  | ||||||
| 
 |  | ||||||
| use syn::{ |  | ||||||
|     Attribute, |  | ||||||
|     AttrStyle, |  | ||||||
|     Expr, |  | ||||||
|     Field, |  | ||||||
|     Ident, |  | ||||||
|     Meta, |  | ||||||
|     NestedMeta, |  | ||||||
|     Visibility, |  | ||||||
| }; |  | ||||||
| // use syn::parse::{expr, ident, lit, ty};
 |  | ||||||
| // use synom::space::{block_comment, whitespace};
 |  | ||||||
| 
 |  | ||||||
| #[derive(Debug)] |  | ||||||
| pub enum Entry { |  | ||||||
|     Metadata(Vec<(Ident, Expr)>), |  | ||||||
|     Request(Vec<Field>), |  | ||||||
|     Response(Vec<Field>), |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| named!(pub parse_entries -> Vec<Entry>, do_parse!( |  | ||||||
|     entries: many0!(entry) >> |  | ||||||
|     (entries) |  | ||||||
| )); |  | ||||||
| 
 |  | ||||||
| named!(entry -> Entry, alt!( |  | ||||||
|     do_parse!( |  | ||||||
|         block_type: syn!(Ident) >> |  | ||||||
|         cond_reduce!(block_type == "metadata") >> |  | ||||||
|         brace_and_fields: braces!(many0!(struct_init_field)) >> |  | ||||||
|         (Entry::Metadata(brace_and_fields.1)) |  | ||||||
|     ) |  | ||||||
|     | |  | ||||||
|     do_parse!( |  | ||||||
|         block_type: syn!(Ident) >> |  | ||||||
|         cond_reduce!(block_type == "request") >> |  | ||||||
|         brace_and_fields: braces!(terminated_list!(punct!(","), struct_field)) >> |  | ||||||
|         (Entry::Request(brace_and_fields.1)) |  | ||||||
|     ) |  | ||||||
|     | |  | ||||||
|     do_parse!( |  | ||||||
|         block_type: syn!(Ident) >> |  | ||||||
|         cond_reduce!(block_type == "response") >> |  | ||||||
|         brace_and_fields: braces!(terminated_list!(punct!(","), struct_field)) >> |  | ||||||
|         (Entry::Response(brace_and_fields.1)) |  | ||||||
|     ) |  | ||||||
| )); |  | ||||||
| 
 |  | ||||||
| // Everything below copy/pasted from syn 0.11.11.
 |  | ||||||
| 
 |  | ||||||
| named!(struct_init_field -> (Ident, Expr), do_parse!( |  | ||||||
|     ident: ident >> |  | ||||||
|     punct!(:) >> |  | ||||||
|     expr: expr >> |  | ||||||
|     punct!(,) >> |  | ||||||
|     (ident, expr) |  | ||||||
| )); |  | ||||||
| 
 |  | ||||||
| named!(struct_field -> Field, do_parse!( |  | ||||||
|     attrs: many0!(outer_attr) >> |  | ||||||
|     visibility >> |  | ||||||
|     id: ident >> |  | ||||||
|     punct!(:) >> |  | ||||||
|     ty: ty >> |  | ||||||
|     (Field { |  | ||||||
|         ident: Some(id), |  | ||||||
|         vis: Visibility::Public, // Ignore declared visibility, always make fields public
 |  | ||||||
|         attrs: attrs, |  | ||||||
|         ty: ty, |  | ||||||
|     }) |  | ||||||
| )); |  | ||||||
| 
 |  | ||||||
| named!(outer_attr -> Attribute, alt!( |  | ||||||
|     do_parse!( |  | ||||||
|         punct!(#) >> |  | ||||||
|         brackets_and_meta_item: brackets!(meta_item) >> |  | ||||||
|         (Attribute { |  | ||||||
|             style: AttrStyle::Outer, |  | ||||||
|             value: brackets_and_meta_item.1, |  | ||||||
|             is_sugared_doc: false, |  | ||||||
|         }) |  | ||||||
|     ) |  | ||||||
|     | |  | ||||||
|     do_parse!( |  | ||||||
|         punct!(/) >> |  | ||||||
|         punct!(/) >> |  | ||||||
|         punct!(/) >> |  | ||||||
|         not!(tag!("/")) >> |  | ||||||
|         content: take_until!("\n") >> |  | ||||||
|         (Attribute { |  | ||||||
|             style: AttrStyle::Outer, |  | ||||||
|             value: Meta::NameValue( |  | ||||||
|                 "doc".into(), |  | ||||||
|                 format!("///{}", content).into(), |  | ||||||
|             ), |  | ||||||
|             is_sugared_doc: true, |  | ||||||
|         }) |  | ||||||
|     ) |  | ||||||
|     | |  | ||||||
|     do_parse!( |  | ||||||
|         option!(whitespace) >> |  | ||||||
|         peek!(tuple!(tag!("/**"), not!(tag!("*")))) >> |  | ||||||
|         com: block_comment >> |  | ||||||
|         (Attribute { |  | ||||||
|             style: AttrStyle::Outer, |  | ||||||
|             value: Meta::NameValue( |  | ||||||
|                 "doc".into(), |  | ||||||
|                 com.into(), |  | ||||||
|             ), |  | ||||||
|             is_sugared_doc: true, |  | ||||||
|         }) |  | ||||||
|     ) |  | ||||||
| )); |  | ||||||
| 
 |  | ||||||
| named!(meta_item -> Meta, alt!( |  | ||||||
|     do_parse!( |  | ||||||
|         id: ident >> |  | ||||||
|         parens_and_inner: parens!(terminated_list!(punct!(,), nested_meta_item)) >> |  | ||||||
|         (Meta::List(id, parens_and_inner.1)) |  | ||||||
|     ) |  | ||||||
|     | |  | ||||||
|     do_parse!( |  | ||||||
|         name: ident >> |  | ||||||
|         punct!(=) >> |  | ||||||
|         value: lit >> |  | ||||||
|         (Meta::NameValue(name, value)) |  | ||||||
|     ) |  | ||||||
|     | |  | ||||||
|     map!(ident, Meta::Word) |  | ||||||
| )); |  | ||||||
| 
 |  | ||||||
| named!(nested_meta_item -> NestedMeta, alt!( |  | ||||||
|     meta_item => { NestedMeta::Meta } |  | ||||||
|     | |  | ||||||
|     lit => { NestedMeta::Literal } |  | ||||||
| )); |  | ||||||
| 
 |  | ||||||
| named!(visibility -> Visibility, alt!( |  | ||||||
|     keyword!(pub) => { |_| Visibility::Public } |  | ||||||
|     | |  | ||||||
|     epsilon!() => { |_| Visibility::Inherited } |  | ||||||
| )); |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user