jsgui3-server 0.0.121 → 0.0.122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +6 -0
- package/README.md +10 -10
- package/controls/Active_HTML_Document.js +116 -116
- package/controls/README.md +7 -7
- package/controls/page/admin.js +74 -74
- package/controls/panel/admin.js +11 -11
- package/examples/_css/basic.css +913 -913
- package/examples/_css/database-control.css +51 -51
- package/examples/_css/jsgui.css +66 -66
- package/examples/_css/multi-layout.css +23 -23
- package/examples/_css/style.css +1669 -1669
- package/examples/_css/top-and-bottom-bars.css +54 -54
- package/examples/box/1) square box/client.js +188 -188
- package/examples/box/1) square box/server.js +112 -112
- package/examples/box/2) twenty square boxes/css flex wrap/client.js +248 -248
- package/examples/box/2) twenty square boxes/css flex wrap/server.js +112 -112
- package/examples/boxes/square_boxes.js +45 -48
- package/examples/boxes/square_boxes_client.js +132 -136
- package/examples/client-side-popup-menu-button.html +93 -93
- package/examples/color_palette.js +51 -51
- package/examples/color_palette_client.js +95 -95
- package/examples/controls/1) window/client.js +186 -186
- package/examples/controls/1) window/server.js +117 -117
- package/examples/controls/10) window, mirrored text inputs/client.js +320 -320
- package/examples/controls/10) window, mirrored text inputs/server.js +117 -117
- package/examples/controls/11) window, mirrored text fields/client.js +493 -251
- package/examples/controls/11) window, mirrored text fields/server.js +117 -117
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/client.js +613 -331
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/server.js +117 -117
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/client.js +617 -617
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/server.js +117 -117
- package/examples/controls/11d) window, shared model mirrored integer text fields/client.js +611 -280
- package/examples/controls/11d) window, shared model mirrored integer text fields/server.js +134 -22
- package/examples/controls/12) window, Select_Options control/client.js +435 -452
- package/examples/controls/12) window, Select_Options control/server.js +117 -117
- package/examples/controls/2) two windows/client.js +193 -193
- package/examples/controls/2) two windows/server.js +113 -113
- package/examples/controls/3) five windows/client.js +217 -217
- package/examples/controls/3) five windows/server.js +116 -115
- package/examples/controls/4) window, tabbed panel/client.js +54 -225
- package/examples/controls/4) window, tabbed panel/server.js +17 -117
- package/examples/controls/5) window, grid/client.js +204 -484
- package/examples/controls/5) window, grid/server.js +117 -119
- package/examples/controls/6) window, color_palette/client.js +204 -204
- package/examples/controls/6) window, color_palette/server.js +117 -117
- package/examples/controls/7) window, month_view/client.js +40 -231
- package/examples/controls/7) window, month_view/server.js +117 -117
- package/examples/controls/8) window, checkbox/client.js +247 -209
- package/examples/controls/8) window, checkbox/server.js +117 -117
- package/examples/controls/9) window, date picker/client.js +303 -303
- package/examples/controls/9) window, date picker/server.js +117 -117
- package/examples/controls/9b) window, shared data.model mirrored date pickers/client.js +398 -398
- package/examples/controls/9b) window, shared data.model mirrored date pickers/server.js +117 -117
- package/examples/controls/__old/_html-server-color-palette.js +114 -114
- package/examples/controls/__old/html-server-combo-box.js +104 -104
- package/examples/controls/__old/html-server-list.js +98 -98
- package/examples/controls/__old/html-server-popup-menu-button.js +114 -114
- package/examples/controls/__old/html-server-start-stop-toggle-button.js +146 -146
- package/examples/controls/__old/scs-arrow-button.js +36 -36
- package/examples/controls/__old/scs-date-picker.js +157 -157
- package/examples/controls/__old/scs-file-browser.js +82 -82
- package/examples/controls/__old/scs-item.js +159 -159
- package/examples/controls/__old/scs-month-arrow-selector.js +126 -126
- package/examples/controls/__old/scs-month-view.js +94 -94
- package/examples/controls/__old/scs-start-stop-toggle-button.js +40 -40
- package/examples/controls/__old/scs-tree.js +49 -49
- package/examples/controls/__old/scs-year-arrow-selector.js +127 -127
- package/examples/demos/date-picker.js +119 -119
- package/examples/demos/explain-encapsulation.js +9 -9
- package/examples/demos/resizing.js +35 -35
- package/examples/demos/server_time.js +6 -6
- package/examples/grids/grid_1.js +45 -45
- package/examples/grids/grid_1_client.js +329 -329
- package/examples/html-rendering.js +20 -20
- package/examples/html-server.js +105 -105
- package/examples/introducing jsgui3/server.js +110 -110
- package/examples/mx_display/mx_display_1.js +45 -45
- package/examples/mx_display/mx_display_1_client.js +444 -444
- package/fs2.js +1836 -1836
- package/http/responders/HTTP_Responder.js +15 -15
- package/http/responders/static/Static_Route_HTTP_Responder.js +105 -105
- package/module.js +34 -34
- package/old/_single-control-server.js +418 -418
- package/old/single-control-server.js +368 -368
- package/old/single-page-app.js +131 -131
- package/package.json +42 -42
- package/page-context.js +92 -92
- package/publishers/helpers/assigners/Assigner.js +10 -10
- package/publishers/helpers/assigners/static-compressed-response-buffers/Single_Control_Webpage_Server_Static_Compressed_Response_Buffers_Assigner.js +150 -150
- package/publishers/helpers/assigners/static-headers/Single_Control_Webpage_Server_Static_Headers_Assigner.js +109 -109
- package/publishers/helpers/assigners/static-routes/Single_Control_Webpage_Server_Static_Routes_Assigner.js +91 -91
- package/publishers/helpers/assigners/static-uncompressed-response-buffers/Single_Control_Webpage_Server_Static_Uncompressed_Response_Buffers_Assigner.js +104 -104
- package/publishers/helpers/preparers/static/bundle/Ready_To_Serve_Preparer.js +18 -18
- package/publishers/helpers/preparers/static/bundle/Static_Routes_Responses_Webpage_Bundle_Preparer.js +44 -44
- package/publishers/http-function-publisher.js +212 -212
- package/publishers/http-html-page-publisher.js +5 -5
- package/publishers/http-html-publisher.js +24 -24
- package/publishers/http-js-publisher.js +135 -135
- package/publishers/http-observable-publisher.js +124 -124
- package/publishers/http-publisher.js +53 -53
- package/publishers/http-resource-publisher.js +325 -325
- package/publishers/http-webpage-publisher.js +659 -658
- package/publishers/http-webpageorsite-publisher.js +343 -343
- package/publishers/http-website-publisher.js +640 -640
- package/publishers/notes.md +9 -9
- package/resources/README.md +16 -16
- package/resources/_old_website-javascript-resource.js +994 -994
- package/resources/_old_website-resource.js +507 -507
- package/resources/compile/server-resource-compilation.js +43 -43
- package/resources/data-resource.js +118 -118
- package/resources/fs-resource.js +146 -146
- package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -105
- package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +41 -41
- package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node.js +93 -93
- package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +253 -253
- package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +337 -337
- package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +96 -96
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +72 -72
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +92 -92
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -29
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -116
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +159 -159
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +178 -178
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +87 -87
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +91 -91
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +136 -136
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +73 -73
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +85 -85
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +40 -40
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +54 -54
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +45 -45
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +343 -343
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +38 -38
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +30 -30
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +26 -26
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +21 -21
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +89 -89
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +27 -27
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +736 -736
- package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +64 -64
- package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -15
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +305 -305
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +77 -77
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +248 -248
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +138 -138
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -10
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +100 -100
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +60 -60
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +179 -179
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -12
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -35
- package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -11
- package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -25
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +200 -200
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +43 -43
- package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +76 -76
- package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +227 -227
- package/resources/jsbuilder/JS_AST/query/find_object_keys.js +404 -404
- package/resources/jsbuilder/JS_AST/query/node_queries.js +8 -8
- package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +11 -11
- package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +85 -85
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +123 -123
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +87 -87
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +10 -10
- package/resources/jsbuilder/JS_Builder.js +10 -10
- package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +31 -31
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +78 -78
- package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +17 -17
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +8 -8
- package/resources/jsbuilder/JS_File/JS_File.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -202
- package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -175
- package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -81
- package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -86
- package/resources/jsbuilder/JS_File/JS_File_4-Query.js +413 -413
- package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +414 -414
- package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -59
- package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -24
- package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +23 -23
- package/resources/jsbuilder/JS_File/JS_File_Import_References.js +31 -31
- package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -16
- package/resources/jsbuilder/JS_File/JS_Files.js +15 -15
- package/resources/jsbuilder/Module.js +14 -14
- package/resources/jsbuilder/Platform.js +13 -13
- package/resources/jsbuilder/Platforms.js +69 -69
- package/resources/jsbuilder/Project.js +109 -109
- package/resources/jsbuilder/Reference.js +1 -1
- package/resources/jsbuilder/Reference_Sequence.js +16 -16
- package/resources/jsbuilder/Scope.js +29 -29
- package/resources/jsbuilder/Variable_Name_Provider.js +42 -42
- package/resources/jsbuilder/_JS_File.js +225 -225
- package/resources/jsbuilder/ast_query.js +20 -20
- package/resources/jsbuilder/babel/babel_consts.js +162 -162
- package/resources/jsbuilder/babel/babel_node_tools.js +541 -541
- package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +923 -904
- package/resources/jsbuilder/build.js +16 -16
- package/resources/jsbuilder/platform_notes.md +66 -66
- package/resources/jsbuilder/test/test_ast_node.js +381 -381
- package/resources/jsbuilder/test/test_js_file.js +303 -303
- package/resources/jsbuilder/test/test_project.js +157 -157
- package/resources/local-server-info-resource.js +96 -96
- package/resources/notes.txt +10 -10
- package/resources/old/website-image-resource.js +1185 -1185
- package/resources/process-js.js +498 -498
- package/resources/processors/bundlers/bundle.js +29 -29
- package/resources/processors/bundlers/bundler.js +23 -23
- package/resources/processors/bundlers/css-bundler.js +234 -234
- package/resources/processors/bundlers/js/JS_Bundler.js +51 -51
- package/resources/processors/bundlers/js/esbuild/Advanced_JS_Bundler_Using_ESBuild.js +388 -391
- package/resources/processors/bundlers/js/esbuild/Bundler_Using_ESBuild.js +8 -8
- package/resources/processors/bundlers/js/esbuild/Core_JS_Non_Minifying_Bundler_Using_ESBuild.js +188 -188
- package/resources/processors/bundlers/js/esbuild/Core_JS_Single_File_Minifying_Bundler_Using_ESBuild.js +191 -192
- package/resources/processors/bundlers/js/esbuild/_Old_CSS_Extractor.js +239 -239
- package/resources/processors/bundlers/js-bundler.js +263 -263
- package/resources/processors/bundlers/test_ast.js +73 -73
- package/resources/processors/bundlers/webpage-bundler.js +404 -404
- package/resources/processors/bundlers/website-bundler.js +22 -22
- package/resources/processors/extractors/Extractor.js +9 -11
- package/resources/processors/extractors/js/css_and_js/AST_Node/CSS_And_JS_From_JS_String_Using_AST_Node_Extractor.js +239 -254
- package/resources/processors/extractors/js/css_and_js/CSS_And_JS_From_JS_String_Extractor.js +3 -3
- package/resources/processors/extractors/string/Pos_Span_String_Extractor.js +93 -93
- package/resources/server-installed-tools.js +28 -28
- package/resources/server-resource-pool.js +41 -41
- package/resources/website-audio-resource.js +735 -735
- package/resources/website-css-resource.js +411 -411
- package/resources/website-image-resource.js +412 -412
- package/resources/website-javascript-resource-processor.js +908 -908
- package/resources/website-javascript-resource.js +874 -874
- package/resources/website-resource-processor.js +10 -10
- package/resources/website-resource.js +164 -164
- package/resources/website-static-html-resource.js +199 -199
- package/resources/website-template-html-resource.js +231 -231
- package/roadmap.md +75 -75
- package/server.js +609 -573
- package/static-page-context.js +13 -13
- package/website/webpage.js +81 -81
- package/website/website-group.js +15 -15
- package/website/website.js +260 -260
- package/examples/controls/11d) window, shared model mirrored integer text fields/both.js +0 -17
- package/examples/controls/13) window, shared model mirrored lat_long/client.js +0 -933
- package/examples/controls/13) window, shared model mirrored lat_long/server.js +0 -50
- package/examples/controls/14) window, control compositional model/client.js +0 -328
- package/examples/controls/14) window, control compositional model/server.js +0 -118
- package/examples/controls/14a) window, control spec has compositional model/client.js +0 -440
- package/examples/controls/14a) window, control spec has compositional model/server.js +0 -118
- package/examples/controls/15) window, text field/client.js +0 -256
- package/examples/controls/15) window, text field/server.js +0 -39
- package/examples/controls/16) Window([Text_Input])/client.js +0 -266
- package/examples/controls/16) Window([Text_Input])/server.js +0 -109
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/client.js +0 -494
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/isomorphic.js +0 -24
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/server.js +0 -73
- package/examples/controls/2b) two window, context menus/client.js +0 -193
- package/examples/controls/2b) two window, context menus/server.js +0 -114
- package/examples/controls/4a) window, tabbed panel with various controls inside/client.js +0 -233
- package/examples/controls/4a) window, tabbed panel with various controls inside/server.js +0 -118
|
@@ -1,905 +1,924 @@
|
|
|
1
|
-
// May make it support depth and paths.
|
|
2
|
-
|
|
3
|
-
// path starts at /
|
|
4
|
-
// then it's numbers for the number of each child.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const {each} = require('lang-tools');
|
|
12
|
-
//const babel_node_tools = require('../babel_node_tools');
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// deep_iterate_babel_super_node
|
|
16
|
-
|
|
17
|
-
const deep_iterate_babel_super_node = (babel_node, depth, path, common, callback) => {
|
|
18
|
-
//let sibling_number = 0;
|
|
19
|
-
//const {test, concequent, alternate} = babel_node;
|
|
20
|
-
//deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
21
|
-
//deep_iterate_babel_node_$INTERNAL(concequent, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
22
|
-
//deep_iterate_babel_node_$INTERNAL(alternate, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
23
|
-
|
|
24
|
-
//console.log('babel_node', babel_node);
|
|
25
|
-
//throw 'nyi';
|
|
26
|
-
|
|
27
|
-
// like an if statement
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const deep_iterate_babel_conditional_expression_node = (babel_node, depth, path, common, callback) => {
|
|
31
|
-
let sibling_number = 0;
|
|
32
|
-
const {test, concequent, alternate} = babel_node;
|
|
33
|
-
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
34
|
-
deep_iterate_babel_node_$INTERNAL(concequent, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
35
|
-
deep_iterate_babel_node_$INTERNAL(alternate, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
36
|
-
|
|
37
|
-
// like an if statement
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const deep_iterate_babel_object_method_node = (babel_node, depth, path, common, callback) => {
|
|
41
|
-
//console.log('babel_node', babel_node);
|
|
42
|
-
|
|
43
|
-
const {key, params, body} = babel_node;
|
|
44
|
-
|
|
45
|
-
let sibling_number = 0;
|
|
46
|
-
deep_iterate_babel_node_$INTERNAL(key, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
47
|
-
each(params, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
48
|
-
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
49
|
-
|
|
50
|
-
//throw 'NYI';
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// deep_iterate_object_method_node
|
|
55
|
-
const deep_iterate_this_expression_node = (babel_node, depth, path, common, callback) => {
|
|
56
|
-
|
|
57
|
-
// Maybe no further iteration to do???
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
//throw 'stop';
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// const deep_iterate_array_pattern_node
|
|
64
|
-
|
|
65
|
-
const deep_iterate_array_pattern_node = (babel_node, depth, path, common, callback) => {
|
|
66
|
-
// .elements
|
|
67
|
-
|
|
68
|
-
const {elements} = babel_node;
|
|
69
|
-
let sibling_number = 0;
|
|
70
|
-
|
|
71
|
-
each(elements, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// may put the sibling number / index into the callback.
|
|
75
|
-
|
|
76
|
-
const deep_iterate_program_node = (babel_node, depth, path, common, callback) => {
|
|
77
|
-
const {body, directives} = babel_node;
|
|
78
|
-
let sibling_number = 0;
|
|
79
|
-
each(body, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
80
|
-
|
|
81
|
-
if (directives.length > 0) {
|
|
82
|
-
console.log('babel_node', babel_node);
|
|
83
|
-
console.log('directives', directives);
|
|
84
|
-
throw 'NYI';
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// deep_iterate_babel_file_node
|
|
89
|
-
|
|
90
|
-
const deep_iterate_babel_file_node = (babel_node, depth, path, common, callback) => {
|
|
91
|
-
const {program} = babel_node;
|
|
92
|
-
let sibling_number = 0;
|
|
93
|
-
deep_iterate_babel_node_$INTERNAL(program, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const deep_iterate_babel_class_method_node = (babel_node, depth, path, common, callback) => {
|
|
98
|
-
const {key, computed, kind, id, body, params} = babel_node;
|
|
99
|
-
let sibling_number = 0;
|
|
100
|
-
//console.log('babel_node', babel_node);
|
|
101
|
-
//throw 'stop';
|
|
102
|
-
deep_iterate_babel_node_$INTERNAL(key, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
103
|
-
if (id) {
|
|
104
|
-
console.log('babel_node', babel_node);
|
|
105
|
-
throw 'NYI';
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
each(params, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
109
|
-
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
110
|
-
|
|
111
|
-
//console.log('babel_node', babel_node);
|
|
112
|
-
//throw 'stop';
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const deep_iterate_babel_class_body_node = (babel_node, depth, path, common, callback) => {
|
|
116
|
-
const {extra, body} = babel_node;
|
|
117
|
-
let sibling_number = 0;
|
|
118
|
-
//deep_iterate_babel_node(body, depth, path, common, callback);
|
|
119
|
-
each(body, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
const deep_iterate_babel_class_declaration_node = (babel_node, depth, path, common, callback) => {
|
|
124
|
-
//console.log('babel_node', babel_node);
|
|
125
|
-
let sibling_number = 0;
|
|
126
|
-
const {extra, id, superclass, body} = babel_node;
|
|
127
|
-
deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
128
|
-
|
|
129
|
-
if (superclass) {
|
|
130
|
-
console.log('babel_node', babel_node);
|
|
131
|
-
throw 'NYI';
|
|
132
|
-
}
|
|
133
|
-
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
//console.log('body', body);
|
|
137
|
-
//console.log('babel_node', babel_node);
|
|
138
|
-
//throw 'stop';
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const deep_iterate_babel_object_pattern_node = (babel_node, depth, path, common, callback) => {
|
|
142
|
-
const {extra, properties} = babel_node;
|
|
143
|
-
let sibling_number = 0;
|
|
144
|
-
each(properties, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
const deep_iterate_babel_while_statement_node = (babel_node, depth, path, common, callback) => {
|
|
148
|
-
const {extra, body, test} = babel_node;
|
|
149
|
-
let sibling_number = 0;
|
|
150
|
-
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
151
|
-
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
const deep_iterate_babel_assignment_pattern_node = (babel_node, depth, path, common, callback) => {
|
|
155
|
-
const {extra, left, right} = babel_node;
|
|
156
|
-
let sibling_number = 0;
|
|
157
|
-
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
158
|
-
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
const deep_iterate_babel_throw_statement_node = (babel_node, depth, path, common, callback) => {
|
|
162
|
-
const {extra, argument} = babel_node;
|
|
163
|
-
let sibling_number = 0;
|
|
164
|
-
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
165
|
-
|
|
166
|
-
//deep_iterate_babel_node(right, str_source);
|
|
167
|
-
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
const deep_iterate_babel_boolean_literal_node = (babel_node, depth, path, common, callback) => {
|
|
171
|
-
const {value} = babel_node;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
const deep_iterate_babel_null_literal_node = (babel_node, depth, path, common, callback) => {
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
const deep_iterate_babel_empty_statement_node = (babel_node, depth, path, common, callback) => {
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
const deep_iterate_babel_new_expression_node = (babel_node, depth, path, common, callback) => {
|
|
183
|
-
const {extra, callee} = babel_node;
|
|
184
|
-
let sibling_number = 0;
|
|
185
|
-
|
|
186
|
-
deep_iterate_babel_node_$INTERNAL(callee, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
187
|
-
each(babel_node.arguments, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
188
|
-
//deep_iterate_babel_node(right, str_source);
|
|
189
|
-
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
const deep_iterate_babel_update_expression_node = (babel_node, depth, path, common, callback) => {
|
|
193
|
-
const {extra, operator, prefix, argument} = babel_node;
|
|
194
|
-
let sibling_number = 0;
|
|
195
|
-
|
|
196
|
-
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
197
|
-
|
|
198
|
-
//deep_iterate_babel_node(right, str_source);
|
|
199
|
-
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
const deep_iterate_babel_numeric_literal_node = (babel_node, depth, path, common, callback) => {
|
|
203
|
-
const {extra, value} = babel_node;
|
|
204
|
-
|
|
205
|
-
//deep_iterate_babel_node(right, str_source);
|
|
206
|
-
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
const deep_iterate_babel_for_statement_node = (babel_node, depth, path, common, callback) => {
|
|
211
|
-
const {extra, init, test, update, body} = babel_node;
|
|
212
|
-
let sibling_number = 0;
|
|
213
|
-
|
|
214
|
-
deep_iterate_babel_node_$INTERNAL(init, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
215
|
-
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
216
|
-
deep_iterate_babel_node_$INTERNAL(update, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
217
|
-
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
218
|
-
//deep_iterate_babel_node(right, str_source);
|
|
219
|
-
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
const deep_iterate_babel_array_expression_node = (babel_node, depth, path, common, callback) => {
|
|
223
|
-
const {extra, elements} = babel_node;
|
|
224
|
-
let sibling_number = 0;
|
|
225
|
-
//console.log('babel_node', babel_node);
|
|
226
|
-
//throw 'stop';
|
|
227
|
-
//deep_iterate_babel_node(left, str_source);
|
|
228
|
-
//deep_iterate_babel_node(right, str_source);
|
|
229
|
-
each(elements, element => deep_iterate_babel_node_$INTERNAL(element, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
const deep_iterate_babel_assignment_expression_node = (babel_node, depth, path, common, callback) => {
|
|
233
|
-
const {extra, left, operator, right} = babel_node;
|
|
234
|
-
let sibling_number = 0;
|
|
235
|
-
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
236
|
-
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
const deep_iterate_babel_expression_statement_node = (babel_node, depth, path, common, callback) => {
|
|
240
|
-
//const {extra, left, operator, right} = babel_node;
|
|
241
|
-
const {extra, expression} = babel_node;
|
|
242
|
-
let sibling_number = 0;
|
|
243
|
-
deep_iterate_babel_node_$INTERNAL(expression, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
244
|
-
//deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
const deep_iterate_babel_variable_declarator_node = (babel_node, depth, path, common, callback) => {
|
|
248
|
-
const {extra, id, init} = babel_node;
|
|
249
|
-
let sibling_number = 0;
|
|
250
|
-
deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
251
|
-
deep_iterate_babel_node_$INTERNAL(init, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
const deep_iterate_babel_logical_expression_node = (babel_node, depth, path, common, callback) => {
|
|
255
|
-
const {extra, left, operator, right} = babel_node;
|
|
256
|
-
let sibling_number = 0;
|
|
257
|
-
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
258
|
-
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
const deep_iterate_babel_function_expression_node = (babel_node, depth, path, common, callback) => {
|
|
262
|
-
//console.log('deep_iterate_babel_function_expression_node', babel_node);
|
|
263
|
-
let sibling_number = 0;
|
|
264
|
-
const {extra, id, generator, async, params, body} = babel_node;
|
|
265
|
-
|
|
266
|
-
deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
267
|
-
each(params, param => deep_iterate_babel_node_$INTERNAL(param, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
268
|
-
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
269
|
-
|
|
270
|
-
//const {extra, object, computed /*bool*/, property} = babel_node;
|
|
271
|
-
//throw 'NYI'
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
const deep_iterate_babel_member_expression_node = (babel_node, depth, path, common, callback) => {
|
|
275
|
-
//console.log('deep_iterate_babel_member_expression_node', babel_node);
|
|
276
|
-
const {extra, object, computed /*bool*/, property} = babel_node;
|
|
277
|
-
let sibling_number = 0;
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
if (extra) {
|
|
281
|
-
|
|
282
|
-
//console.log('babel_node', babel_node);
|
|
283
|
-
//console.log('extra', extra);
|
|
284
|
-
|
|
285
|
-
//throw 'NYI'
|
|
286
|
-
};
|
|
287
|
-
deep_iterate_babel_node_$INTERNAL(object, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
288
|
-
deep_iterate_babel_node_$INTERNAL(property, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
const deep_iterate_babel_call_expression_node = (babel_node, depth, path, common, callback) => {
|
|
292
|
-
//console.log('deep_iterate_babel_object_property_node', babel_node);
|
|
293
|
-
let sibling_number = 0;
|
|
294
|
-
const {extra, callee} = babel_node;
|
|
295
|
-
|
|
296
|
-
if (extra) {
|
|
297
|
-
//throw 'NYI';
|
|
298
|
-
const {parenthasized, parenStart} = extra;
|
|
299
|
-
}
|
|
300
|
-
deep_iterate_babel_node_$INTERNAL(callee, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
301
|
-
|
|
302
|
-
each(babel_node.arguments, argument => {
|
|
303
|
-
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
304
|
-
})
|
|
305
|
-
|
|
306
|
-
//throw 'stop';
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
const deep_iterate_babel_object_property_node = (babel_node, depth, path, common, callback) => {
|
|
310
|
-
//console.log('deep_iterate_babel_object_property_node', babel_node);
|
|
311
|
-
|
|
312
|
-
const {method, key, computed, shorthand, value} = babel_node;
|
|
313
|
-
//const {properties} = babel_node;
|
|
314
|
-
let sibling_number = 0;
|
|
315
|
-
|
|
316
|
-
// but the key and the value can be the same???
|
|
317
|
-
|
|
318
|
-
//console.log('key', key);
|
|
319
|
-
//console.log('value', value);
|
|
320
|
-
|
|
321
|
-
// Key and value being the same thing?
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
deep_iterate_babel_node_$INTERNAL(key, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
326
|
-
|
|
327
|
-
if (value.start !== key.start) {
|
|
328
|
-
//throw 'stop';
|
|
329
|
-
deep_iterate_babel_node_$INTERNAL(value, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
330
|
-
}
|
|
331
|
-
//
|
|
332
|
-
|
|
333
|
-
//throw 'stop';
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
const deep_iterate_babel_object_expression_node = (babel_node, depth, path, common, callback) => {
|
|
337
|
-
//console.log('deep_iterate_babel_object_expression_node', babel_node);
|
|
338
|
-
const {properties} = babel_node;
|
|
339
|
-
let sibling_number = 0;
|
|
340
|
-
each(properties, property => {
|
|
341
|
-
deep_iterate_babel_node_$INTERNAL(property, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
342
|
-
})
|
|
343
|
-
|
|
344
|
-
//throw 'stop';
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
const deep_iterate_babel_return_statement_node = (babel_node, depth, path, common, callback) => {
|
|
348
|
-
//console.log('deep_iterate_babel_return_statement_node', babel_node);
|
|
349
|
-
let sibling_number = 0;
|
|
350
|
-
const {argument} = babel_node;
|
|
351
|
-
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
352
|
-
|
|
353
|
-
//throw 'stop';
|
|
354
|
-
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
const deep_iterate_babel_if_statement_node = (babel_node, depth, path, common, callback) => {
|
|
358
|
-
//console.log('deep_iterate_babel_if_statement_node', babel_node);
|
|
359
|
-
let sibling_number = 0;
|
|
360
|
-
const {test, concequent, alternate} = babel_node;
|
|
361
|
-
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
362
|
-
deep_iterate_babel_node_$INTERNAL(concequent, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
363
|
-
deep_iterate_babel_node_$INTERNAL(alternate, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
//throw 'stop';
|
|
367
|
-
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
const deep_iterate_babel_block_statement_node = (babel_node, depth, path, common, callback) => {
|
|
371
|
-
const {params, body} = babel_node;
|
|
372
|
-
let sibling_number = 0;
|
|
373
|
-
if (params && params.length > 0) {
|
|
374
|
-
console.log('params', params);
|
|
375
|
-
throw 'stop';
|
|
376
|
-
}
|
|
377
|
-
each(body, body_item => {
|
|
378
|
-
deep_iterate_babel_node_$INTERNAL(body_item, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
const deep_iterate_babel_function_declaration_node = (babel_node, depth, path, common, callback) => {
|
|
383
|
-
const {extra, id, generator, async, params, body} = babel_node;
|
|
384
|
-
|
|
385
|
-
let sibling_number = 0;
|
|
386
|
-
|
|
387
|
-
deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
388
|
-
each(params, param => deep_iterate_babel_node_$INTERNAL(param, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
389
|
-
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
const deep_iterate_babel_arrow_function_expression_node = (babel_node, depth, path, common, callback) => {
|
|
395
|
-
//console.log('deep_iterate_babel_arrow_function_expression_node', babel_node);
|
|
396
|
-
|
|
397
|
-
const {generator, async, params, body} = babel_node;
|
|
398
|
-
let sibling_number = 0;
|
|
399
|
-
// Assume the params are nodes.
|
|
400
|
-
|
|
401
|
-
if (params.length > 0) {
|
|
402
|
-
//console.log('params', params);
|
|
403
|
-
//throw 'NYI';
|
|
404
|
-
each(params, param => {
|
|
405
|
-
deep_iterate_babel_node_$INTERNAL(param, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
406
|
-
})
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
//throw 'stop';
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
const deep_iterate_babel_variable_declaration_node = (babel_node, depth, path, common, callback) => {
|
|
417
|
-
//console.log('deep_iterate_babel_variable_declaration_node', babel_node);
|
|
418
|
-
|
|
419
|
-
const {kind, declarations} = babel_node;
|
|
420
|
-
let sibling_number = 0;
|
|
421
|
-
each(declarations, declaration => deep_iterate_babel_node_$INTERNAL(declaration, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
422
|
-
//throw 'stop';
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
const deep_iterate_babel_string_literal_node = (babel_node, depth, path, common, callback) => {
|
|
426
|
-
//console.log('deep_iterate_babel_string_literal_node', babel_node);
|
|
427
|
-
const {value} = babel_node;
|
|
428
|
-
//throw 'stop';
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
const deep_iterate_babel_identifier_node = (babel_node, depth, path, common, callback) => {
|
|
432
|
-
//console.log('deep_iterate_babel_identifier_node', babel_node);
|
|
433
|
-
const {name} = babel_node;
|
|
434
|
-
|
|
435
|
-
//throw 'stop';
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
const deep_iterate_babel_unary_expression_node = (babel_node, depth, path, common, callback) => {
|
|
439
|
-
//console.log('deep_iterate_babel_unary_expression_node', babel_node);
|
|
440
|
-
const {operator, argument} = babel_node;
|
|
441
|
-
let sibling_number = 0;
|
|
442
|
-
|
|
443
|
-
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
const deep_iterate_babel_binary_expression_node = (babel_node, depth, path, common, callback) => {
|
|
450
|
-
//console.log('deep_iterate_babel_binary_expression_node babel_node', babel_node);
|
|
451
|
-
let sibling_number = 0;
|
|
452
|
-
const {left, operator, right} = babel_node;
|
|
453
|
-
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
454
|
-
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
455
|
-
|
|
456
|
-
//throw 'stop';
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
const deep_iterate_babel_template_literal_node = (babel_node, depth, path, common, callback) => {
|
|
460
|
-
// expressions and quasis
|
|
461
|
-
|
|
462
|
-
const {generator, async, params, body, quasis, expressions} = babel_node;
|
|
463
|
-
|
|
464
|
-
const q0 = babel_node.quasis[0];
|
|
465
|
-
//console.log('babel_node', babel_node);
|
|
466
|
-
//throw 'NYI';
|
|
467
|
-
//console.log('q0', q0);
|
|
468
|
-
// has both raw and cooked values.
|
|
469
|
-
|
|
470
|
-
// template element.
|
|
471
|
-
|
|
472
|
-
//const {} = babel_node;
|
|
473
|
-
let sibling_number = 0;
|
|
474
|
-
// Assume the params are nodes.
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
if (expressions.length > 0) {
|
|
478
|
-
//
|
|
479
|
-
|
|
480
|
-
//
|
|
481
|
-
|
|
482
|
-
each(expressions,
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
//
|
|
490
|
-
//
|
|
491
|
-
//
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
const {
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
};
|
|
520
|
-
|
|
521
|
-
//
|
|
522
|
-
|
|
523
|
-
const
|
|
524
|
-
// value.raw is basically it.
|
|
525
|
-
|
|
526
|
-
const {
|
|
527
|
-
let sibling_number = 0;
|
|
528
|
-
|
|
529
|
-
deep_iterate_babel_node_$INTERNAL(
|
|
530
|
-
deep_iterate_babel_node_$INTERNAL(
|
|
531
|
-
|
|
532
|
-
};
|
|
533
|
-
|
|
534
|
-
//
|
|
535
|
-
|
|
536
|
-
const
|
|
537
|
-
// value.raw is basically it.
|
|
538
|
-
|
|
539
|
-
const {
|
|
540
|
-
let sibling_number = 0;
|
|
541
|
-
|
|
542
|
-
deep_iterate_babel_node_$INTERNAL(
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
const
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
//
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
deep_iterate_babel_node_$INTERNAL(
|
|
614
|
-
deep_iterate_babel_node_$INTERNAL(
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
//
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
deep_iterate_babel_node_$INTERNAL(
|
|
645
|
-
deep_iterate_babel_node_$INTERNAL(
|
|
646
|
-
|
|
647
|
-
};
|
|
648
|
-
|
|
649
|
-
//
|
|
650
|
-
const
|
|
651
|
-
// value.raw is basically it.
|
|
652
|
-
|
|
653
|
-
const {
|
|
654
|
-
let sibling_number = 0;
|
|
655
|
-
|
|
656
|
-
if (
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
const
|
|
664
|
-
// value.raw is basically it.
|
|
665
|
-
|
|
666
|
-
const {argument} = babel_node;
|
|
667
|
-
let sibling_number = 0;
|
|
668
|
-
|
|
669
|
-
if (argument) deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
};
|
|
673
|
-
|
|
674
|
-
//
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
}else if (type === '
|
|
822
|
-
return
|
|
823
|
-
} else {
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
//
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
1
|
+
// May make it support depth and paths.
|
|
2
|
+
|
|
3
|
+
// path starts at /
|
|
4
|
+
// then it's numbers for the number of each child.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const {each} = require('lang-tools');
|
|
12
|
+
//const babel_node_tools = require('../babel_node_tools');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
// deep_iterate_babel_super_node
|
|
16
|
+
|
|
17
|
+
const deep_iterate_babel_super_node = (babel_node, depth, path, common, callback) => {
|
|
18
|
+
//let sibling_number = 0;
|
|
19
|
+
//const {test, concequent, alternate} = babel_node;
|
|
20
|
+
//deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
21
|
+
//deep_iterate_babel_node_$INTERNAL(concequent, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
22
|
+
//deep_iterate_babel_node_$INTERNAL(alternate, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
23
|
+
|
|
24
|
+
//console.log('babel_node', babel_node);
|
|
25
|
+
//throw 'nyi';
|
|
26
|
+
|
|
27
|
+
// like an if statement
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const deep_iterate_babel_conditional_expression_node = (babel_node, depth, path, common, callback) => {
|
|
31
|
+
let sibling_number = 0;
|
|
32
|
+
const {test, concequent, alternate} = babel_node;
|
|
33
|
+
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
34
|
+
deep_iterate_babel_node_$INTERNAL(concequent, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
35
|
+
deep_iterate_babel_node_$INTERNAL(alternate, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
36
|
+
|
|
37
|
+
// like an if statement
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const deep_iterate_babel_object_method_node = (babel_node, depth, path, common, callback) => {
|
|
41
|
+
//console.log('babel_node', babel_node);
|
|
42
|
+
|
|
43
|
+
const {key, params, body} = babel_node;
|
|
44
|
+
|
|
45
|
+
let sibling_number = 0;
|
|
46
|
+
deep_iterate_babel_node_$INTERNAL(key, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
47
|
+
each(params, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
48
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
49
|
+
|
|
50
|
+
//throw 'NYI';
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
// deep_iterate_object_method_node
|
|
55
|
+
const deep_iterate_this_expression_node = (babel_node, depth, path, common, callback) => {
|
|
56
|
+
|
|
57
|
+
// Maybe no further iteration to do???
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
//throw 'stop';
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// const deep_iterate_array_pattern_node
|
|
64
|
+
|
|
65
|
+
const deep_iterate_array_pattern_node = (babel_node, depth, path, common, callback) => {
|
|
66
|
+
// .elements
|
|
67
|
+
|
|
68
|
+
const {elements} = babel_node;
|
|
69
|
+
let sibling_number = 0;
|
|
70
|
+
|
|
71
|
+
each(elements, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// may put the sibling number / index into the callback.
|
|
75
|
+
|
|
76
|
+
const deep_iterate_program_node = (babel_node, depth, path, common, callback) => {
|
|
77
|
+
const {body, directives} = babel_node;
|
|
78
|
+
let sibling_number = 0;
|
|
79
|
+
each(body, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
80
|
+
|
|
81
|
+
if (directives.length > 0) {
|
|
82
|
+
console.log('babel_node', babel_node);
|
|
83
|
+
console.log('directives', directives);
|
|
84
|
+
throw 'NYI';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// deep_iterate_babel_file_node
|
|
89
|
+
|
|
90
|
+
const deep_iterate_babel_file_node = (babel_node, depth, path, common, callback) => {
|
|
91
|
+
const {program} = babel_node;
|
|
92
|
+
let sibling_number = 0;
|
|
93
|
+
deep_iterate_babel_node_$INTERNAL(program, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
const deep_iterate_babel_class_method_node = (babel_node, depth, path, common, callback) => {
|
|
98
|
+
const {key, computed, kind, id, body, params} = babel_node;
|
|
99
|
+
let sibling_number = 0;
|
|
100
|
+
//console.log('babel_node', babel_node);
|
|
101
|
+
//throw 'stop';
|
|
102
|
+
deep_iterate_babel_node_$INTERNAL(key, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
103
|
+
if (id) {
|
|
104
|
+
console.log('babel_node', babel_node);
|
|
105
|
+
throw 'NYI';
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
each(params, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
109
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
110
|
+
|
|
111
|
+
//console.log('babel_node', babel_node);
|
|
112
|
+
//throw 'stop';
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const deep_iterate_babel_class_body_node = (babel_node, depth, path, common, callback) => {
|
|
116
|
+
const {extra, body} = babel_node;
|
|
117
|
+
let sibling_number = 0;
|
|
118
|
+
//deep_iterate_babel_node(body, depth, path, common, callback);
|
|
119
|
+
each(body, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
120
|
+
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const deep_iterate_babel_class_declaration_node = (babel_node, depth, path, common, callback) => {
|
|
124
|
+
//console.log('babel_node', babel_node);
|
|
125
|
+
let sibling_number = 0;
|
|
126
|
+
const {extra, id, superclass, body} = babel_node;
|
|
127
|
+
deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
128
|
+
|
|
129
|
+
if (superclass) {
|
|
130
|
+
console.log('babel_node', babel_node);
|
|
131
|
+
throw 'NYI';
|
|
132
|
+
}
|
|
133
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
//console.log('body', body);
|
|
137
|
+
//console.log('babel_node', babel_node);
|
|
138
|
+
//throw 'stop';
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const deep_iterate_babel_object_pattern_node = (babel_node, depth, path, common, callback) => {
|
|
142
|
+
const {extra, properties} = babel_node;
|
|
143
|
+
let sibling_number = 0;
|
|
144
|
+
each(properties, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const deep_iterate_babel_while_statement_node = (babel_node, depth, path, common, callback) => {
|
|
148
|
+
const {extra, body, test} = babel_node;
|
|
149
|
+
let sibling_number = 0;
|
|
150
|
+
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
151
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const deep_iterate_babel_assignment_pattern_node = (babel_node, depth, path, common, callback) => {
|
|
155
|
+
const {extra, left, right} = babel_node;
|
|
156
|
+
let sibling_number = 0;
|
|
157
|
+
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
158
|
+
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
const deep_iterate_babel_throw_statement_node = (babel_node, depth, path, common, callback) => {
|
|
162
|
+
const {extra, argument} = babel_node;
|
|
163
|
+
let sibling_number = 0;
|
|
164
|
+
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
165
|
+
|
|
166
|
+
//deep_iterate_babel_node(right, str_source);
|
|
167
|
+
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const deep_iterate_babel_boolean_literal_node = (babel_node, depth, path, common, callback) => {
|
|
171
|
+
const {value} = babel_node;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const deep_iterate_babel_null_literal_node = (babel_node, depth, path, common, callback) => {
|
|
175
|
+
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const deep_iterate_babel_empty_statement_node = (babel_node, depth, path, common, callback) => {
|
|
179
|
+
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const deep_iterate_babel_new_expression_node = (babel_node, depth, path, common, callback) => {
|
|
183
|
+
const {extra, callee} = babel_node;
|
|
184
|
+
let sibling_number = 0;
|
|
185
|
+
|
|
186
|
+
deep_iterate_babel_node_$INTERNAL(callee, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
187
|
+
each(babel_node.arguments, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
188
|
+
//deep_iterate_babel_node(right, str_source);
|
|
189
|
+
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const deep_iterate_babel_update_expression_node = (babel_node, depth, path, common, callback) => {
|
|
193
|
+
const {extra, operator, prefix, argument} = babel_node;
|
|
194
|
+
let sibling_number = 0;
|
|
195
|
+
|
|
196
|
+
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
197
|
+
|
|
198
|
+
//deep_iterate_babel_node(right, str_source);
|
|
199
|
+
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const deep_iterate_babel_numeric_literal_node = (babel_node, depth, path, common, callback) => {
|
|
203
|
+
const {extra, value} = babel_node;
|
|
204
|
+
|
|
205
|
+
//deep_iterate_babel_node(right, str_source);
|
|
206
|
+
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
const deep_iterate_babel_for_statement_node = (babel_node, depth, path, common, callback) => {
|
|
211
|
+
const {extra, init, test, update, body} = babel_node;
|
|
212
|
+
let sibling_number = 0;
|
|
213
|
+
|
|
214
|
+
deep_iterate_babel_node_$INTERNAL(init, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
215
|
+
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
216
|
+
deep_iterate_babel_node_$INTERNAL(update, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
217
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
218
|
+
//deep_iterate_babel_node(right, str_source);
|
|
219
|
+
//each(elements, element => deep_iterate_babel_node(element, str_source));
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
const deep_iterate_babel_array_expression_node = (babel_node, depth, path, common, callback) => {
|
|
223
|
+
const {extra, elements} = babel_node;
|
|
224
|
+
let sibling_number = 0;
|
|
225
|
+
//console.log('babel_node', babel_node);
|
|
226
|
+
//throw 'stop';
|
|
227
|
+
//deep_iterate_babel_node(left, str_source);
|
|
228
|
+
//deep_iterate_babel_node(right, str_source);
|
|
229
|
+
each(elements, element => deep_iterate_babel_node_$INTERNAL(element, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
const deep_iterate_babel_assignment_expression_node = (babel_node, depth, path, common, callback) => {
|
|
233
|
+
const {extra, left, operator, right} = babel_node;
|
|
234
|
+
let sibling_number = 0;
|
|
235
|
+
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
236
|
+
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
const deep_iterate_babel_expression_statement_node = (babel_node, depth, path, common, callback) => {
|
|
240
|
+
//const {extra, left, operator, right} = babel_node;
|
|
241
|
+
const {extra, expression} = babel_node;
|
|
242
|
+
let sibling_number = 0;
|
|
243
|
+
deep_iterate_babel_node_$INTERNAL(expression, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
244
|
+
//deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
const deep_iterate_babel_variable_declarator_node = (babel_node, depth, path, common, callback) => {
|
|
248
|
+
const {extra, id, init} = babel_node;
|
|
249
|
+
let sibling_number = 0;
|
|
250
|
+
deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
251
|
+
deep_iterate_babel_node_$INTERNAL(init, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
const deep_iterate_babel_logical_expression_node = (babel_node, depth, path, common, callback) => {
|
|
255
|
+
const {extra, left, operator, right} = babel_node;
|
|
256
|
+
let sibling_number = 0;
|
|
257
|
+
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
258
|
+
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const deep_iterate_babel_function_expression_node = (babel_node, depth, path, common, callback) => {
|
|
262
|
+
//console.log('deep_iterate_babel_function_expression_node', babel_node);
|
|
263
|
+
let sibling_number = 0;
|
|
264
|
+
const {extra, id, generator, async, params, body} = babel_node;
|
|
265
|
+
|
|
266
|
+
deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
267
|
+
each(params, param => deep_iterate_babel_node_$INTERNAL(param, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
268
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
269
|
+
|
|
270
|
+
//const {extra, object, computed /*bool*/, property} = babel_node;
|
|
271
|
+
//throw 'NYI'
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const deep_iterate_babel_member_expression_node = (babel_node, depth, path, common, callback) => {
|
|
275
|
+
//console.log('deep_iterate_babel_member_expression_node', babel_node);
|
|
276
|
+
const {extra, object, computed /*bool*/, property} = babel_node;
|
|
277
|
+
let sibling_number = 0;
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
if (extra) {
|
|
281
|
+
|
|
282
|
+
//console.log('babel_node', babel_node);
|
|
283
|
+
//console.log('extra', extra);
|
|
284
|
+
|
|
285
|
+
//throw 'NYI'
|
|
286
|
+
};
|
|
287
|
+
deep_iterate_babel_node_$INTERNAL(object, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
288
|
+
deep_iterate_babel_node_$INTERNAL(property, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const deep_iterate_babel_call_expression_node = (babel_node, depth, path, common, callback) => {
|
|
292
|
+
//console.log('deep_iterate_babel_object_property_node', babel_node);
|
|
293
|
+
let sibling_number = 0;
|
|
294
|
+
const {extra, callee} = babel_node;
|
|
295
|
+
|
|
296
|
+
if (extra) {
|
|
297
|
+
//throw 'NYI';
|
|
298
|
+
const {parenthasized, parenStart} = extra;
|
|
299
|
+
}
|
|
300
|
+
deep_iterate_babel_node_$INTERNAL(callee, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
301
|
+
|
|
302
|
+
each(babel_node.arguments, argument => {
|
|
303
|
+
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
304
|
+
})
|
|
305
|
+
|
|
306
|
+
//throw 'stop';
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
const deep_iterate_babel_object_property_node = (babel_node, depth, path, common, callback) => {
|
|
310
|
+
//console.log('deep_iterate_babel_object_property_node', babel_node);
|
|
311
|
+
|
|
312
|
+
const {method, key, computed, shorthand, value} = babel_node;
|
|
313
|
+
//const {properties} = babel_node;
|
|
314
|
+
let sibling_number = 0;
|
|
315
|
+
|
|
316
|
+
// but the key and the value can be the same???
|
|
317
|
+
|
|
318
|
+
//console.log('key', key);
|
|
319
|
+
//console.log('value', value);
|
|
320
|
+
|
|
321
|
+
// Key and value being the same thing?
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
deep_iterate_babel_node_$INTERNAL(key, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
326
|
+
|
|
327
|
+
if (value.start !== key.start) {
|
|
328
|
+
//throw 'stop';
|
|
329
|
+
deep_iterate_babel_node_$INTERNAL(value, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
330
|
+
}
|
|
331
|
+
//
|
|
332
|
+
|
|
333
|
+
//throw 'stop';
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
const deep_iterate_babel_object_expression_node = (babel_node, depth, path, common, callback) => {
|
|
337
|
+
//console.log('deep_iterate_babel_object_expression_node', babel_node);
|
|
338
|
+
const {properties} = babel_node;
|
|
339
|
+
let sibling_number = 0;
|
|
340
|
+
each(properties, property => {
|
|
341
|
+
deep_iterate_babel_node_$INTERNAL(property, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
342
|
+
})
|
|
343
|
+
|
|
344
|
+
//throw 'stop';
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
const deep_iterate_babel_return_statement_node = (babel_node, depth, path, common, callback) => {
|
|
348
|
+
//console.log('deep_iterate_babel_return_statement_node', babel_node);
|
|
349
|
+
let sibling_number = 0;
|
|
350
|
+
const {argument} = babel_node;
|
|
351
|
+
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
352
|
+
|
|
353
|
+
//throw 'stop';
|
|
354
|
+
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
const deep_iterate_babel_if_statement_node = (babel_node, depth, path, common, callback) => {
|
|
358
|
+
//console.log('deep_iterate_babel_if_statement_node', babel_node);
|
|
359
|
+
let sibling_number = 0;
|
|
360
|
+
const {test, concequent, alternate} = babel_node;
|
|
361
|
+
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
362
|
+
deep_iterate_babel_node_$INTERNAL(concequent, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
363
|
+
deep_iterate_babel_node_$INTERNAL(alternate, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
//throw 'stop';
|
|
367
|
+
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
const deep_iterate_babel_block_statement_node = (babel_node, depth, path, common, callback) => {
|
|
371
|
+
const {params, body} = babel_node;
|
|
372
|
+
let sibling_number = 0;
|
|
373
|
+
if (params && params.length > 0) {
|
|
374
|
+
console.log('params', params);
|
|
375
|
+
throw 'stop';
|
|
376
|
+
}
|
|
377
|
+
each(body, body_item => {
|
|
378
|
+
deep_iterate_babel_node_$INTERNAL(body_item, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
const deep_iterate_babel_function_declaration_node = (babel_node, depth, path, common, callback) => {
|
|
383
|
+
const {extra, id, generator, async, params, body} = babel_node;
|
|
384
|
+
|
|
385
|
+
let sibling_number = 0;
|
|
386
|
+
|
|
387
|
+
deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
388
|
+
each(params, param => deep_iterate_babel_node_$INTERNAL(param, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
389
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
const deep_iterate_babel_arrow_function_expression_node = (babel_node, depth, path, common, callback) => {
|
|
395
|
+
//console.log('deep_iterate_babel_arrow_function_expression_node', babel_node);
|
|
396
|
+
|
|
397
|
+
const {generator, async, params, body} = babel_node;
|
|
398
|
+
let sibling_number = 0;
|
|
399
|
+
// Assume the params are nodes.
|
|
400
|
+
|
|
401
|
+
if (params.length > 0) {
|
|
402
|
+
//console.log('params', params);
|
|
403
|
+
//throw 'NYI';
|
|
404
|
+
each(params, param => {
|
|
405
|
+
deep_iterate_babel_node_$INTERNAL(param, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
406
|
+
})
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
//throw 'stop';
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
const deep_iterate_babel_variable_declaration_node = (babel_node, depth, path, common, callback) => {
|
|
417
|
+
//console.log('deep_iterate_babel_variable_declaration_node', babel_node);
|
|
418
|
+
|
|
419
|
+
const {kind, declarations} = babel_node;
|
|
420
|
+
let sibling_number = 0;
|
|
421
|
+
each(declarations, declaration => deep_iterate_babel_node_$INTERNAL(declaration, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
422
|
+
//throw 'stop';
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
const deep_iterate_babel_string_literal_node = (babel_node, depth, path, common, callback) => {
|
|
426
|
+
//console.log('deep_iterate_babel_string_literal_node', babel_node);
|
|
427
|
+
const {value} = babel_node;
|
|
428
|
+
//throw 'stop';
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
const deep_iterate_babel_identifier_node = (babel_node, depth, path, common, callback) => {
|
|
432
|
+
//console.log('deep_iterate_babel_identifier_node', babel_node);
|
|
433
|
+
const {name} = babel_node;
|
|
434
|
+
|
|
435
|
+
//throw 'stop';
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
const deep_iterate_babel_unary_expression_node = (babel_node, depth, path, common, callback) => {
|
|
439
|
+
//console.log('deep_iterate_babel_unary_expression_node', babel_node);
|
|
440
|
+
const {operator, argument} = babel_node;
|
|
441
|
+
let sibling_number = 0;
|
|
442
|
+
|
|
443
|
+
deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
const deep_iterate_babel_binary_expression_node = (babel_node, depth, path, common, callback) => {
|
|
450
|
+
//console.log('deep_iterate_babel_binary_expression_node babel_node', babel_node);
|
|
451
|
+
let sibling_number = 0;
|
|
452
|
+
const {left, operator, right} = babel_node;
|
|
453
|
+
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
454
|
+
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
455
|
+
|
|
456
|
+
//throw 'stop';
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
const deep_iterate_babel_template_literal_node = (babel_node, depth, path, common, callback) => {
|
|
460
|
+
// expressions and quasis
|
|
461
|
+
|
|
462
|
+
const {generator, async, params, body, quasis, expressions} = babel_node;
|
|
463
|
+
|
|
464
|
+
const q0 = babel_node.quasis[0];
|
|
465
|
+
//console.log('babel_node', babel_node);
|
|
466
|
+
//throw 'NYI';
|
|
467
|
+
//console.log('q0', q0);
|
|
468
|
+
// has both raw and cooked values.
|
|
469
|
+
|
|
470
|
+
// template element.
|
|
471
|
+
|
|
472
|
+
//const {} = babel_node;
|
|
473
|
+
let sibling_number = 0;
|
|
474
|
+
// Assume the params are nodes.
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
if (expressions.length > 0) {
|
|
478
|
+
//console.log('babel_node', babel_node);
|
|
479
|
+
//console.log('expressions', expressions);
|
|
480
|
+
//throw 'NYI';
|
|
481
|
+
|
|
482
|
+
each(expressions, expression => {
|
|
483
|
+
deep_iterate_babel_node_$INTERNAL(expression, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
if (quasis.length > 0) {
|
|
488
|
+
each(quasis, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
489
|
+
//console.log('params', params);
|
|
490
|
+
//throw 'NYI';
|
|
491
|
+
//each(quasis, quasi => {
|
|
492
|
+
// deep_iterate_babel_node_$INTERNAL(quasi, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
493
|
+
//})
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
// deep_iterate_babel_bigint_literal_node
|
|
501
|
+
|
|
502
|
+
const deep_iterate_babel_bigint_literal_node = (babel_node, depth, path, common, callback) => {
|
|
503
|
+
// Maybe nothing to do here? For now?
|
|
504
|
+
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
// deep_iterate_babel_template_element_node
|
|
508
|
+
|
|
509
|
+
const deep_iterate_babel_template_element_node = (babel_node, depth, path, common, callback) => {
|
|
510
|
+
// value.raw is basically it.
|
|
511
|
+
|
|
512
|
+
const {value} = babel_node;
|
|
513
|
+
const {raw, cooked} = value;
|
|
514
|
+
|
|
515
|
+
//console.log('babel_node', babel_node);
|
|
516
|
+
//throw 'NYI';
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
};
|
|
520
|
+
|
|
521
|
+
// deep_iterate_babel_try_statement_node
|
|
522
|
+
|
|
523
|
+
const deep_iterate_babel_try_statement_node = (babel_node, depth, path, common, callback) => {
|
|
524
|
+
// value.raw is basically it.
|
|
525
|
+
|
|
526
|
+
const {block, handler} = babel_node;
|
|
527
|
+
let sibling_number = 0;
|
|
528
|
+
|
|
529
|
+
deep_iterate_babel_node_$INTERNAL(block, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
530
|
+
deep_iterate_babel_node_$INTERNAL(handler, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
531
|
+
|
|
532
|
+
};
|
|
533
|
+
|
|
534
|
+
//deep_iterate_babel_catch_clause_node
|
|
535
|
+
|
|
536
|
+
const deep_iterate_babel_catch_clause_node = (babel_node, depth, path, common, callback) => {
|
|
537
|
+
// value.raw is basically it.
|
|
538
|
+
|
|
539
|
+
const {param, body} = babel_node;
|
|
540
|
+
let sibling_number = 0;
|
|
541
|
+
|
|
542
|
+
deep_iterate_babel_node_$INTERNAL(param, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
543
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
544
|
+
|
|
545
|
+
};
|
|
546
|
+
|
|
547
|
+
// deep_iterate_babel_switch_statement_node 1 discriminant, n cases
|
|
548
|
+
|
|
549
|
+
const deep_iterate_babel_switch_statement_node = (babel_node, depth, path, common, callback) => {
|
|
550
|
+
// value.raw is basically it.
|
|
551
|
+
|
|
552
|
+
const {discriminant, cases} = babel_node;
|
|
553
|
+
let sibling_number = 0;
|
|
554
|
+
|
|
555
|
+
deep_iterate_babel_node_$INTERNAL(discriminant, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
556
|
+
|
|
557
|
+
each(cases, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
558
|
+
//deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
559
|
+
|
|
560
|
+
};
|
|
561
|
+
|
|
562
|
+
// deep_iterate_babel_switch_case_node
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
const deep_iterate_babel_switch_case_node = (babel_node, depth, path, common, callback) => {
|
|
566
|
+
// value.raw is basically it.
|
|
567
|
+
|
|
568
|
+
//console.log('babel_node', babel_node);
|
|
569
|
+
//throw 'NYI';
|
|
570
|
+
|
|
571
|
+
const {consequent, test} = babel_node;
|
|
572
|
+
let sibling_number = 0;
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
if (consequent.length > 0) {
|
|
576
|
+
//throw 'NYI';
|
|
577
|
+
each(consequent, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
//deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
584
|
+
|
|
585
|
+
};
|
|
586
|
+
|
|
587
|
+
// deep_iterate_babel_regexp_literal_node
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
const deep_iterate_babel_regexp_literal_node = (babel_node, depth, path, common, callback) => {
|
|
591
|
+
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
// deep_iterate_babel_break_statement_node
|
|
597
|
+
|
|
598
|
+
const deep_iterate_babel_break_statement_node = (babel_node, depth, path, common, callback) => {
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
};
|
|
603
|
+
|
|
604
|
+
// deep_iterate_babel_for_in_statement_node
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
const deep_iterate_babel_for_in_statement_node = (babel_node, depth, path, common, callback) => {
|
|
608
|
+
// value.raw is basically it.
|
|
609
|
+
|
|
610
|
+
const {left, right, body} = babel_node;
|
|
611
|
+
let sibling_number = 0;
|
|
612
|
+
|
|
613
|
+
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
614
|
+
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
615
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
616
|
+
|
|
617
|
+
};
|
|
618
|
+
|
|
619
|
+
const deep_iterate_babel_for_of_statement_node = (babel_node, depth, path, common, callback) => {
|
|
620
|
+
// value.raw is basically it.
|
|
621
|
+
|
|
622
|
+
const {left, right, body} = babel_node;
|
|
623
|
+
let sibling_number = 0;
|
|
624
|
+
|
|
625
|
+
deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
626
|
+
deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
627
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
628
|
+
|
|
629
|
+
};
|
|
630
|
+
|
|
631
|
+
// deep_iterate_babel_for_of_statement_node
|
|
632
|
+
|
|
633
|
+
// deep_iterate_babel_sequence_expression_node
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
const deep_iterate_babel_sequence_expression_node = (babel_node, depth, path, common, callback) => {
|
|
637
|
+
// value.raw is basically it.
|
|
638
|
+
|
|
639
|
+
const {expressions} = babel_node;
|
|
640
|
+
let sibling_number = 0;
|
|
641
|
+
|
|
642
|
+
//deep_iterate_babel_node_$INTERNAL(discriminant, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
643
|
+
|
|
644
|
+
each(expressions, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
|
|
645
|
+
//deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
646
|
+
|
|
647
|
+
};
|
|
648
|
+
|
|
649
|
+
// deep_iterate_babel_class_expression_node
|
|
650
|
+
const deep_iterate_babel_class_expression_node = (babel_node, depth, path, common, callback) => {
|
|
651
|
+
// value.raw is basically it.
|
|
652
|
+
|
|
653
|
+
const {id, superClass, node} = babel_node;
|
|
654
|
+
let sibling_number = 0;
|
|
655
|
+
|
|
656
|
+
if (id) deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
657
|
+
deep_iterate_babel_node_$INTERNAL(superClass, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
658
|
+
deep_iterate_babel_node_$INTERNAL(node, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
659
|
+
|
|
660
|
+
};
|
|
661
|
+
|
|
662
|
+
// deep_iterate_babel_rest_element_node
|
|
663
|
+
const deep_iterate_babel_rest_element_node = (babel_node, depth, path, common, callback) => {
|
|
664
|
+
// value.raw is basically it.
|
|
665
|
+
|
|
666
|
+
const {argument} = babel_node;
|
|
667
|
+
let sibling_number = 0;
|
|
668
|
+
|
|
669
|
+
if (argument) deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
};
|
|
673
|
+
|
|
674
|
+
// deep_iterate_babel_await_expression_node
|
|
675
|
+
|
|
676
|
+
const deep_iterate_babel_await_expression_node = (babel_node, depth, path, common, callback) => {
|
|
677
|
+
// value.raw is basically it.
|
|
678
|
+
|
|
679
|
+
const {argument} = babel_node;
|
|
680
|
+
let sibling_number = 0;
|
|
681
|
+
|
|
682
|
+
if (argument) deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
683
|
+
|
|
684
|
+
|
|
685
|
+
};
|
|
686
|
+
|
|
687
|
+
// deep_iterate_babel_do_while_statement_node
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
const deep_iterate_babel_do_while_statement_node = (babel_node, depth, path, common, callback) => {
|
|
691
|
+
//
|
|
692
|
+
|
|
693
|
+
const {body, test} = babel_node;
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
let sibling_number = 0;
|
|
697
|
+
|
|
698
|
+
deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
699
|
+
deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
|
|
700
|
+
};
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
const deep_iterate_babel_node_$INTERNAL = (babel_node, depth, path, common, callback) => {
|
|
705
|
+
|
|
706
|
+
if (babel_node) {
|
|
707
|
+
|
|
708
|
+
//let stopped = false;
|
|
709
|
+
|
|
710
|
+
const stop = () => common.stopped = true;
|
|
711
|
+
|
|
712
|
+
if (callback) {
|
|
713
|
+
callback(babel_node, path, depth, stop);
|
|
714
|
+
}
|
|
715
|
+
const {type} = babel_node;
|
|
716
|
+
|
|
717
|
+
if (!common.stopped) {
|
|
718
|
+
|
|
719
|
+
if (type === 'BinaryExpression') {
|
|
720
|
+
return deep_iterate_babel_binary_expression_node(babel_node, depth, path, common, callback);
|
|
721
|
+
} else if (type === 'UnaryExpression') {
|
|
722
|
+
return deep_iterate_babel_unary_expression_node(babel_node, depth, path, common, callback);
|
|
723
|
+
} else if (type === 'Identifier') {
|
|
724
|
+
return deep_iterate_babel_identifier_node(babel_node, depth, path, common, callback);
|
|
725
|
+
} else if (type === 'StringLiteral') {
|
|
726
|
+
return deep_iterate_babel_string_literal_node(babel_node, depth, path, common, callback);
|
|
727
|
+
} else if (type === 'VariableDeclaration') {
|
|
728
|
+
return deep_iterate_babel_variable_declaration_node(babel_node, depth, path, common, callback);
|
|
729
|
+
} else if (type === 'ArrowFunctionExpression') {
|
|
730
|
+
return deep_iterate_babel_arrow_function_expression_node(babel_node, depth, path, common, callback);
|
|
731
|
+
} else if (type === 'BlockStatement') {
|
|
732
|
+
return deep_iterate_babel_block_statement_node(babel_node, depth, path, common, callback);
|
|
733
|
+
} else if (type === 'IfStatement') {
|
|
734
|
+
return deep_iterate_babel_if_statement_node(babel_node, depth, path, common, callback);
|
|
735
|
+
} else if (type === 'ReturnStatement') {
|
|
736
|
+
return deep_iterate_babel_return_statement_node(babel_node, depth, path, common, callback);
|
|
737
|
+
} else if (type === 'ObjectExpression') {
|
|
738
|
+
return deep_iterate_babel_object_expression_node(babel_node, depth, path, common, callback);
|
|
739
|
+
} else if (type === 'ObjectProperty') {
|
|
740
|
+
return deep_iterate_babel_object_property_node(babel_node, depth, path, common, callback);
|
|
741
|
+
} else if (type === 'CallExpression') {
|
|
742
|
+
return deep_iterate_babel_call_expression_node(babel_node, depth, path, common, callback);
|
|
743
|
+
} else if (type === 'MemberExpression') {
|
|
744
|
+
return deep_iterate_babel_member_expression_node(babel_node, depth, path, common, callback);
|
|
745
|
+
} else if (type === 'FunctionExpression') {
|
|
746
|
+
return deep_iterate_babel_function_expression_node(babel_node, depth, path, common, callback);
|
|
747
|
+
} else if (type === 'LogicalExpression') {
|
|
748
|
+
return deep_iterate_babel_logical_expression_node(babel_node, depth, path, common, callback);
|
|
749
|
+
} else if (type === 'VariableDeclarator') {
|
|
750
|
+
return deep_iterate_babel_variable_declarator_node(babel_node, depth, path, common, callback);
|
|
751
|
+
} else if (type === 'ExpressionStatement') {
|
|
752
|
+
return deep_iterate_babel_expression_statement_node(babel_node, depth, path, common, callback);
|
|
753
|
+
} else if (type === 'AssignmentExpression') {
|
|
754
|
+
return deep_iterate_babel_assignment_expression_node(babel_node, depth, path, common, callback);
|
|
755
|
+
} else if (type === 'ArrayExpression') {
|
|
756
|
+
return deep_iterate_babel_array_expression_node(babel_node, depth, path, common, callback);
|
|
757
|
+
} else if (type === 'ForStatement') {
|
|
758
|
+
return deep_iterate_babel_for_statement_node(babel_node, depth, path, common, callback);
|
|
759
|
+
} else if (type === 'NumericLiteral') {
|
|
760
|
+
return deep_iterate_babel_numeric_literal_node(babel_node, depth, path, common, callback);
|
|
761
|
+
} else if (type === 'UpdateExpression') {
|
|
762
|
+
return deep_iterate_babel_update_expression_node(babel_node, depth, path, common, callback);
|
|
763
|
+
} else if (type === 'NewExpression') {
|
|
764
|
+
return deep_iterate_babel_new_expression_node(babel_node, depth, path, common, callback);
|
|
765
|
+
} else if (type === 'EmptyStatement') {
|
|
766
|
+
return deep_iterate_babel_empty_statement_node(babel_node, depth, path, common, callback);
|
|
767
|
+
} else if (type === 'NullLiteral') {
|
|
768
|
+
return deep_iterate_babel_null_literal_node(babel_node, depth, path, common, callback);
|
|
769
|
+
} else if (type === 'BooleanLiteral') {
|
|
770
|
+
return deep_iterate_babel_boolean_literal_node(babel_node, depth, path, common, callback);
|
|
771
|
+
} else if (type === 'ThrowStatement') {
|
|
772
|
+
return deep_iterate_babel_throw_statement_node(babel_node, depth, path, common, callback);
|
|
773
|
+
} else if (type === 'AssignmentPattern') {
|
|
774
|
+
return deep_iterate_babel_assignment_pattern_node(babel_node, depth, path, common, callback);
|
|
775
|
+
} else if (type === 'WhileStatement') {
|
|
776
|
+
return deep_iterate_babel_while_statement_node(babel_node, depth, path, common, callback);
|
|
777
|
+
} else if (type === 'ObjectPattern') {
|
|
778
|
+
return deep_iterate_babel_object_pattern_node(babel_node, depth, path, common, callback);
|
|
779
|
+
} else if (type === 'ClassDeclaration') {
|
|
780
|
+
return deep_iterate_babel_class_declaration_node(babel_node, depth, path, common, callback);
|
|
781
|
+
} else if (type === 'ClassBody') {
|
|
782
|
+
return deep_iterate_babel_class_body_node(babel_node, depth, path, common, callback);
|
|
783
|
+
} else if (type === 'ClassMethod') {
|
|
784
|
+
return deep_iterate_babel_class_method_node(babel_node, depth, path, common, callback);
|
|
785
|
+
} else if (type === 'File') {
|
|
786
|
+
return deep_iterate_babel_file_node(babel_node, depth, path, common, callback);
|
|
787
|
+
} else if (type === 'Program') {
|
|
788
|
+
return deep_iterate_program_node(babel_node, depth, path, common, callback);
|
|
789
|
+
} else if (type === 'ArrayPattern') {
|
|
790
|
+
return deep_iterate_array_pattern_node(babel_node, depth, path, common, callback);
|
|
791
|
+
} else if (type === 'ThisExpression') {
|
|
792
|
+
return deep_iterate_this_expression_node(babel_node, depth, path, common, callback);
|
|
793
|
+
//} else if (type === 'BlockStatement') {
|
|
794
|
+
// return deep_iterate_block_statement_node(babel_node, depth, path, common, callback);
|
|
795
|
+
} else if (type === 'ObjectMethod') {
|
|
796
|
+
return deep_iterate_babel_object_method_node(babel_node, depth, path, common, callback);
|
|
797
|
+
} else if (type === 'ConditionalExpression') {
|
|
798
|
+
return deep_iterate_babel_conditional_expression_node(babel_node, depth, path, common, callback);
|
|
799
|
+
} else if (type === 'Super') {
|
|
800
|
+
return deep_iterate_babel_super_node(babel_node, depth, path, common, callback);
|
|
801
|
+
} else if (type === 'FunctionDeclaration') {
|
|
802
|
+
return deep_iterate_babel_function_declaration_node(babel_node, depth, path, common, callback);
|
|
803
|
+
} else if (type === 'TemplateLiteral') {
|
|
804
|
+
return deep_iterate_babel_template_literal_node(babel_node, depth, path, common, callback);
|
|
805
|
+
} else if (type === 'TemplateElement') {
|
|
806
|
+
return deep_iterate_babel_template_element_node(babel_node, depth, path, common, callback);
|
|
807
|
+
} else if (type === 'TryStatement') {
|
|
808
|
+
return deep_iterate_babel_try_statement_node(babel_node, depth, path, common, callback);
|
|
809
|
+
} else if (type === 'CatchClause') {
|
|
810
|
+
return deep_iterate_babel_catch_clause_node(babel_node, depth, path, common, callback);
|
|
811
|
+
} else if (type === 'SwitchStatement') {
|
|
812
|
+
return deep_iterate_babel_switch_statement_node(babel_node, depth, path, common, callback);
|
|
813
|
+
} else if (type === 'SwitchCase') {
|
|
814
|
+
return deep_iterate_babel_switch_case_node(babel_node, depth, path, common, callback);
|
|
815
|
+
} else if (type === 'RegExpLiteral') {
|
|
816
|
+
return deep_iterate_babel_regexp_literal_node(babel_node, depth, path, common, callback);
|
|
817
|
+
} else if (type === 'BreakStatement') {
|
|
818
|
+
return deep_iterate_babel_break_statement_node(babel_node, depth, path, common, callback);
|
|
819
|
+
} else if (type === 'ForInStatement') {
|
|
820
|
+
return deep_iterate_babel_for_in_statement_node(babel_node, depth, path, common, callback);
|
|
821
|
+
} else if (type === 'ForOfStatement') {
|
|
822
|
+
return deep_iterate_babel_for_of_statement_node(babel_node, depth, path, common, callback);
|
|
823
|
+
} else if (type === 'SequenceExpression') {
|
|
824
|
+
return deep_iterate_babel_sequence_expression_node(babel_node, depth, path, common, callback);
|
|
825
|
+
} else if (type === 'ClassExpression') {
|
|
826
|
+
return deep_iterate_babel_class_expression_node(babel_node, depth, path, common, callback);
|
|
827
|
+
} else if (type === 'RestElement') {
|
|
828
|
+
return deep_iterate_babel_rest_element_node(babel_node, depth, path, common, callback);
|
|
829
|
+
} else if (type === 'AwaitExpression') {
|
|
830
|
+
return deep_iterate_babel_await_expression_node(babel_node, depth, path, common, callback);
|
|
831
|
+
|
|
832
|
+
// ForOfStatement
|
|
833
|
+
|
|
834
|
+
} else if (type === 'DoWhileStatement') {
|
|
835
|
+
return deep_iterate_babel_do_while_statement_node(babel_node, depth, path, common, callback);
|
|
836
|
+
} else if (type === 'BigIntLiteral') {
|
|
837
|
+
return deep_iterate_babel_bigint_literal_node(babel_node, depth, path, common, callback);
|
|
838
|
+
} else {
|
|
839
|
+
|
|
840
|
+
// DoWhileStatement
|
|
841
|
+
// body, test
|
|
842
|
+
// BlockStatement, LogicalExpression
|
|
843
|
+
|
|
844
|
+
// BigIntLiteral
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
|
|
848
|
+
// FunctionDeclaration TemplateLiteral TemplateElement TryStatement CatchClause
|
|
849
|
+
// SwitchStatement SwitchCase RegExpLiteral BreakStatement ForInStatement
|
|
850
|
+
// SequenceExpression
|
|
851
|
+
// ClassExpression
|
|
852
|
+
// RestElement (what is this?) A: ...
|
|
853
|
+
|
|
854
|
+
// Need to make this handle a template literal too.
|
|
855
|
+
|
|
856
|
+
console.log('');
|
|
857
|
+
console.log('type', type);
|
|
858
|
+
console.log('');
|
|
859
|
+
console.log('babel_node', babel_node);
|
|
860
|
+
throw 'stop';
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
// ConditionalExpression
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
|
|
869
|
+
|
|
870
|
+
const deep_iterate_babel_node = (babel_node, callback /* (babel_node, path, depth, stop) => {}*/ ) => {
|
|
871
|
+
// Iteration callback: callback(babel_node, path, depth, stop);
|
|
872
|
+
|
|
873
|
+
//console.log('babel_node', babel_node);
|
|
874
|
+
|
|
875
|
+
const common = {
|
|
876
|
+
stopped: false
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
return deep_iterate_babel_node_$INTERNAL(babel_node, 0, '/', common, callback);
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
/*
|
|
883
|
+
iterate_babel_binary_expression_node: iterate_babel_binary_expression_node,
|
|
884
|
+
iterate_babel_unary_expression_node: iterate_babel_unary_expression_node,
|
|
885
|
+
iterate_babel_identifier_node: iterate_babel_identifier_node,
|
|
886
|
+
iterate_babel_string_literal_node: iterate_babel_string_literal_node,
|
|
887
|
+
iterate_babel_variable_declaration_node: iterate_babel_variable_declaration_node,
|
|
888
|
+
iterate_babel_arrow_function_expression_node: iterate_babel_arrow_function_expression_node,
|
|
889
|
+
iterate_babel_block_statement_node: iterate_babel_block_statement_node,
|
|
890
|
+
iterate_babel_if_statement_node: iterate_babel_if_statement_node,
|
|
891
|
+
iterate_babel_return_statement_node: iterate_babel_return_statement_node,
|
|
892
|
+
iterate_babel_object_expression_node: iterate_babel_object_expression_node,
|
|
893
|
+
iterate_babel_member_expression_node: iterate_babel_member_expression_node,
|
|
894
|
+
iterate_babel_function_expression_node: iterate_babel_function_expression_node,
|
|
895
|
+
iterate_babel_logical_expression_node: iterate_babel_logical_expression_node,
|
|
896
|
+
iterate_babel_variable_declarator_node: iterate_babel_variable_declarator_node,
|
|
897
|
+
iterate_babel_expression_statement_node: iterate_babel_expression_statement_node,
|
|
898
|
+
iterate_babel_assignment_expression_node: iterate_babel_assignment_expression_node,
|
|
899
|
+
iterate_babel_array_expression_node: iterate_babel_array_expression_node,
|
|
900
|
+
iterate_babel_for_statement_node: iterate_babel_for_statement_node,
|
|
901
|
+
iterate_babel_numeric_literal_node: iterate_babel_numeric_literal_node,
|
|
902
|
+
iterate_babel_update_expression_node: iterate_babel_update_expression_node,
|
|
903
|
+
iterate_babel_new_expression_node: iterate_babel_new_expression_node,
|
|
904
|
+
iterate_babel_empty_statement_node: iterate_babel_empty_statement_node,
|
|
905
|
+
iterate_babel_null_literal_node: iterate_babel_null_literal_node,
|
|
906
|
+
iterate_babel_boolean_literal_node: iterate_babel_boolean_literal_node,
|
|
907
|
+
iterate_babel_throw_statement_node: iterate_babel_throw_statement_node,
|
|
908
|
+
iterate_babel_assignment_pattern_node: iterate_babel_assignment_pattern_node,
|
|
909
|
+
iterate_babel_while_statement_node: iterate_babel_while_statement_node,
|
|
910
|
+
iterate_babel_object_pattern_node: iterate_babel_object_pattern_node,
|
|
911
|
+
iterate_babel_class_declaration_node: iterate_babel_class_declaration_node,
|
|
912
|
+
iterate_babel_class_body_node: iterate_babel_class_body_node,
|
|
913
|
+
iterate_babel_class_method_node: iterate_babel_class_method_node,
|
|
914
|
+
|
|
915
|
+
iterate_babel_node: iterate_babel_node, //maybe just this one is necessary.
|
|
916
|
+
iterate_babel_child_nodes: iterate_babel_child_nodes,
|
|
917
|
+
//each_babel_child_node: each_babel_child_node,
|
|
918
|
+
|
|
919
|
+
count_nodes: count_nodes,
|
|
920
|
+
|
|
921
|
+
get_babel_child_nodes: get_babel_child_nodes,
|
|
922
|
+
*/
|
|
923
|
+
|
|
905
924
|
module.exports = deep_iterate_babel_node;
|