@@ -45,67 +45,6 @@ <h1>Source code for fluent.syntax.ast</h1><div class="highlight"><pre>
4545< span class ="kn "> import</ span > < span class ="nn "> six</ span >
4646
4747
48- < div class ="viewcode-block " id ="Visitor "> < a class ="viewcode-back " href ="../../../ast.html#fluent.syntax.ast.Visitor "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> Visitor</ span > < span class ="p "> (</ span > < span class ="nb "> object</ span > < span class ="p "> ):</ span >
49- < span class ="sd "> '''Read-only visitor pattern.</ span >
50-
51- < span class ="sd "> Subclass this to gather information from an AST.</ span >
52- < span class ="sd "> To generally define which nodes not to descend in to, overload</ span >
53- < span class ="sd "> `generic_visit`.</ span >
54- < span class ="sd "> To handle specific node types, add methods like `visit_Pattern`.</ span >
55- < span class ="sd "> If you want to still descend into the children of the node, call</ span >
56- < span class ="sd "> `generic_visit` of the superclass.</ span >
57- < span class ="sd "> '''</ span >
58- < span class ="k "> def</ span > < span class ="nf "> visit</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> node</ span > < span class ="p "> ):</ span >
59- < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> ,</ span > < span class ="nb "> list</ span > < span class ="p "> ):</ span >
60- < span class ="k "> for</ span > < span class ="n "> child</ span > < span class ="ow "> in</ span > < span class ="n "> node</ span > < span class ="p "> :</ span >
61- < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> visit</ span > < span class ="p "> (</ span > < span class ="n "> child</ span > < span class ="p "> )</ span >
62- < span class ="k "> return</ span >
63- < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> ,</ span > < span class ="n "> BaseNode</ span > < span class ="p "> ):</ span >
64- < span class ="k "> return</ span >
65- < span class ="n "> nodename</ span > < span class ="o "> =</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="vm "> __name__</ span >
66- < span class ="n "> visit</ span > < span class ="o "> =</ span > < span class ="nb "> getattr</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'visit_</ span > < span class ="si "> {}</ span > < span class ="s1 "> '</ span > < span class ="o "> .</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="n "> nodename</ span > < span class ="p "> ),</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> generic_visit</ span > < span class ="p "> )</ span >
67- < span class ="n "> visit</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> )</ span >
68-
69- < span class ="k "> def</ span > < span class ="nf "> generic_visit</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> node</ span > < span class ="p "> ):</ span >
70- < span class ="k "> for</ span > < span class ="n "> propname</ span > < span class ="p "> ,</ span > < span class ="n "> propvalue</ span > < span class ="ow "> in</ span > < span class ="nb "> vars</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> items</ span > < span class ="p "> ():</ span >
71- < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> visit</ span > < span class ="p "> (</ span > < span class ="n "> propvalue</ span > < span class ="p "> )</ span > </ div >
72-
73-
74- < div class ="viewcode-block " id ="Transformer "> < a class ="viewcode-back " href ="../../../ast.html#fluent.syntax.ast.Transformer "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> Transformer</ span > < span class ="p "> (</ span > < span class ="n "> Visitor</ span > < span class ="p "> ):</ span >
75- < span class ="sd "> '''In-place AST Transformer pattern.</ span >
76-
77- < span class ="sd "> Subclass this to create an in-place modified variant</ span >
78- < span class ="sd "> of the given AST.</ span >
79- < span class ="sd "> If you need to keep the original AST around, pass</ span >
80- < span class ="sd "> a `node.clone()` to the transformer.</ span >
81- < span class ="sd "> '''</ span >
82- < span class ="k "> def</ span > < span class ="nf "> visit</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> node</ span > < span class ="p "> ):</ span >
83- < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> ,</ span > < span class ="n "> BaseNode</ span > < span class ="p "> ):</ span >
84- < span class ="k "> return</ span > < span class ="n "> node</ span >
85-
86- < span class ="n "> nodename</ span > < span class ="o "> =</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="vm "> __name__</ span >
87- < span class ="n "> visit</ span > < span class ="o "> =</ span > < span class ="nb "> getattr</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'visit_</ span > < span class ="si "> {}</ span > < span class ="s1 "> '</ span > < span class ="o "> .</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="n "> nodename</ span > < span class ="p "> ),</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> generic_visit</ span > < span class ="p "> )</ span >
88- < span class ="k "> return</ span > < span class ="n "> visit</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> )</ span >
89-
90- < span class ="k "> def</ span > < span class ="nf "> generic_visit</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> node</ span > < span class ="p "> ):</ span >
91- < span class ="k "> for</ span > < span class ="n "> propname</ span > < span class ="p "> ,</ span > < span class ="n "> propvalue</ span > < span class ="ow "> in</ span > < span class ="nb "> vars</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> items</ span > < span class ="p "> ():</ span >
92- < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> propvalue</ span > < span class ="p "> ,</ span > < span class ="nb "> list</ span > < span class ="p "> ):</ span >
93- < span class ="n "> new_vals</ span > < span class ="o "> =</ span > < span class ="p "> []</ span >
94- < span class ="k "> for</ span > < span class ="n "> child</ span > < span class ="ow "> in</ span > < span class ="n "> propvalue</ span > < span class ="p "> :</ span >
95- < span class ="n "> new_val</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> visit</ span > < span class ="p "> (</ span > < span class ="n "> child</ span > < span class ="p "> )</ span >
96- < span class ="k "> if</ span > < span class ="n "> new_val</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
97- < span class ="n "> new_vals</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> (</ span > < span class ="n "> new_val</ span > < span class ="p "> )</ span >
98- < span class ="c1 "> # in-place manipulation</ span >
99- < span class ="n "> propvalue</ span > < span class ="p "> [:]</ span > < span class ="o "> =</ span > < span class ="n "> new_vals</ span >
100- < span class ="k "> elif</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> propvalue</ span > < span class ="p "> ,</ span > < span class ="n "> BaseNode</ span > < span class ="p "> ):</ span >
101- < span class ="n "> new_val</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> visit</ span > < span class ="p "> (</ span > < span class ="n "> propvalue</ span > < span class ="p "> )</ span >
102- < span class ="k "> if</ span > < span class ="n "> new_val</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
103- < span class ="nb "> delattr</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> ,</ span > < span class ="n "> propname</ span > < span class ="p "> )</ span >
104- < span class ="k "> else</ span > < span class ="p "> :</ span >
105- < span class ="nb "> setattr</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> ,</ span > < span class ="n "> propname</ span > < span class ="p "> ,</ span > < span class ="n "> new_val</ span > < span class ="p "> )</ span >
106- < span class ="k "> return</ span > < span class ="n "> node</ span > </ div >
107-
108-
10948< span class ="k "> def</ span > < span class ="nf "> to_json</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> ,</ span > < span class ="n "> fn</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ):</ span >
11049 < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> ,</ span > < span class ="n "> BaseNode</ span > < span class ="p "> ):</ span >
11150 < span class ="k "> return</ span > < span class ="n "> value</ span > < span class ="o "> .</ span > < span class ="n "> to_json</ span > < span class ="p "> (</ span > < span class ="n "> fn</ span > < span class ="p "> )</ span >
@@ -151,33 +90,6 @@ <h1>Source code for fluent.syntax.ast</h1><div class="highlight"><pre>
15190< span class ="sd "> Annotation. Implements __str__, to_json and traverse.</ span >
15291< span class ="sd "> """</ span >
15392
154- < div class ="viewcode-block " id ="BaseNode.traverse "> < a class ="viewcode-back " href ="../../../ast.html#fluent.syntax.ast.BaseNode.traverse "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> traverse</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> fun</ span > < span class ="p "> ):</ span >
155- < span class ="sd "> """DEPRECATED. Please use Visitor or Transformer.</ span >
156-
157- < span class ="sd "> Postorder-traverse this node and apply `fun` to all child nodes.</ span >
158-
159- < span class ="sd "> Traverse this node depth-first applying `fun` to subnodes and leaves.</ span >
160- < span class ="sd "> Children are processed before parents (postorder traversal).</ span >
161-
162- < span class ="sd "> Return a new instance of the node.</ span >
163- < span class ="sd "> """</ span >
164-
165- < span class ="k "> def</ span > < span class ="nf "> visit</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> ):</ span >
166- < span class ="sd "> """Call `fun` on `value` and its descendants."""</ span >
167- < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> ,</ span > < span class ="n "> BaseNode</ span > < span class ="p "> ):</ span >
168- < span class ="k "> return</ span > < span class ="n "> value</ span > < span class ="o "> .</ span > < span class ="n "> traverse</ span > < span class ="p "> (</ span > < span class ="n "> fun</ span > < span class ="p "> )</ span >
169- < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> ,</ span > < span class ="nb "> list</ span > < span class ="p "> ):</ span >
170- < span class ="k "> return</ span > < span class ="n "> fun</ span > < span class ="p "> (</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="nb "> map</ span > < span class ="p "> (</ span > < span class ="n "> visit</ span > < span class ="p "> ,</ span > < span class ="n "> value</ span > < span class ="p "> )))</ span >
171- < span class ="k "> else</ span > < span class ="p "> :</ span >
172- < span class ="k "> return</ span > < span class ="n "> fun</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> )</ span >
173-
174- < span class ="c1 "> # Use all attributes found on the node as kwargs to the constructor.</ span >
175- < span class ="n "> kwargs</ span > < span class ="o "> =</ span > < span class ="nb "> vars</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> items</ span > < span class ="p "> ()</ span >
176- < span class ="n "> node</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="vm "> __class__</ span > < span class ="p "> (</ span >
177- < span class ="o "> **</ span > < span class ="p "> {</ span > < span class ="n "> name</ span > < span class ="p "> :</ span > < span class ="n "> visit</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> )</ span > < span class ="k "> for</ span > < span class ="n "> name</ span > < span class ="p "> ,</ span > < span class ="n "> value</ span > < span class ="ow "> in</ span > < span class ="n "> kwargs</ span > < span class ="p "> })</ span >
178-
179- < span class ="k "> return</ span > < span class ="n "> fun</ span > < span class ="p "> (</ span > < span class ="n "> node</ span > < span class ="p "> )</ span > </ div >
180-
18193< div class ="viewcode-block " id ="BaseNode.clone "> < a class ="viewcode-back " href ="../../../ast.html#fluent.syntax.ast.BaseNode.clone "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> clone</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
18294 < span class ="sd "> """Create a deep clone of the current node."""</ span >
18395 < span class ="k "> def</ span > < span class ="nf "> visit</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> ):</ span >
@@ -484,6 +396,7 @@ <h1>Source code for fluent.syntax.ast</h1><div class="highlight"><pre>
484396< h3 > < a href ="../../../index.html "> Table of Contents</ a > </ h3 >
485397< p class ="caption "> < span class ="caption-text "> Contents:</ span > </ p >
486398< ul >
399+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../usage.html "> Using fluent.syntax</ a > </ li >
487400< li class ="toctree-l1 "> < a class ="reference internal " href ="../../../reference.html "> API Reference</ a > </ li >
488401</ ul >
489402
0 commit comments