11use proc_macro2:: { Span , TokenStream , TokenTree } ;
22use quote:: quote;
3- use syn:: {
4- parse:: { Parse , ParseStream } ,
5- Expr , Token ,
6- } ;
73
84type Result < T > = std:: result:: Result < T , syn:: Error > ;
95
@@ -28,47 +24,6 @@ pub fn parse_trees_top(input: TokenStream) -> Result<TokenStream> {
2824 Ok ( crate :: ast:: Template :: lower_list ( & templates) )
2925}
3026
31- pub fn parse_tree_at_top ( input : TokenStream ) -> Result < TokenStream > {
32- let LocatedTreeInput { source, template } = syn:: parse2 ( input) ?;
33- let template = crate :: template_parse:: parse_template ( template) ?;
34- let node = template. lower_root ( ) ;
35- let ctx = syn:: Ident :: new ( "ctx" , Span :: call_site ( ) ) ;
36-
37- Ok ( quote ! {
38- {
39- let __yeast_source: yeast:: Id = { #source } ;
40- let __yeast_source_range = #ctx
41- . ast
42- . get_node( __yeast_source)
43- . and_then( |node| node. source_range( ) ) ;
44- let __yeast_node: yeast:: Id = #node;
45- #ctx. set_node_source_range( __yeast_node, __yeast_source_range)
46- }
47- } )
48- }
49-
50- pub fn parse_tree_spanning_top ( input : TokenStream ) -> Result < TokenStream > {
51- let LocatedTreeInput {
52- source : sources,
53- template,
54- } = syn:: parse2 ( input) ?;
55- let template = crate :: template_parse:: parse_template ( template) ?;
56- let node = template. lower_root ( ) ;
57- let ctx = syn:: Ident :: new ( "ctx" , Span :: call_site ( ) ) ;
58-
59- Ok ( quote ! {
60- {
61- let __yeast_source_range = :: std:: iter:: IntoIterator :: into_iter( { #sources } )
62- . filter_map( |source: yeast:: Id | {
63- #ctx. ast. get_node( source) . and_then( |node| node. source_range( ) )
64- } )
65- . reduce( yeast:: Range :: union ) ;
66- let __yeast_node: yeast:: Id = #node;
67- #ctx. set_node_source_range( __yeast_node, __yeast_source_range)
68- }
69- } )
70- }
71-
7227pub fn parse_rule_top ( input : TokenStream ) -> Result < TokenStream > {
7328 Ok ( crate :: rule_parse:: parse_rule ( input) ?. lower ( ) )
7429}
@@ -127,20 +82,6 @@ pub fn parse_rules_top(input: TokenStream) -> Result<TokenStream> {
12782 } )
12883}
12984
130- struct LocatedTreeInput {
131- source : Expr ,
132- template : TokenStream ,
133- }
134-
135- impl Parse for LocatedTreeInput {
136- fn parse ( input : ParseStream < ' _ > ) -> syn:: Result < Self > {
137- let source = input. parse ( ) ?;
138- input. parse :: < Token ! [ , ] > ( ) ?;
139- let template = input. parse ( ) ?;
140- Ok ( Self { source, template } )
141- }
142- }
143-
14485struct NamedString {
14586 value : String ,
14687}
0 commit comments