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,88 +1,88 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const JS_AST_Node_Basics_First = require('./JS_AST_Node_3.0.0-Basics_First');
|
|
4
|
-
|
|
5
|
-
const JS_AST_Abstract_Node = require('./JS_AST_Abstract_Node');
|
|
6
|
-
const JS_AST_Ordinal = require('./JS_AST_Ordinal');
|
|
7
|
-
//const JS_AST_Relationship = require('./JS_AST_Relationship_Node_To_Group');
|
|
8
|
-
const JS_AST_Ordinal_Relationship = require('./JS_AST_Ordinal_Relationship');
|
|
9
|
-
|
|
10
|
-
// Could make a more specific feature extraction part.
|
|
11
|
-
// Will come up with more:
|
|
12
|
-
|
|
13
|
-
// 2.1 Identify
|
|
14
|
-
// 2.2 ??? - Extract_Feature?
|
|
15
|
-
|
|
16
|
-
// Will identify more information about what JS is contained.
|
|
17
|
-
// Eg if it's a recognised code library structure that can be extracted.
|
|
18
|
-
// Identify the main block of declarations in a (library or framework) file.
|
|
19
|
-
// Identify the variable definitions in there.
|
|
20
|
-
|
|
21
|
-
// Need more capability here to find and match specified features.
|
|
22
|
-
|
|
23
|
-
// Asking questions about a piece of code - questions to later determine what it is and how to use it.
|
|
24
|
-
|
|
25
|
-
// .matches_type_signature(signature)
|
|
26
|
-
|
|
27
|
-
// . but using a tree is better for checking multiple signatures at once.
|
|
28
|
-
|
|
29
|
-
// basically 'deep iterate', though could apply to .child or .ancestor
|
|
30
|
-
|
|
31
|
-
class JS_AST_Node_Basics_Second extends JS_AST_Node_Basics_First {
|
|
32
|
-
constructor(spec = {}) {
|
|
33
|
-
super(spec);
|
|
34
|
-
|
|
35
|
-
// An abstract JS AST node
|
|
36
|
-
|
|
37
|
-
const index = 1;
|
|
38
|
-
const {child_nodes} = this;
|
|
39
|
-
|
|
40
|
-
// first.child.declaration
|
|
41
|
-
// meaning it's not 'first.child'.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
// First is a node condition?
|
|
46
|
-
// or short for get first?
|
|
47
|
-
|
|
48
|
-
// .first.child
|
|
49
|
-
// will need to be first.child.node
|
|
50
|
-
|
|
51
|
-
// .first.declaration
|
|
52
|
-
// .first.child.declaration
|
|
53
|
-
// want it to operate as read in English.
|
|
54
|
-
|
|
55
|
-
// maybe function chaining is the way?
|
|
56
|
-
|
|
57
|
-
// JS_AST_Ordinal
|
|
58
|
-
|
|
59
|
-
const ordinal = this.second = new JS_AST_Ordinal({
|
|
60
|
-
origin: this,
|
|
61
|
-
//relationship_to: 'first',
|
|
62
|
-
number: index
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
const {child} = this;
|
|
66
|
-
// JS_AST_Ordinal_Relationship
|
|
67
|
-
// Abstract node with a specified type?
|
|
68
|
-
// Or something else?
|
|
69
|
-
|
|
70
|
-
// Relationship of node to node.
|
|
71
|
-
|
|
72
|
-
const ordinal_child = ordinal.child = new JS_AST_Ordinal_Relationship({
|
|
73
|
-
ordinal: ordinal,
|
|
74
|
-
relationship: child
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
Object.defineProperty(ordinal_child, 'node', {
|
|
78
|
-
get() {
|
|
79
|
-
return child_nodes[index];
|
|
80
|
-
},
|
|
81
|
-
enumerable: true,
|
|
82
|
-
configurable: false
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
const JS_AST_Node_Basics_First = require('./JS_AST_Node_3.0.0-Basics_First');
|
|
4
|
+
|
|
5
|
+
const JS_AST_Abstract_Node = require('./JS_AST_Abstract_Node');
|
|
6
|
+
const JS_AST_Ordinal = require('./JS_AST_Ordinal');
|
|
7
|
+
//const JS_AST_Relationship = require('./JS_AST_Relationship_Node_To_Group');
|
|
8
|
+
const JS_AST_Ordinal_Relationship = require('./JS_AST_Ordinal_Relationship');
|
|
9
|
+
|
|
10
|
+
// Could make a more specific feature extraction part.
|
|
11
|
+
// Will come up with more:
|
|
12
|
+
|
|
13
|
+
// 2.1 Identify
|
|
14
|
+
// 2.2 ??? - Extract_Feature?
|
|
15
|
+
|
|
16
|
+
// Will identify more information about what JS is contained.
|
|
17
|
+
// Eg if it's a recognised code library structure that can be extracted.
|
|
18
|
+
// Identify the main block of declarations in a (library or framework) file.
|
|
19
|
+
// Identify the variable definitions in there.
|
|
20
|
+
|
|
21
|
+
// Need more capability here to find and match specified features.
|
|
22
|
+
|
|
23
|
+
// Asking questions about a piece of code - questions to later determine what it is and how to use it.
|
|
24
|
+
|
|
25
|
+
// .matches_type_signature(signature)
|
|
26
|
+
|
|
27
|
+
// . but using a tree is better for checking multiple signatures at once.
|
|
28
|
+
|
|
29
|
+
// basically 'deep iterate', though could apply to .child or .ancestor
|
|
30
|
+
|
|
31
|
+
class JS_AST_Node_Basics_Second extends JS_AST_Node_Basics_First {
|
|
32
|
+
constructor(spec = {}) {
|
|
33
|
+
super(spec);
|
|
34
|
+
|
|
35
|
+
// An abstract JS AST node
|
|
36
|
+
|
|
37
|
+
const index = 1;
|
|
38
|
+
const {child_nodes} = this;
|
|
39
|
+
|
|
40
|
+
// first.child.declaration
|
|
41
|
+
// meaning it's not 'first.child'.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
// First is a node condition?
|
|
46
|
+
// or short for get first?
|
|
47
|
+
|
|
48
|
+
// .first.child
|
|
49
|
+
// will need to be first.child.node
|
|
50
|
+
|
|
51
|
+
// .first.declaration
|
|
52
|
+
// .first.child.declaration
|
|
53
|
+
// want it to operate as read in English.
|
|
54
|
+
|
|
55
|
+
// maybe function chaining is the way?
|
|
56
|
+
|
|
57
|
+
// JS_AST_Ordinal
|
|
58
|
+
|
|
59
|
+
const ordinal = this.second = new JS_AST_Ordinal({
|
|
60
|
+
origin: this,
|
|
61
|
+
//relationship_to: 'first',
|
|
62
|
+
number: index
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
const {child} = this;
|
|
66
|
+
// JS_AST_Ordinal_Relationship
|
|
67
|
+
// Abstract node with a specified type?
|
|
68
|
+
// Or something else?
|
|
69
|
+
|
|
70
|
+
// Relationship of node to node.
|
|
71
|
+
|
|
72
|
+
const ordinal_child = ordinal.child = new JS_AST_Ordinal_Relationship({
|
|
73
|
+
ordinal: ordinal,
|
|
74
|
+
relationship: child
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
Object.defineProperty(ordinal_child, 'node', {
|
|
78
|
+
get() {
|
|
79
|
+
return child_nodes[index];
|
|
80
|
+
},
|
|
81
|
+
enumerable: true,
|
|
82
|
+
configurable: false
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
88
|
module.exports = JS_AST_Node_Basics_Second;
|
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const JS_AST_Node_Basics_Second = require('./JS_AST_Node_3.0.1-Basics_Second');
|
|
4
|
-
|
|
5
|
-
const JS_AST_Abstract_Node = require('./JS_AST_Abstract_Node');
|
|
6
|
-
const JS_AST_Ordinal = require('./JS_AST_Ordinal');
|
|
7
|
-
//const JS_AST_Relationship = require('./JS_AST_Relationship_Node_To_Group');
|
|
8
|
-
const JS_AST_Ordinal_Relationship = require('./JS_AST_Ordinal_Relationship');
|
|
9
|
-
|
|
10
|
-
// Could make a more specific feature extraction part.
|
|
11
|
-
// Will come up with more:
|
|
12
|
-
|
|
13
|
-
// 2.1 Identify
|
|
14
|
-
// 2.2 ??? - Extract_Feature?
|
|
15
|
-
|
|
16
|
-
// Will identify more information about what JS is contained.
|
|
17
|
-
// Eg if it's a recognised code library structure that can be extracted.
|
|
18
|
-
// Identify the main block of declarations in a (library or framework) file.
|
|
19
|
-
// Identify the variable definitions in there.
|
|
20
|
-
|
|
21
|
-
// Need more capability here to find and match specified features.
|
|
22
|
-
|
|
23
|
-
// Asking questions about a piece of code - questions to later determine what it is and how to use it.
|
|
24
|
-
|
|
25
|
-
// .matches_type_signature(signature)
|
|
26
|
-
|
|
27
|
-
// . but using a tree is better for checking multiple signatures at once.
|
|
28
|
-
|
|
29
|
-
// basically 'deep iterate', though could apply to .child or .ancestor
|
|
30
|
-
|
|
31
|
-
class JS_AST_Node_Basics_Last extends JS_AST_Node_Basics_Second {
|
|
32
|
-
constructor(spec = {}) {
|
|
33
|
-
super(spec);
|
|
34
|
-
|
|
35
|
-
// An abstract JS AST node
|
|
36
|
-
|
|
37
|
-
//const index = 'last'; // or -0 meaning last?
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const {child_nodes} = this;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// first.child.declaration
|
|
45
|
-
// meaning it's not 'first.child'.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
// First is a node condition?
|
|
50
|
-
// or short for get first?
|
|
51
|
-
|
|
52
|
-
// .first.child
|
|
53
|
-
// will need to be first.child.node
|
|
54
|
-
|
|
55
|
-
// .first.declaration
|
|
56
|
-
// .first.child.declaration
|
|
57
|
-
// want it to operate as read in English.
|
|
58
|
-
|
|
59
|
-
// maybe function chaining is the way?
|
|
60
|
-
|
|
61
|
-
// JS_AST_Ordinal
|
|
62
|
-
|
|
63
|
-
const ordinal = this.last = new JS_AST_Ordinal({
|
|
64
|
-
origin: this,
|
|
65
|
-
//relationship_to: 'first',
|
|
66
|
-
//number: 'last'
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
const {child} = this;
|
|
70
|
-
// JS_AST_Ordinal_Relationship
|
|
71
|
-
// Abstract node with a specified type?
|
|
72
|
-
// Or something else?
|
|
73
|
-
|
|
74
|
-
// Relationship of node to node.
|
|
75
|
-
|
|
76
|
-
const ordinal_child = ordinal.child = new JS_AST_Ordinal_Relationship({
|
|
77
|
-
ordinal: ordinal,
|
|
78
|
-
relationship: child
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
Object.defineProperty(ordinal_child, 'node', {
|
|
82
|
-
get() {
|
|
83
|
-
return child_nodes[child_nodes.length - 1];
|
|
84
|
-
},
|
|
85
|
-
enumerable: true,
|
|
86
|
-
configurable: false
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
const JS_AST_Node_Basics_Second = require('./JS_AST_Node_3.0.1-Basics_Second');
|
|
4
|
+
|
|
5
|
+
const JS_AST_Abstract_Node = require('./JS_AST_Abstract_Node');
|
|
6
|
+
const JS_AST_Ordinal = require('./JS_AST_Ordinal');
|
|
7
|
+
//const JS_AST_Relationship = require('./JS_AST_Relationship_Node_To_Group');
|
|
8
|
+
const JS_AST_Ordinal_Relationship = require('./JS_AST_Ordinal_Relationship');
|
|
9
|
+
|
|
10
|
+
// Could make a more specific feature extraction part.
|
|
11
|
+
// Will come up with more:
|
|
12
|
+
|
|
13
|
+
// 2.1 Identify
|
|
14
|
+
// 2.2 ??? - Extract_Feature?
|
|
15
|
+
|
|
16
|
+
// Will identify more information about what JS is contained.
|
|
17
|
+
// Eg if it's a recognised code library structure that can be extracted.
|
|
18
|
+
// Identify the main block of declarations in a (library or framework) file.
|
|
19
|
+
// Identify the variable definitions in there.
|
|
20
|
+
|
|
21
|
+
// Need more capability here to find and match specified features.
|
|
22
|
+
|
|
23
|
+
// Asking questions about a piece of code - questions to later determine what it is and how to use it.
|
|
24
|
+
|
|
25
|
+
// .matches_type_signature(signature)
|
|
26
|
+
|
|
27
|
+
// . but using a tree is better for checking multiple signatures at once.
|
|
28
|
+
|
|
29
|
+
// basically 'deep iterate', though could apply to .child or .ancestor
|
|
30
|
+
|
|
31
|
+
class JS_AST_Node_Basics_Last extends JS_AST_Node_Basics_Second {
|
|
32
|
+
constructor(spec = {}) {
|
|
33
|
+
super(spec);
|
|
34
|
+
|
|
35
|
+
// An abstract JS AST node
|
|
36
|
+
|
|
37
|
+
//const index = 'last'; // or -0 meaning last?
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
const {child_nodes} = this;
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
// first.child.declaration
|
|
45
|
+
// meaning it's not 'first.child'.
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
// First is a node condition?
|
|
50
|
+
// or short for get first?
|
|
51
|
+
|
|
52
|
+
// .first.child
|
|
53
|
+
// will need to be first.child.node
|
|
54
|
+
|
|
55
|
+
// .first.declaration
|
|
56
|
+
// .first.child.declaration
|
|
57
|
+
// want it to operate as read in English.
|
|
58
|
+
|
|
59
|
+
// maybe function chaining is the way?
|
|
60
|
+
|
|
61
|
+
// JS_AST_Ordinal
|
|
62
|
+
|
|
63
|
+
const ordinal = this.last = new JS_AST_Ordinal({
|
|
64
|
+
origin: this,
|
|
65
|
+
//relationship_to: 'first',
|
|
66
|
+
//number: 'last'
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
const {child} = this;
|
|
70
|
+
// JS_AST_Ordinal_Relationship
|
|
71
|
+
// Abstract node with a specified type?
|
|
72
|
+
// Or something else?
|
|
73
|
+
|
|
74
|
+
// Relationship of node to node.
|
|
75
|
+
|
|
76
|
+
const ordinal_child = ordinal.child = new JS_AST_Ordinal_Relationship({
|
|
77
|
+
ordinal: ordinal,
|
|
78
|
+
relationship: child
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
Object.defineProperty(ordinal_child, 'node', {
|
|
82
|
+
get() {
|
|
83
|
+
return child_nodes[child_nodes.length - 1];
|
|
84
|
+
},
|
|
85
|
+
enumerable: true,
|
|
86
|
+
configurable: false
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
92
|
module.exports = JS_AST_Node_Basics_Last;
|
|
@@ -1,137 +1,137 @@
|
|
|
1
|
-
|
|
2
|
-
const JS_AST_Node_Basics_Last = require('./JS_AST_Node_3.0.99-Basics_Last');
|
|
3
|
-
const JS_AST_Operation = require('./JS_AST_Operation');
|
|
4
|
-
const JS_AST_Relationship = require('./JS_AST_Relationship_Node_To_Group');
|
|
5
|
-
|
|
6
|
-
const JS_AST_Operation_On_Relationship = require('./JS_AST_Operation_On_Relationship');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
// Operation_On_Relationship
|
|
10
|
-
|
|
11
|
-
// Could make a more specific feature extraction part.
|
|
12
|
-
// Will come up with more:
|
|
13
|
-
|
|
14
|
-
// 2.1 Identify
|
|
15
|
-
// 2.2 ??? - Extract_Feature?
|
|
16
|
-
|
|
17
|
-
// Will identify more information about what JS is contained.
|
|
18
|
-
// Eg if it's a recognised code library structure that can be extracted.
|
|
19
|
-
// Identify the main block of declarations in a (library or framework) file.
|
|
20
|
-
// Identify the variable definitions in there.
|
|
21
|
-
|
|
22
|
-
// Need more capability here to find and match specified features.
|
|
23
|
-
|
|
24
|
-
// Asking questions about a piece of code - questions to later determine what it is and how to use it.
|
|
25
|
-
|
|
26
|
-
// .matches_type_signature(signature)
|
|
27
|
-
|
|
28
|
-
// . but using a tree is better for checking multiple signatures at once.
|
|
29
|
-
|
|
30
|
-
// basically 'deep iterate', though could apply to .child or .ancestor
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// More about traversal than query?
|
|
34
|
-
|
|
35
|
-
class JS_AST_Node_Basics_Each extends JS_AST_Node_Basics_Last {
|
|
36
|
-
constructor(spec = {}) {
|
|
37
|
-
super(spec);
|
|
38
|
-
const {each_child_node, filter_each_child_node} = this;
|
|
39
|
-
|
|
40
|
-
const myeach = new JS_AST_Operation({name: 'each'});
|
|
41
|
-
|
|
42
|
-
////const myeach = cb => deep_iterate(cb);
|
|
43
|
-
|
|
44
|
-
Object.assign(this, {
|
|
45
|
-
each: myeach
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// .child
|
|
49
|
-
// .inner
|
|
50
|
-
// .node (seems like we need this now rather than just calling each)
|
|
51
|
-
// now each is an operation, we need to explicitly tell it what to operate on.
|
|
52
|
-
|
|
53
|
-
/*
|
|
54
|
-
const child = new JS_AST_Relationship({
|
|
55
|
-
name: 'child'
|
|
56
|
-
});
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
|
-
// each.identifier is another relationship?
|
|
60
|
-
// is_within??? or the within relationship?
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
// And an Operation_Relationship?
|
|
68
|
-
// each child
|
|
69
|
-
|
|
70
|
-
// Operation_Relationship_Node?
|
|
71
|
-
// Since it's each child node, or some kind of node here, we can make use of that somehow.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
/*
|
|
75
|
-
const each_child = new JS_AST_Operation_On_Relationship({
|
|
76
|
-
operation: myeach,
|
|
77
|
-
related: child
|
|
78
|
-
}); // But incomplete without being told what to operate on.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
myeach.child = each_child;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
// each.identifier
|
|
85
|
-
// has to be a function for the nicest syntax.
|
|
86
|
-
|
|
87
|
-
myeach.identifier = callback => {
|
|
88
|
-
this.filter_deep_iterate(node => node.is_identifier, callback);
|
|
89
|
-
}
|
|
90
|
-
myeach.declaration = callback => {
|
|
91
|
-
this.filter_deep_iterate(node => node.is_declaration, callback);
|
|
92
|
-
}
|
|
93
|
-
myeach.statement = callback => {
|
|
94
|
-
this.filter_deep_iterate(node => node.is_statement, callback);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
*/
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
//child.each = each_child;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
/*
|
|
107
|
-
const each_child_assignment_expression = (callback) => filter_each_child_node(node => node.type === 'AssignmentExpression', callback);
|
|
108
|
-
const each_child_expression_statement = (callback) => filter_each_child_node(node => node.type === 'ExpressionStatement', callback);
|
|
109
|
-
//const each_child_declaration = (callback) => filter_each_child_node(node => node.is_declaration, callback);
|
|
110
|
-
//const each_declaration_child_node = (callback) => filter_each_child_node(js_ast_node => js_ast_node.is_declaration, callback);
|
|
111
|
-
const each_assignment_expression_child_node = callback => filter_each_child_node(node => node.type === "AssignmentExpression");
|
|
112
|
-
|
|
113
|
-
const each_inner_declaration = (callback) => {
|
|
114
|
-
filter_inner_deep_iterate(node => node.is_declaration, node => {
|
|
115
|
-
callback(node);
|
|
116
|
-
})
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
const each_inner_variable_declarator = callback => each_inner_node_of_type('VariableDeclarator', callback);
|
|
120
|
-
const each_inner_identifier = callback => each_inner_node_of_type('Identifier', callback);
|
|
121
|
-
|
|
122
|
-
//each_child.node = cb => each_child_node(callback);
|
|
123
|
-
|
|
124
|
-
//const mechild = myeach.child = cb => each_child_node(cb);
|
|
125
|
-
|
|
126
|
-
//mechild.expression_statement = cb => each_child_expression_statement(cb);
|
|
127
|
-
//mechild.assignment_expression = cb => each_child_assignment_expression(cb);
|
|
128
|
-
//mechild.declaration = cb => each_child_declaration(cb);
|
|
129
|
-
*/
|
|
130
|
-
this.each = myeach;
|
|
131
|
-
//this.each_child_declaration = each_child_declaration;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
1
|
+
|
|
2
|
+
const JS_AST_Node_Basics_Last = require('./JS_AST_Node_3.0.99-Basics_Last');
|
|
3
|
+
const JS_AST_Operation = require('./JS_AST_Operation');
|
|
4
|
+
const JS_AST_Relationship = require('./JS_AST_Relationship_Node_To_Group');
|
|
5
|
+
|
|
6
|
+
const JS_AST_Operation_On_Relationship = require('./JS_AST_Operation_On_Relationship');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
// Operation_On_Relationship
|
|
10
|
+
|
|
11
|
+
// Could make a more specific feature extraction part.
|
|
12
|
+
// Will come up with more:
|
|
13
|
+
|
|
14
|
+
// 2.1 Identify
|
|
15
|
+
// 2.2 ??? - Extract_Feature?
|
|
16
|
+
|
|
17
|
+
// Will identify more information about what JS is contained.
|
|
18
|
+
// Eg if it's a recognised code library structure that can be extracted.
|
|
19
|
+
// Identify the main block of declarations in a (library or framework) file.
|
|
20
|
+
// Identify the variable definitions in there.
|
|
21
|
+
|
|
22
|
+
// Need more capability here to find and match specified features.
|
|
23
|
+
|
|
24
|
+
// Asking questions about a piece of code - questions to later determine what it is and how to use it.
|
|
25
|
+
|
|
26
|
+
// .matches_type_signature(signature)
|
|
27
|
+
|
|
28
|
+
// . but using a tree is better for checking multiple signatures at once.
|
|
29
|
+
|
|
30
|
+
// basically 'deep iterate', though could apply to .child or .ancestor
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
// More about traversal than query?
|
|
34
|
+
|
|
35
|
+
class JS_AST_Node_Basics_Each extends JS_AST_Node_Basics_Last {
|
|
36
|
+
constructor(spec = {}) {
|
|
37
|
+
super(spec);
|
|
38
|
+
const {each_child_node, filter_each_child_node} = this;
|
|
39
|
+
|
|
40
|
+
const myeach = new JS_AST_Operation({name: 'each'});
|
|
41
|
+
|
|
42
|
+
////const myeach = cb => deep_iterate(cb);
|
|
43
|
+
|
|
44
|
+
Object.assign(this, {
|
|
45
|
+
each: myeach
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// .child
|
|
49
|
+
// .inner
|
|
50
|
+
// .node (seems like we need this now rather than just calling each)
|
|
51
|
+
// now each is an operation, we need to explicitly tell it what to operate on.
|
|
52
|
+
|
|
53
|
+
/*
|
|
54
|
+
const child = new JS_AST_Relationship({
|
|
55
|
+
name: 'child'
|
|
56
|
+
});
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
// each.identifier is another relationship?
|
|
60
|
+
// is_within??? or the within relationship?
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
// And an Operation_Relationship?
|
|
68
|
+
// each child
|
|
69
|
+
|
|
70
|
+
// Operation_Relationship_Node?
|
|
71
|
+
// Since it's each child node, or some kind of node here, we can make use of that somehow.
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
/*
|
|
75
|
+
const each_child = new JS_AST_Operation_On_Relationship({
|
|
76
|
+
operation: myeach,
|
|
77
|
+
related: child
|
|
78
|
+
}); // But incomplete without being told what to operate on.
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
myeach.child = each_child;
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
// each.identifier
|
|
85
|
+
// has to be a function for the nicest syntax.
|
|
86
|
+
|
|
87
|
+
myeach.identifier = callback => {
|
|
88
|
+
this.filter_deep_iterate(node => node.is_identifier, callback);
|
|
89
|
+
}
|
|
90
|
+
myeach.declaration = callback => {
|
|
91
|
+
this.filter_deep_iterate(node => node.is_declaration, callback);
|
|
92
|
+
}
|
|
93
|
+
myeach.statement = callback => {
|
|
94
|
+
this.filter_deep_iterate(node => node.is_statement, callback);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
//child.each = each_child;
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
/*
|
|
107
|
+
const each_child_assignment_expression = (callback) => filter_each_child_node(node => node.type === 'AssignmentExpression', callback);
|
|
108
|
+
const each_child_expression_statement = (callback) => filter_each_child_node(node => node.type === 'ExpressionStatement', callback);
|
|
109
|
+
//const each_child_declaration = (callback) => filter_each_child_node(node => node.is_declaration, callback);
|
|
110
|
+
//const each_declaration_child_node = (callback) => filter_each_child_node(js_ast_node => js_ast_node.is_declaration, callback);
|
|
111
|
+
const each_assignment_expression_child_node = callback => filter_each_child_node(node => node.type === "AssignmentExpression");
|
|
112
|
+
|
|
113
|
+
const each_inner_declaration = (callback) => {
|
|
114
|
+
filter_inner_deep_iterate(node => node.is_declaration, node => {
|
|
115
|
+
callback(node);
|
|
116
|
+
})
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const each_inner_variable_declarator = callback => each_inner_node_of_type('VariableDeclarator', callback);
|
|
120
|
+
const each_inner_identifier = callback => each_inner_node_of_type('Identifier', callback);
|
|
121
|
+
|
|
122
|
+
//each_child.node = cb => each_child_node(callback);
|
|
123
|
+
|
|
124
|
+
//const mechild = myeach.child = cb => each_child_node(cb);
|
|
125
|
+
|
|
126
|
+
//mechild.expression_statement = cb => each_child_expression_statement(cb);
|
|
127
|
+
//mechild.assignment_expression = cb => each_child_assignment_expression(cb);
|
|
128
|
+
//mechild.declaration = cb => each_child_declaration(cb);
|
|
129
|
+
*/
|
|
130
|
+
this.each = myeach;
|
|
131
|
+
//this.each_child_declaration = each_child_declaration;
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
137
|
module.exports = JS_AST_Node_Basics_Each
|