/
Arthur_Go_Base_Structure.gql
1025 lines (887 loc) · 33 KB
/
Arthur_Go_Base_Structure.gql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
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
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
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
614
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
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
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
822
823
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
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
define
##########---------- Attributes ----------##########
booleanValue sub attribute, value boolean;
doubleValue sub attribute, value double;
name sub attribute, value string;
numberValue sub attribute, value long;
stringValue sub attribute, value string;
token sub attribute, value string;
#####----- Go -----#####
colAttribute sub attribute, value string;
dirAttribute sub attribute, value string;
implicitAttribute sub attribute, value string;
incompleteAttribute sub attribute, value string;
kindAttribute sub attribute, value string;
lineAttribute sub attribute, value string;
offsetAttribute sub attribute, value string;
slice3Attribute sub attribute, value string;
tokAttribute sub attribute, value string;
##########---------- Entities ----------##########
SourceArtifact sub entity,
owns token,
plays parent_child_relation:is_child,
plays parent_child_relation:is_parent;
#####----- Go -----#####
GoSourceArtifact sub SourceArtifact;
ArrayTypeArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays elt_relation:is_elt_role,
plays fun_relation:is_fun_role,
plays key_relation:is_key_role,
plays list_relation:is_list_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays x_relation:is_x_role,
plays elt_relation:has_elt_role,
plays lbrack_relation:has_lbrack_role,
plays len_relation:has_len_role;
AssignStmtArtifact sub GoSourceArtifact,
# Attributes
owns name,
# Structural
plays assign_relation:is_assign_role,
plays body_relation:is_body_role,
plays comm_relation:is_comm_role,
plays init_relation:is_init_role,
plays list_relation:is_list_role,
plays post_relation:is_post_role,
plays stmt_relation:is_stmt_role,
plays lhs_relation:has_lhs_role,
plays op_relation:has_op_role,
plays rhs_relation:has_rhs_role,
plays tok_pos_relation:has_tok_pos_role;
BasicLitArtifact sub GoSourceArtifact,
# Attributes
owns doubleValue,
owns kindAttribute,
owns numberValue,
owns stringValue,
# Structural
plays args_relation:is_args_role,
plays cond_relation:is_cond_role,
plays elts_relation:is_elts_role,
plays fun_relation:is_fun_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays len_relation:is_len_role,
plays lhs_relation:is_lhs_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays max_relation:is_max_role,
plays path_relation:is_path_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays value_pos_relation:has_value_pos_role;
BinaryExprArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays cond_relation:is_cond_role,
plays elts_relation:is_elts_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays len_relation:is_len_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays max_relation:is_max_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays op_pos_relation:has_op_pos_role,
plays op_relation:has_op_role,
plays x_relation:has_x_role,
plays y_relation:has_y_role;
BlockStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays else_relation:is_else_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays lbrace_relation:has_lbrace_role,
plays list_relation:has_list_role,
plays rbrace_relation:has_rbrace_role;
BranchStmtArtifact sub GoSourceArtifact,
# Attributes
owns tokAttribute,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays label_relation:has_label_role,
plays tok_pos_relation:has_tok_pos_role;
CallExprArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays call_relation:is_call_role,
plays chan_relation:is_chan_role,
plays cond_relation:is_cond_role,
plays elts_relation:is_elts_role,
plays fun_relation:is_fun_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays len_relation:is_len_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays max_relation:is_max_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays args_relation:has_args_role,
plays ellipsis_relation:has_ellipsis_role,
plays fun_relation:has_fun_role,
plays lparen_relation:has_lparen_role,
plays rparen_relation:has_rparen_role;
CaseClauseArtifact sub GoSourceArtifact,
# Structural
plays list_relation:is_list_role,
plays body_relation:has_body_role,
plays case_relation:has_case_role,
plays colon_relation:has_colon_role,
plays list_relation:has_list_role;
ChanTypeArtifact sub GoSourceArtifact,
# Attributes
owns dirAttribute,
# Structural
plays args_relation:is_args_role,
plays elt_relation:is_elt_role,
plays fun_relation:is_fun_role,
plays key_relation:is_key_role,
plays list_relation:is_list_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays x_relation:is_x_role,
plays arrow_relation:has_arrow_role,
plays begin_relation:has_begin_role,
plays value_relation:has_value_role;
CommClauseArtifact sub GoSourceArtifact,
# Structural
plays list_relation:is_list_role,
plays body_relation:has_body_role,
plays case_relation:has_case_role,
plays colon_relation:has_colon_role,
plays comm_relation:has_comm_role;
CommentArtifact sub GoSourceArtifact,
# Structural
plays list_relation:is_list_role,
plays slash_relation:has_slash_role;
CommentGroupArtifact sub GoSourceArtifact,
# Structural
plays comment_relation:is_comment_role,
plays comments_relation:is_comments_role,
plays doc_relation:is_doc_role,
plays list_relation:has_list_role;
CompositeLitArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays elts_relation:is_elts_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays list_relation:is_list_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays elts_relation:has_elts_role,
plays lbrace_relation:has_lbrace_role,
plays rbrace_relation:has_rbrace_role,
plays type_relation:has_type_role;
DeclStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays decl_relation:has_decl_role;
DeferStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays call_relation:has_call_role,
plays defer_relation:has_defer_role;
EllipsisArtifact sub GoSourceArtifact,
# Structural
plays len_relation:is_len_role,
plays type_relation:is_type_role,
plays ellipsis_relation:has_ellipsis_role,
plays elt_relation:has_elt_role;
EmptyStmtArtifact sub GoSourceArtifact,
# Attributes
owns implicitAttribute,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays semicolon_relation:has_semicolon_role;
ExprStmtArtifact sub GoSourceArtifact,
# Structural
plays assign_relation:is_assign_role,
plays body_relation:is_body_role,
plays comm_relation:is_comm_role,
plays init_relation:is_init_role,
plays list_relation:is_list_role,
plays post_relation:is_post_role,
plays stmt_relation:is_stmt_role,
plays x_relation:has_x_role;
FieldArtifact sub GoSourceArtifact,
# Structural
plays list_relation:is_list_role,
plays comment_relation:has_comment_role,
plays doc_relation:has_doc_role,
plays names_relation:has_names_role,
plays tag_relation:has_tag_role,
plays type_relation:has_type_role;
FieldListArtifact sub GoSourceArtifact,
# Structural
plays fields_relation:is_fields_role,
plays methods_relation:is_methods_role,
plays params_relation:is_params_role,
plays recv_relation:is_recv_role,
plays results_relation:is_results_role,
plays closing_relation:has_closing_role,
plays list_relation:has_list_role,
plays opening_relation:has_opening_role;
FileArtifact sub GoSourceArtifact,
# Structural
plays comments_relation:has_comments_role,
plays decls_relation:has_decls_role,
plays doc_relation:has_doc_role,
plays imports_relation:has_imports_role,
plays name_relation:has_name_role,
plays package_relation:has_package_role;
ForStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays body_relation:has_body_role,
plays cond_relation:has_cond_role,
plays for_relation:has_for_role,
plays init_relation:has_init_role,
plays post_relation:has_post_role;
FuncDeclArtifact sub GoSourceArtifact,
# Attributes
owns name,
# Structural
plays decls_relation:is_decls_role,
plays body_relation:has_body_role,
plays doc_relation:has_doc_role,
plays name_relation:has_name_role,
plays recv_relation:has_recv_role,
plays type_relation:has_type_role;
FuncLitArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays elts_relation:is_elts_role,
plays fun_relation:is_fun_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays body_relation:has_body_role,
plays type_relation:has_type_role;
FuncTypeArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays elt_relation:is_elt_role,
plays fun_relation:is_fun_role,
plays key_relation:is_key_role,
plays list_relation:is_list_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays x_relation:is_x_role,
plays func_relation:has_func_role,
plays params_relation:has_params_role,
plays results_relation:has_results_role;
GenDeclArtifact sub GoSourceArtifact,
# Attributes
owns tokAttribute,
owns name,
# Structural
plays decl_relation:is_decl_role,
plays decls_relation:is_decls_role,
plays doc_relation:has_doc_role,
plays lparen_relation:has_lparen_role,
plays rparen_relation:has_rparen_role,
plays specs_relation:has_specs_role,
plays tok_pos_relation:has_tok_pos_role;
GoStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays call_relation:has_call_role,
plays go_relation:has_go_role;
IdentArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays chan_relation:is_chan_role,
plays cond_relation:is_cond_role,
plays elt_relation:is_elt_role,
plays elts_relation:is_elts_role,
plays fun_relation:is_fun_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays label_relation:is_label_role,
plays len_relation:is_len_role,
plays lhs_relation:is_lhs_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays max_relation:is_max_role,
plays name_relation:is_name_role,
plays names_relation:is_names_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays sel_relation:is_sel_role,
plays tag_relation:is_tag_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays name_pos_relation:has_name_pos_role;
IfStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays else_relation:is_else_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays body_relation:has_body_role,
plays cond_relation:has_cond_role,
plays else_relation:has_else_role,
plays if_relation:has_if_role,
plays init_relation:has_init_role;
ImportSpecArtifact sub GoSourceArtifact,
# Structural
plays imports_relation:is_imports_role,
plays specs_relation:is_specs_role,
plays comment_relation:has_comment_role,
plays doc_relation:has_doc_role,
plays end_pos_relation:has_end_pos_role,
plays name_relation:has_name_role,
plays path_relation:has_path_role;
IncDecStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays init_relation:is_init_role,
plays list_relation:is_list_role,
plays post_relation:is_post_role,
plays stmt_relation:is_stmt_role,
plays op_relation:has_op_role,
plays tok_pos_relation:has_tok_pos_role,
plays x_relation:has_x_role;
IndexExprArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays chan_relation:is_chan_role,
plays cond_relation:is_cond_role,
plays elts_relation:is_elts_role,
plays fun_relation:is_fun_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays lhs_relation:is_lhs_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays max_relation:is_max_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays index_relation:has_index_role,
plays lbrack_relation:has_lbrack_role,
plays rbrack_relation:has_rbrack_role,
plays x_relation:has_x_role;
InterfaceTypeArtifact sub GoSourceArtifact,
# Attributes
owns incompleteAttribute,
# Structural
plays args_relation:is_args_role,
plays elt_relation:is_elt_role,
plays fun_relation:is_fun_role,
plays key_relation:is_key_role,
plays list_relation:is_list_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays x_relation:is_x_role,
plays interface_relation:has_interface_role,
plays methods_relation:has_methods_role;
KeyValueExprArtifact sub GoSourceArtifact,
# Structural
plays elts_relation:is_elts_role,
plays colon_relation:has_colon_role,
plays key_relation:has_key_role,
plays value_relation:has_value_role;
LabeledStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays colon_relation:has_colon_role,
plays label_relation:has_label_role,
plays stmt_relation:has_stmt_role;
MapTypeArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays elt_relation:is_elt_role,
plays fun_relation:is_fun_role,
plays key_relation:is_key_role,
plays list_relation:is_list_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays x_relation:is_x_role,
plays key_relation:has_key_role,
plays map_relation:has_map_role,
plays value_relation:has_value_role;
OperatorArtifact sub GoSourceArtifact,
# Structural
plays op_relation:is_op_role;
ParenExprArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays chan_relation:is_chan_role,
plays cond_relation:is_cond_role,
plays elt_relation:is_elt_role,
plays elts_relation:is_elts_role,
plays fun_relation:is_fun_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays len_relation:is_len_role,
plays lhs_relation:is_lhs_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays lparen_relation:has_lparen_role,
plays rparen_relation:has_rparen_role,
plays x_relation:has_x_role;
PositionArtifact sub GoSourceArtifact,
# Attributes
owns colAttribute,
owns lineAttribute,
owns offsetAttribute,
# Structural
plays arrow_relation:is_arrow_role,
plays assign_relation:is_assign_role,
plays begin_relation:is_begin_role,
plays case_relation:is_case_role,
plays closing_relation:is_closing_role,
plays colon_relation:is_colon_role,
plays defer_relation:is_defer_role,
plays ellipsis_relation:is_ellipsis_role,
plays end_pos_relation:is_end_pos_role,
plays for_relation:is_for_role,
plays func_relation:is_func_role,
plays go_relation:is_go_role,
plays if_relation:is_if_role,
plays interface_relation:is_interface_role,
plays lbrace_relation:is_lbrace_role,
plays lbrack_relation:is_lbrack_role,
plays lparen_relation:is_lparen_role,
plays map_relation:is_map_role,
plays name_pos_relation:is_name_pos_role,
plays op_pos_relation:is_op_pos_role,
plays opening_relation:is_opening_role,
plays package_relation:is_package_role,
plays rbrace_relation:is_rbrace_role,
plays rbrack_relation:is_rbrack_role,
plays return_relation:is_return_role,
plays rparen_relation:is_rparen_role,
plays select_relation:is_select_role,
plays semicolon_relation:is_semicolon_role,
plays slash_relation:is_slash_role,
plays star_relation:is_star_role,
plays struct_relation:is_struct_role,
plays switch_relation:is_switch_role,
plays tok_pos_relation:is_tok_pos_role,
plays value_pos_relation:is_value_pos_role;
RangeStmtArtifact sub GoSourceArtifact,
# Attributes
owns tokAttribute,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays body_relation:has_body_role,
plays for_relation:has_for_role,
plays key_relation:has_key_role,
plays tok_pos_relation:has_tok_pos_role,
plays value_relation:has_value_role,
plays x_relation:has_x_role;
ReturnStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays results_relation:has_results_role,
plays return_relation:has_return_role;
SelectorExprArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays chan_relation:is_chan_role,
plays cond_relation:is_cond_role,
plays elt_relation:is_elt_role,
plays elts_relation:is_elts_role,
plays fun_relation:is_fun_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays len_relation:is_len_role,
plays lhs_relation:is_lhs_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays max_relation:is_max_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays sel_relation:has_sel_role,
plays x_relation:has_x_role;
SelectStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays body_relation:has_body_role,
plays select_relation:has_select_role;
SendStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays comm_relation:is_comm_role,
plays list_relation:is_list_role,
plays post_relation:is_post_role,
plays stmt_relation:is_stmt_role,
plays arrow_relation:has_arrow_role,
plays chan_relation:has_chan_role,
plays value_relation:has_value_role;
SliceExprArtifact sub GoSourceArtifact,
# Attributes
owns slice3Attribute,
# Structural
plays args_relation:is_args_role,
plays elts_relation:is_elts_role,
plays index_relation:is_index_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays high_relation:has_high_role,
plays lbrack_relation:has_lbrack_role,
plays low_relation:has_low_role,
plays max_relation:has_max_role,
plays rbrack_relation:has_rbrack_role,
plays x_relation:has_x_role;
StarExprArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays chan_relation:is_chan_role,
plays cond_relation:is_cond_role,
plays elt_relation:is_elt_role,
plays elts_relation:is_elts_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays lhs_relation:is_lhs_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays star_relation:has_star_role,
plays x_relation:has_x_role;
StructTypeArtifact sub GoSourceArtifact,
# Attributes
owns incompleteAttribute,
# Structural
plays args_relation:is_args_role,
plays elt_relation:is_elt_role,
plays fun_relation:is_fun_role,
plays key_relation:is_key_role,
plays list_relation:is_list_role,
plays type_relation:is_type_role,
plays value_relation:is_value_role,
plays x_relation:is_x_role,
plays fields_relation:has_fields_role,
plays struct_relation:has_struct_role;
SwitchStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays body_relation:has_body_role,
plays init_relation:has_init_role,
plays switch_relation:has_switch_role,
plays tag_relation:has_tag_role;
TypeAssertExprArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays chan_relation:is_chan_role,
plays cond_relation:is_cond_role,
plays elts_relation:is_elts_role,
plays fun_relation:is_fun_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays lparen_relation:has_lparen_role,
plays rparen_relation:has_rparen_role,
plays type_relation:has_type_role,
plays x_relation:has_x_role;
TypeSpecArtifact sub GoSourceArtifact,
# Structural
plays specs_relation:is_specs_role,
plays assign_relation:has_assign_role,
plays comment_relation:has_comment_role,
plays doc_relation:has_doc_role,
plays name_relation:has_name_role,
plays type_relation:has_type_role;
TypeSwitchStmtArtifact sub GoSourceArtifact,
# Structural
plays body_relation:is_body_role,
plays list_relation:is_list_role,
plays stmt_relation:is_stmt_role,
plays assign_relation:has_assign_role,
plays body_relation:has_body_role,
plays init_relation:has_init_role,
plays switch_relation:has_switch_role;
UnaryExprArtifact sub GoSourceArtifact,
# Structural
plays args_relation:is_args_role,
plays chan_relation:is_chan_role,
plays cond_relation:is_cond_role,
plays elts_relation:is_elts_role,
plays high_relation:is_high_role,
plays index_relation:is_index_role,
plays key_relation:is_key_role,
plays list_relation:is_list_role,
plays low_relation:is_low_role,
plays results_relation:is_results_role,
plays rhs_relation:is_rhs_role,
plays tag_relation:is_tag_role,
plays value_relation:is_value_role,
plays values_relation:is_values_role,
plays x_relation:is_x_role,
plays y_relation:is_y_role,
plays op_pos_relation:has_op_pos_role,
plays op_relation:has_op_role,
plays x_relation:has_x_role;
ValueSpecArtifact sub GoSourceArtifact,
# Structural
plays specs_relation:is_specs_role,
plays comment_relation:has_comment_role,
plays doc_relation:has_doc_role,
plays names_relation:has_names_role,
plays type_relation:has_type_role,
plays values_relation:has_values_role;
##########---------- Structural Relationships ----------##########
parent_child_relation sub relation,
relates is_parent, relates is_child;
#####----- Go -----#####
args_relation sub parent_child_relation,
relates is_args_role as is_child, relates has_args_role as is_parent;
arrow_relation sub parent_child_relation,
relates is_arrow_role as is_child, relates has_arrow_role as is_parent;
assign_relation sub parent_child_relation,
relates is_assign_role as is_child, relates has_assign_role as is_parent;
begin_relation sub parent_child_relation,
relates is_begin_role as is_child, relates has_begin_role as is_parent;
body_relation sub parent_child_relation,
relates is_body_role as is_child, relates has_body_role as is_parent;
call_relation sub parent_child_relation,
relates is_call_role as is_child, relates has_call_role as is_parent;
case_relation sub parent_child_relation,
relates is_case_role as is_child, relates has_case_role as is_parent;
chan_relation sub parent_child_relation,
relates is_chan_role as is_child, relates has_chan_role as is_parent;
closing_relation sub parent_child_relation,
relates is_closing_role as is_child, relates has_closing_role as is_parent;
colon_relation sub parent_child_relation,
relates is_colon_role as is_child, relates has_colon_role as is_parent;
comm_relation sub parent_child_relation,
relates is_comm_role as is_child, relates has_comm_role as is_parent;
comment_relation sub parent_child_relation,
relates is_comment_role as is_child, relates has_comment_role as is_parent;
comments_relation sub parent_child_relation,
relates is_comments_role as is_child, relates has_comments_role as is_parent;
cond_relation sub parent_child_relation,
relates is_cond_role as is_child, relates has_cond_role as is_parent;
decl_relation sub parent_child_relation,
relates is_decl_role as is_child, relates has_decl_role as is_parent;
decls_relation sub parent_child_relation,
relates is_decls_role as is_child, relates has_decls_role as is_parent;
defer_relation sub parent_child_relation,
relates is_defer_role as is_child, relates has_defer_role as is_parent;
doc_relation sub parent_child_relation,
relates is_doc_role as is_child, relates has_doc_role as is_parent;
ellipsis_relation sub parent_child_relation,
relates is_ellipsis_role as is_child, relates has_ellipsis_role as is_parent;
else_relation sub parent_child_relation,
relates is_else_role as is_child, relates has_else_role as is_parent;
elt_relation sub parent_child_relation,
relates is_elt_role as is_child, relates has_elt_role as is_parent;
elts_relation sub parent_child_relation,
relates is_elts_role as is_child, relates has_elts_role as is_parent;
end_pos_relation sub parent_child_relation,
relates is_end_pos_role as is_child, relates has_end_pos_role as is_parent;
fields_relation sub parent_child_relation,
relates is_fields_role as is_child, relates has_fields_role as is_parent;
for_relation sub parent_child_relation,
relates is_for_role as is_child, relates has_for_role as is_parent;
fun_relation sub parent_child_relation,
relates is_fun_role as is_child, relates has_fun_role as is_parent;
func_relation sub parent_child_relation,
relates is_func_role as is_child, relates has_func_role as is_parent;
go_relation sub parent_child_relation,
relates is_go_role as is_child, relates has_go_role as is_parent;
high_relation sub parent_child_relation,
relates is_high_role as is_child, relates has_high_role as is_parent;
if_relation sub parent_child_relation,
relates is_if_role as is_child, relates has_if_role as is_parent;
imports_relation sub parent_child_relation,
relates is_imports_role as is_child, relates has_imports_role as is_parent;
index_relation sub parent_child_relation,
relates is_index_role as is_child, relates has_index_role as is_parent;
init_relation sub parent_child_relation,
relates is_init_role as is_child, relates has_init_role as is_parent;
interface_relation sub parent_child_relation,
relates is_interface_role as is_child, relates has_interface_role as is_parent;
key_relation sub parent_child_relation,
relates is_key_role as is_child, relates has_key_role as is_parent;
label_relation sub parent_child_relation,
relates is_label_role as is_child, relates has_label_role as is_parent;
lbrace_relation sub parent_child_relation,
relates is_lbrace_role as is_child, relates has_lbrace_role as is_parent;
lbrack_relation sub parent_child_relation,
relates is_lbrack_role as is_child, relates has_lbrack_role as is_parent;
len_relation sub parent_child_relation,
relates is_len_role as is_child, relates has_len_role as is_parent;
lhs_relation sub parent_child_relation,
relates is_lhs_role as is_child, relates has_lhs_role as is_parent;
list_relation sub parent_child_relation,
relates is_list_role as is_child, relates has_list_role as is_parent;
low_relation sub parent_child_relation,
relates is_low_role as is_child, relates has_low_role as is_parent;
lparen_relation sub parent_child_relation,
relates is_lparen_role as is_child, relates has_lparen_role as is_parent;
map_relation sub parent_child_relation,
relates is_map_role as is_child, relates has_map_role as is_parent;
max_relation sub parent_child_relation,
relates is_max_role as is_child, relates has_max_role as is_parent;
methods_relation sub parent_child_relation,
relates is_methods_role as is_child, relates has_methods_role as is_parent;
name_pos_relation sub parent_child_relation,
relates is_name_pos_role as is_child, relates has_name_pos_role as is_parent;
name_relation sub parent_child_relation,
relates is_name_role as is_child, relates has_name_role as is_parent;
names_relation sub parent_child_relation,
relates is_names_role as is_child, relates has_names_role as is_parent;
op_pos_relation sub parent_child_relation,
relates is_op_pos_role as is_child, relates has_op_pos_role as is_parent;
op_relation sub parent_child_relation,
relates is_op_role as is_child, relates has_op_role as is_parent;
opening_relation sub parent_child_relation,
relates is_opening_role as is_child, relates has_opening_role as is_parent;
package_relation sub parent_child_relation,
relates is_package_role as is_child, relates has_package_role as is_parent;
params_relation sub parent_child_relation,
relates is_params_role as is_child, relates has_params_role as is_parent;
path_relation sub parent_child_relation,
relates is_path_role as is_child, relates has_path_role as is_parent;
post_relation sub parent_child_relation,
relates is_post_role as is_child, relates has_post_role as is_parent;
rbrace_relation sub parent_child_relation,
relates is_rbrace_role as is_child, relates has_rbrace_role as is_parent;
rbrack_relation sub parent_child_relation,
relates is_rbrack_role as is_child, relates has_rbrack_role as is_parent;
recv_relation sub parent_child_relation,
relates is_recv_role as is_child, relates has_recv_role as is_parent;
results_relation sub parent_child_relation,
relates is_results_role as is_child, relates has_results_role as is_parent;
return_relation sub parent_child_relation,
relates is_return_role as is_child, relates has_return_role as is_parent;
rhs_relation sub parent_child_relation,
relates is_rhs_role as is_child, relates has_rhs_role as is_parent;
rparen_relation sub parent_child_relation,
relates is_rparen_role as is_child, relates has_rparen_role as is_parent;
sel_relation sub parent_child_relation,
relates is_sel_role as is_child, relates has_sel_role as is_parent;
select_relation sub parent_child_relation,
relates is_select_role as is_child, relates has_select_role as is_parent;
semicolon_relation sub parent_child_relation,
relates is_semicolon_role as is_child, relates has_semicolon_role as is_parent;
slash_relation sub parent_child_relation,
relates is_slash_role as is_child, relates has_slash_role as is_parent;
specs_relation sub parent_child_relation,
relates is_specs_role as is_child, relates has_specs_role as is_parent;
star_relation sub parent_child_relation,
relates is_star_role as is_child, relates has_star_role as is_parent;
stmt_relation sub parent_child_relation,
relates is_stmt_role as is_child, relates has_stmt_role as is_parent;
struct_relation sub parent_child_relation,
relates is_struct_role as is_child, relates has_struct_role as is_parent;
switch_relation sub parent_child_relation,