aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/tests/data/parser/ok/0031_extern.txt
blob: f3f1c25a9c5cfedb6a81b59e8fafb7c48bd95e1d (plain)
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
ROOT@[0; 1598)
  EXTERN_BLOCK@[0; 1597)
    ABI@[0; 6)
      EXTERN_KW@[0; 6)
    WHITESPACE@[6; 7)
    EXTERN_ITEM_LIST@[7; 1597)
      L_CURLY@[7; 8)
      WHITESPACE@[8; 13)
      FN_DEF@[13; 87)
        VISIBILITY@[13; 16)
          PUB_KW@[13; 16)
        WHITESPACE@[16; 17)
        FN_KW@[17; 19)
        WHITESPACE@[19; 20)
        NAME@[20; 26)
          IDENT@[20; 26) "socket"
        PARAM_LIST@[26; 75)
          L_PAREN@[26; 27)
          PARAM@[27; 42)
            BIND_PAT@[27; 33)
              NAME@[27; 33)
                IDENT@[27; 33) "domain"
            COLON@[33; 34)
            WHITESPACE@[34; 35)
            PATH_TYPE@[35; 42)
              PATH@[35; 42)
                PATH_SEGMENT@[35; 42)
                  COLONCOLON@[35; 37)
                  NAME_REF@[37; 42)
                    IDENT@[37; 42) "c_int"
          COMMA@[42; 43)
          WHITESPACE@[43; 44)
          PARAM@[44; 55)
            BIND_PAT@[44; 46)
              NAME@[44; 46)
                IDENT@[44; 46) "ty"
            COLON@[46; 47)
            WHITESPACE@[47; 48)
            PATH_TYPE@[48; 55)
              PATH@[48; 55)
                PATH_SEGMENT@[48; 55)
                  COLONCOLON@[48; 50)
                  NAME_REF@[50; 55)
                    IDENT@[50; 55) "c_int"
          COMMA@[55; 56)
          WHITESPACE@[56; 57)
          PARAM@[57; 74)
            BIND_PAT@[57; 65)
              NAME@[57; 65)
                IDENT@[57; 65) "protocol"
            COLON@[65; 66)
            WHITESPACE@[66; 67)
            PATH_TYPE@[67; 74)
              PATH@[67; 74)
                PATH_SEGMENT@[67; 74)
                  COLONCOLON@[67; 69)
                  NAME_REF@[69; 74)
                    IDENT@[69; 74) "c_int"
          R_PAREN@[74; 75)
        WHITESPACE@[75; 76)
        RET_TYPE@[76; 86)
          THIN_ARROW@[76; 78)
          WHITESPACE@[78; 79)
          PATH_TYPE@[79; 86)
            PATH@[79; 86)
              PATH_SEGMENT@[79; 86)
                COLONCOLON@[79; 81)
                NAME_REF@[81; 86)
                  IDENT@[81; 86) "c_int"
        SEMI@[86; 87)
      WHITESPACE@[87; 92)
      FN_DEF@[92; 167)
        VISIBILITY@[92; 95)
          PUB_KW@[92; 95)
        WHITESPACE@[95; 96)
        FN_KW@[96; 98)
        WHITESPACE@[98; 99)
        NAME@[99; 103)
          IDENT@[99; 103) "bind"
        PARAM_LIST@[103; 155)
          L_PAREN@[103; 104)
          PARAM@[104; 115)
            BIND_PAT@[104; 106)
              NAME@[104; 106)
                IDENT@[104; 106) "fd"
            COLON@[106; 107)
            WHITESPACE@[107; 108)
            PATH_TYPE@[108; 115)
              PATH@[108; 115)
                PATH_SEGMENT@[108; 115)
                  COLONCOLON@[108; 110)
                  NAME_REF@[110; 115)
                    IDENT@[110; 115) "c_int"
          COMMA@[115; 116)
          WHITESPACE@[116; 117)
          PARAM@[117; 138)
            BIND_PAT@[117; 121)
              NAME@[117; 121)
                IDENT@[117; 121) "addr"
            COLON@[121; 122)
            WHITESPACE@[122; 123)
            POINTER_TYPE@[123; 138)
              STAR@[123; 124)
              CONST_KW@[124; 129)
              WHITESPACE@[129; 130)
              PATH_TYPE@[130; 138)
                PATH@[130; 138)
                  PATH_SEGMENT@[130; 138)
                    NAME_REF@[130; 138)
                      IDENT@[130; 138) "sockaddr"
          COMMA@[138; 139)
          WHITESPACE@[139; 140)
          PARAM@[140; 154)
            BIND_PAT@[140; 143)
              NAME@[140; 143)
                IDENT@[140; 143) "len"
            COLON@[143; 144)
            WHITESPACE@[144; 145)
            PATH_TYPE@[145; 154)
              PATH@[145; 154)
                PATH_SEGMENT@[145; 154)
                  NAME_REF@[145; 154)
                    IDENT@[145; 154) "socklen_t"
          R_PAREN@[154; 155)
        WHITESPACE@[155; 156)
        RET_TYPE@[156; 166)
          THIN_ARROW@[156; 158)
          WHITESPACE@[158; 159)
          PATH_TYPE@[159; 166)
            PATH@[159; 166)
              PATH_SEGMENT@[159; 166)
                COLONCOLON@[159; 161)
                NAME_REF@[161; 166)
                  IDENT@[161; 166) "c_int"
        SEMI@[166; 167)
      WHITESPACE@[167; 172)
      FN_DEF@[172; 276)
        VISIBILITY@[172; 175)
          PUB_KW@[172; 175)
        WHITESPACE@[175; 176)
        FN_KW@[176; 178)
        WHITESPACE@[178; 179)
        NAME@[179; 186)
          IDENT@[179; 186) "connect"
        PARAM_LIST@[186; 264)
          L_PAREN@[186; 187)
          PARAM@[187; 202)
            BIND_PAT@[187; 193)
              NAME@[187; 193)
                IDENT@[187; 193) "socket"
            COLON@[193; 194)
            WHITESPACE@[194; 195)
            PATH_TYPE@[195; 202)
              PATH@[195; 202)
                PATH_SEGMENT@[195; 202)
                  COLONCOLON@[195; 197)
                  NAME_REF@[197; 202)
                    IDENT@[197; 202) "c_int"
          COMMA@[202; 203)
          WHITESPACE@[203; 204)
          PARAM@[204; 228)
            BIND_PAT@[204; 211)
              NAME@[204; 211)
                IDENT@[204; 211) "address"
            COLON@[211; 212)
            WHITESPACE@[212; 213)
            POINTER_TYPE@[213; 228)
              STAR@[213; 214)
              CONST_KW@[214; 219)
              WHITESPACE@[219; 220)
              PATH_TYPE@[220; 228)
                PATH@[220; 228)
                  PATH_SEGMENT@[220; 228)
                    NAME_REF@[220; 228)
                      IDENT@[220; 228) "sockaddr"
          COMMA@[228; 229)
          WHITESPACE@[229; 249)
          PARAM@[249; 263)
            BIND_PAT@[249; 252)
              NAME@[249; 252)
                IDENT@[249; 252) "len"
            COLON@[252; 253)
            WHITESPACE@[253; 254)
            PATH_TYPE@[254; 263)
              PATH@[254; 263)
                PATH_SEGMENT@[254; 263)
                  NAME_REF@[254; 263)
                    IDENT@[254; 263) "socklen_t"
          R_PAREN@[263; 264)
        WHITESPACE@[264; 265)
        RET_TYPE@[265; 275)
          THIN_ARROW@[265; 267)
          WHITESPACE@[267; 268)
          PATH_TYPE@[268; 275)
            PATH@[268; 275)
              PATH_SEGMENT@[268; 275)
                COLONCOLON@[268; 270)
                NAME_REF@[270; 275)
                  IDENT@[270; 275) "c_int"
        SEMI@[275; 276)
      WHITESPACE@[276; 281)
      FN_DEF@[281; 341)
        VISIBILITY@[281; 284)
          PUB_KW@[281; 284)
        WHITESPACE@[284; 285)
        FN_KW@[285; 287)
        WHITESPACE@[287; 288)
        NAME@[288; 294)
          IDENT@[288; 294) "listen"
        PARAM_LIST@[294; 329)
          L_PAREN@[294; 295)
          PARAM@[295; 310)
            BIND_PAT@[295; 301)
              NAME@[295; 301)
                IDENT@[295; 301) "socket"
            COLON@[301; 302)
            WHITESPACE@[302; 303)
            PATH_TYPE@[303; 310)
              PATH@[303; 310)
                PATH_SEGMENT@[303; 310)
                  COLONCOLON@[303; 305)
                  NAME_REF@[305; 310)
                    IDENT@[305; 310) "c_int"
          COMMA@[310; 311)
          WHITESPACE@[311; 312)
          PARAM@[312; 328)
            BIND_PAT@[312; 319)
              NAME@[312; 319)
                IDENT@[312; 319) "backlog"
            COLON@[319; 320)
            WHITESPACE@[320; 321)
            PATH_TYPE@[321; 328)
              PATH@[321; 328)
                PATH_SEGMENT@[321; 328)
                  COLONCOLON@[321; 323)
                  NAME_REF@[323; 328)
                    IDENT@[323; 328) "c_int"
          R_PAREN@[328; 329)
        WHITESPACE@[329; 330)
        RET_TYPE@[330; 340)
          THIN_ARROW@[330; 332)
          WHITESPACE@[332; 333)
          PATH_TYPE@[333; 340)
            PATH@[333; 340)
              PATH_SEGMENT@[333; 340)
                COLONCOLON@[333; 335)
                NAME_REF@[335; 340)
                  IDENT@[335; 340) "c_int"
        SEMI@[340; 341)
      WHITESPACE@[341; 346)
      FN_DEF@[346; 469)
        VISIBILITY@[346; 349)
          PUB_KW@[346; 349)
        WHITESPACE@[349; 350)
        FN_KW@[350; 352)
        WHITESPACE@[352; 353)
        NAME@[353; 364)
          IDENT@[353; 364) "getsockname"
        PARAM_LIST@[364; 457)
          L_PAREN@[364; 365)
          PARAM@[365; 380)
            BIND_PAT@[365; 371)
              NAME@[365; 371)
                IDENT@[365; 371) "socket"
            COLON@[371; 372)
            WHITESPACE@[372; 373)
            PATH_TYPE@[373; 380)
              PATH@[373; 380)
                PATH_SEGMENT@[373; 380)
                  COLONCOLON@[373; 375)
                  NAME_REF@[375; 380)
                    IDENT@[375; 380) "c_int"
          COMMA@[380; 381)
          WHITESPACE@[381; 382)
          PARAM@[382; 404)
            BIND_PAT@[382; 389)
              NAME@[382; 389)
                IDENT@[382; 389) "address"
            COLON@[389; 390)
            WHITESPACE@[390; 391)
            POINTER_TYPE@[391; 404)
              STAR@[391; 392)
              MUT_KW@[392; 395)
              WHITESPACE@[395; 396)
              PATH_TYPE@[396; 404)
                PATH@[396; 404)
                  PATH_SEGMENT@[396; 404)
                    NAME_REF@[396; 404)
                      IDENT@[396; 404) "sockaddr"
          COMMA@[404; 405)
          WHITESPACE@[405; 429)
          PARAM@[429; 456)
            BIND_PAT@[429; 440)
              NAME@[429; 440)
                IDENT@[429; 440) "address_len"
            COLON@[440; 441)
            WHITESPACE@[441; 442)
            POINTER_TYPE@[442; 456)
              STAR@[442; 443)
              MUT_KW@[443; 446)
              WHITESPACE@[446; 447)
              PATH_TYPE@[447; 456)
                PATH@[447; 456)
                  PATH_SEGMENT@[447; 456)
                    NAME_REF@[447; 456)
                      IDENT@[447; 456) "socklen_t"
          R_PAREN@[456; 457)
        WHITESPACE@[457; 458)
        RET_TYPE@[458; 468)
          THIN_ARROW@[458; 460)
          WHITESPACE@[460; 461)
          PATH_TYPE@[461; 468)
            PATH@[461; 468)
              PATH_SEGMENT@[461; 468)
                COLONCOLON@[461; 463)
                NAME_REF@[463; 468)
                  IDENT@[463; 468) "c_int"
        SEMI@[468; 469)
      WHITESPACE@[469; 474)
      FN_DEF@[474; 691)
        VISIBILITY@[474; 477)
          PUB_KW@[474; 477)
        WHITESPACE@[477; 478)
        FN_KW@[478; 480)
        WHITESPACE@[480; 481)
        NAME@[481; 491)
          IDENT@[481; 491) "getsockopt"
        PARAM_LIST@[491; 679)
          L_PAREN@[491; 492)
          PARAM@[492; 507)
            BIND_PAT@[492; 498)
              NAME@[492; 498)
                IDENT@[492; 498) "sockfd"
            COLON@[498; 499)
            WHITESPACE@[499; 500)
            PATH_TYPE@[500; 507)
              PATH@[500; 507)
                PATH_SEGMENT@[500; 507)
                  COLONCOLON@[500; 502)
                  NAME_REF@[502; 507)
                    IDENT@[502; 507) "c_int"
          COMMA@[507; 508)
          WHITESPACE@[508; 531)
          PARAM@[531; 545)
            BIND_PAT@[531; 536)
              NAME@[531; 536)
                IDENT@[531; 536) "level"
            COLON@[536; 537)
            WHITESPACE@[537; 538)
            PATH_TYPE@[538; 545)
              PATH@[538; 545)
                PATH_SEGMENT@[538; 545)
                  COLONCOLON@[538; 540)
                  NAME_REF@[540; 545)
                    IDENT@[540; 545) "c_int"
          COMMA@[545; 546)
          WHITESPACE@[546; 569)
          PARAM@[569; 585)
            BIND_PAT@[569; 576)
              NAME@[569; 576)
                IDENT@[569; 576) "optname"
            COLON@[576; 577)
            WHITESPACE@[577; 578)
            PATH_TYPE@[578; 585)
              PATH@[578; 585)
                PATH_SEGMENT@[578; 585)
                  COLONCOLON@[578; 580)
                  NAME_REF@[580; 585)
                    IDENT@[580; 585) "c_int"
          COMMA@[585; 586)
          WHITESPACE@[586; 609)
          PARAM@[609; 630)
            BIND_PAT@[609; 615)
              NAME@[609; 615)
                IDENT@[609; 615) "optval"
            COLON@[615; 616)
            WHITESPACE@[616; 617)
            POINTER_TYPE@[617; 630)
              STAR@[617; 618)
              MUT_KW@[618; 621)
              WHITESPACE@[621; 622)
              PATH_TYPE@[622; 630)
                PATH@[622; 630)
                  PATH_SEGMENT@[622; 630)
                    COLONCOLON@[622; 624)
                    NAME_REF@[624; 630)
                      IDENT@[624; 630) "c_void"
          COMMA@[630; 631)
          WHITESPACE@[631; 654)
          PARAM@[654; 678)
            BIND_PAT@[654; 660)
              NAME@[654; 660)
                IDENT@[654; 660) "optlen"
            COLON@[660; 661)
            WHITESPACE@[661; 662)
            POINTER_TYPE@[662; 678)
              STAR@[662; 663)
              MUT_KW@[663; 666)
              WHITESPACE@[666; 667)
              PATH_TYPE@[667; 678)
                PATH@[667; 678)
                  PATH_SEGMENT@[667; 678)
                    COLONCOLON@[667; 669)
                    NAME_REF@[669; 678)
                      IDENT@[669; 678) "socklen_t"
          R_PAREN@[678; 679)
        WHITESPACE@[679; 680)
        RET_TYPE@[680; 690)
          THIN_ARROW@[680; 682)
          WHITESPACE@[682; 683)
          PATH_TYPE@[683; 690)
            PATH@[683; 690)
              PATH_SEGMENT@[683; 690)
                COLONCOLON@[683; 685)
                NAME_REF@[685; 690)
                  IDENT@[685; 690) "c_int"
        SEMI@[690; 691)
      WHITESPACE@[691; 696)
      FN_DEF@[696; 864)
        VISIBILITY@[696; 699)
          PUB_KW@[696; 699)
        WHITESPACE@[699; 700)
        FN_KW@[700; 702)
        WHITESPACE@[702; 703)
        NAME@[703; 713)
          IDENT@[703; 713) "setsockopt"
        PARAM_LIST@[713; 852)
          L_PAREN@[713; 714)
          PARAM@[714; 729)
            BIND_PAT@[714; 720)
              NAME@[714; 720)
                IDENT@[714; 720) "socket"
            COLON@[720; 721)
            WHITESPACE@[721; 722)
            PATH_TYPE@[722; 729)
              PATH@[722; 729)
                PATH_SEGMENT@[722; 729)
                  COLONCOLON@[722; 724)
                  NAME_REF@[724; 729)
                    IDENT@[724; 729) "c_int"
          COMMA@[729; 730)
          WHITESPACE@[730; 731)
          PARAM@[731; 745)
            BIND_PAT@[731; 736)
              NAME@[731; 736)
                IDENT@[731; 736) "level"
            COLON@[736; 737)
            WHITESPACE@[737; 738)
            PATH_TYPE@[738; 745)
              PATH@[738; 745)
                PATH_SEGMENT@[738; 745)
                  COLONCOLON@[738; 740)
                  NAME_REF@[740; 745)
                    IDENT@[740; 745) "c_int"
          COMMA@[745; 746)
          WHITESPACE@[746; 747)
          PARAM@[747; 760)
            BIND_PAT@[747; 751)
              NAME@[747; 751)
                IDENT@[747; 751) "name"
            COLON@[751; 752)
            WHITESPACE@[752; 753)
            PATH_TYPE@[753; 760)
              PATH@[753; 760)
                PATH_SEGMENT@[753; 760)
                  COLONCOLON@[753; 755)
                  NAME_REF@[755; 760)
                    IDENT@[755; 760) "c_int"
          COMMA@[760; 761)
          WHITESPACE@[761; 784)
          PARAM@[784; 806)
            BIND_PAT@[784; 789)
              NAME@[784; 789)
                IDENT@[784; 789) "value"
            COLON@[789; 790)
            WHITESPACE@[790; 791)
            POINTER_TYPE@[791; 806)
              STAR@[791; 792)
              CONST_KW@[792; 797)
              WHITESPACE@[797; 798)
              PATH_TYPE@[798; 806)
                PATH@[798; 806)
                  PATH_SEGMENT@[798; 806)
                    COLONCOLON@[798; 800)
                    NAME_REF@[800; 806)
                      IDENT@[800; 806) "c_void"
          COMMA@[806; 807)
          WHITESPACE@[807; 830)
          PARAM@[830; 851)
            BIND_PAT@[830; 840)
              NAME@[830; 840)
                IDENT@[830; 840) "option_len"
            COLON@[840; 841)
            WHITESPACE@[841; 842)
            PATH_TYPE@[842; 851)
              PATH@[842; 851)
                PATH_SEGMENT@[842; 851)
                  NAME_REF@[842; 851)
                    IDENT@[842; 851) "socklen_t"
          R_PAREN@[851; 852)
        WHITESPACE@[852; 853)
        RET_TYPE@[853; 863)
          THIN_ARROW@[853; 855)
          WHITESPACE@[855; 856)
          PATH_TYPE@[856; 863)
            PATH@[856; 863)
              PATH_SEGMENT@[856; 863)
                COLONCOLON@[856; 858)
                NAME_REF@[858; 863)
                  IDENT@[858; 863) "c_int"
        SEMI@[863; 864)
      WHITESPACE@[864; 869)
      FN_DEF@[869; 992)
        VISIBILITY@[869; 872)
          PUB_KW@[869; 872)
        WHITESPACE@[872; 873)
        FN_KW@[873; 875)
        WHITESPACE@[875; 876)
        NAME@[876; 887)
          IDENT@[876; 887) "getpeername"
        PARAM_LIST@[887; 980)
          L_PAREN@[887; 888)
          PARAM@[888; 903)
            BIND_PAT@[888; 894)
              NAME@[888; 894)
                IDENT@[888; 894) "socket"
            COLON@[894; 895)
            WHITESPACE@[895; 896)
            PATH_TYPE@[896; 903)
              PATH@[896; 903)
                PATH_SEGMENT@[896; 903)
                  COLONCOLON@[896; 898)
                  NAME_REF@[898; 903)
                    IDENT@[898; 903) "c_int"
          COMMA@[903; 904)
          WHITESPACE@[904; 905)
          PARAM@[905; 927)
            BIND_PAT@[905; 912)
              NAME@[905; 912)
                IDENT@[905; 912) "address"
            COLON@[912; 913)
            WHITESPACE@[913; 914)
            POINTER_TYPE@[914; 927)
              STAR@[914; 915)
              MUT_KW@[915; 918)
              WHITESPACE@[918; 919)
              PATH_TYPE@[919; 927)
                PATH@[919; 927)
                  PATH_SEGMENT@[919; 927)
                    NAME_REF@[919; 927)
                      IDENT@[919; 927) "sockaddr"
          COMMA@[927; 928)
          WHITESPACE@[928; 952)
          PARAM@[952; 979)
            BIND_PAT@[952; 963)
              NAME@[952; 963)
                IDENT@[952; 963) "address_len"
            COLON@[963; 964)
            WHITESPACE@[964; 965)
            POINTER_TYPE@[965; 979)
              STAR@[965; 966)
              MUT_KW@[966; 969)
              WHITESPACE@[969; 970)
              PATH_TYPE@[970; 979)
                PATH@[970; 979)
                  PATH_SEGMENT@[970; 979)
                    NAME_REF@[970; 979)
                      IDENT@[970; 979) "socklen_t"
          R_PAREN@[979; 980)
        WHITESPACE@[980; 981)
        RET_TYPE@[981; 991)
          THIN_ARROW@[981; 983)
          WHITESPACE@[983; 984)
          PATH_TYPE@[984; 991)
            PATH@[984; 991)
              PATH_SEGMENT@[984; 991)
                COLONCOLON@[984; 986)
                NAME_REF@[986; 991)
                  IDENT@[986; 991) "c_int"
        SEMI@[991; 992)
      WHITESPACE@[992; 997)
      FN_DEF@[997; 1173)
        VISIBILITY@[997; 1000)
          PUB_KW@[997; 1000)
        WHITESPACE@[1000; 1001)
        FN_KW@[1001; 1003)
        WHITESPACE@[1003; 1004)
        NAME@[1004; 1010)
          IDENT@[1004; 1010) "sendto"
        PARAM_LIST@[1010; 1159)
          L_PAREN@[1010; 1011)
          PARAM@[1011; 1026)
            BIND_PAT@[1011; 1017)
              NAME@[1011; 1017)
                IDENT@[1011; 1017) "socket"
            COLON@[1017; 1018)
            WHITESPACE@[1018; 1019)
            PATH_TYPE@[1019; 1026)
              PATH@[1019; 1026)
                PATH_SEGMENT@[1019; 1026)
                  COLONCOLON@[1019; 1021)
                  NAME_REF@[1021; 1026)
                    IDENT@[1021; 1026) "c_int"
          COMMA@[1026; 1027)
          WHITESPACE@[1027; 1028)
          PARAM@[1028; 1048)
            BIND_PAT@[1028; 1031)
              NAME@[1028; 1031)
                IDENT@[1028; 1031) "buf"
            COLON@[1031; 1032)
            WHITESPACE@[1032; 1033)
            POINTER_TYPE@[1033; 1048)
              STAR@[1033; 1034)
              CONST_KW@[1034; 1039)
              WHITESPACE@[1039; 1040)
              PATH_TYPE@[1040; 1048)
                PATH@[1040; 1048)
                  PATH_SEGMENT@[1040; 1048)
                    COLONCOLON@[1040; 1042)
                    NAME_REF@[1042; 1048)
                      IDENT@[1042; 1048) "c_void"
          COMMA@[1048; 1049)
          WHITESPACE@[1049; 1050)
          PARAM@[1050; 1063)
            BIND_PAT@[1050; 1053)
              NAME@[1050; 1053)
                IDENT@[1050; 1053) "len"
            COLON@[1053; 1054)
            WHITESPACE@[1054; 1055)
            PATH_TYPE@[1055; 1063)
              PATH@[1055; 1063)
                PATH_SEGMENT@[1055; 1063)
                  COLONCOLON@[1055; 1057)
                  NAME_REF@[1057; 1063)
                    IDENT@[1057; 1063) "size_t"
          COMMA@[1063; 1064)
          WHITESPACE@[1064; 1083)
          PARAM@[1083; 1097)
            BIND_PAT@[1083; 1088)
              NAME@[1083; 1088)
                IDENT@[1083; 1088) "flags"
            COLON@[1088; 1089)
            WHITESPACE@[1089; 1090)
            PATH_TYPE@[1090; 1097)
              PATH@[1090; 1097)
                PATH_SEGMENT@[1090; 1097)
                  COLONCOLON@[1090; 1092)
                  NAME_REF@[1092; 1097)
                    IDENT@[1092; 1097) "c_int"
          COMMA@[1097; 1098)
          WHITESPACE@[1098; 1099)
          PARAM@[1099; 1120)
            BIND_PAT@[1099; 1103)
              NAME@[1099; 1103)
                IDENT@[1099; 1103) "addr"
            COLON@[1103; 1104)
            WHITESPACE@[1104; 1105)
            POINTER_TYPE@[1105; 1120)
              STAR@[1105; 1106)
              CONST_KW@[1106; 1111)
              WHITESPACE@[1111; 1112)
              PATH_TYPE@[1112; 1120)
                PATH@[1112; 1120)
                  PATH_SEGMENT@[1112; 1120)
                    NAME_REF@[1112; 1120)
                      IDENT@[1112; 1120) "sockaddr"
          COMMA@[1120; 1121)
          WHITESPACE@[1121; 1140)
          PARAM@[1140; 1158)
            BIND_PAT@[1140; 1147)
              NAME@[1140; 1147)
                IDENT@[1140; 1147) "addrlen"
            COLON@[1147; 1148)
            WHITESPACE@[1148; 1149)
            PATH_TYPE@[1149; 1158)
              PATH@[1149; 1158)
                PATH_SEGMENT@[1149; 1158)
                  NAME_REF@[1149; 1158)
                    IDENT@[1149; 1158) "socklen_t"
          R_PAREN@[1158; 1159)
        WHITESPACE@[1159; 1160)
        RET_TYPE@[1160; 1172)
          THIN_ARROW@[1160; 1162)
          WHITESPACE@[1162; 1163)
          PATH_TYPE@[1163; 1172)
            PATH@[1163; 1172)
              PATH_SEGMENT@[1163; 1172)
                COLONCOLON@[1163; 1165)
                NAME_REF@[1165; 1172)
                  IDENT@[1165; 1172) "ssize_t"
        SEMI@[1172; 1173)
      WHITESPACE@[1173; 1178)
      FN_DEF@[1178; 1289)
        VISIBILITY@[1178; 1181)
          PUB_KW@[1178; 1181)
        WHITESPACE@[1181; 1182)
        FN_KW@[1182; 1184)
        WHITESPACE@[1184; 1185)
        NAME@[1185; 1189)
          IDENT@[1185; 1189) "send"
        PARAM_LIST@[1189; 1275)
          L_PAREN@[1189; 1190)
          PARAM@[1190; 1205)
            BIND_PAT@[1190; 1196)
              NAME@[1190; 1196)
                IDENT@[1190; 1196) "socket"
            COLON@[1196; 1197)
            WHITESPACE@[1197; 1198)
            PATH_TYPE@[1198; 1205)
              PATH@[1198; 1205)
                PATH_SEGMENT@[1198; 1205)
                  COLONCOLON@[1198; 1200)
                  NAME_REF@[1200; 1205)
                    IDENT@[1200; 1205) "c_int"
          COMMA@[1205; 1206)
          WHITESPACE@[1206; 1207)
          PARAM@[1207; 1227)
            BIND_PAT@[1207; 1210)
              NAME@[1207; 1210)
                IDENT@[1207; 1210) "buf"
            COLON@[1210; 1211)
            WHITESPACE@[1211; 1212)
            POINTER_TYPE@[1212; 1227)
              STAR@[1212; 1213)
              CONST_KW@[1213; 1218)
              WHITESPACE@[1218; 1219)
              PATH_TYPE@[1219; 1227)
                PATH@[1219; 1227)
                  PATH_SEGMENT@[1219; 1227)
                    COLONCOLON@[1219; 1221)
                    NAME_REF@[1221; 1227)
                      IDENT@[1221; 1227) "c_void"
          COMMA@[1227; 1228)
          WHITESPACE@[1228; 1229)
          PARAM@[1229; 1242)
            BIND_PAT@[1229; 1232)
              NAME@[1229; 1232)
                IDENT@[1229; 1232) "len"
            COLON@[1232; 1233)
            WHITESPACE@[1233; 1234)
            PATH_TYPE@[1234; 1242)
              PATH@[1234; 1242)
                PATH_SEGMENT@[1234; 1242)
                  COLONCOLON@[1234; 1236)
                  NAME_REF@[1236; 1242)
                    IDENT@[1236; 1242) "size_t"
          COMMA@[1242; 1243)
          WHITESPACE@[1243; 1260)
          PARAM@[1260; 1274)
            BIND_PAT@[1260; 1265)
              NAME@[1260; 1265)
                IDENT@[1260; 1265) "flags"
            COLON@[1265; 1266)
            WHITESPACE@[1266; 1267)
            PATH_TYPE@[1267; 1274)
              PATH@[1267; 1274)
                PATH_SEGMENT@[1267; 1274)
                  COLONCOLON@[1267; 1269)
                  NAME_REF@[1269; 1274)
                    IDENT@[1269; 1274) "c_int"
          R_PAREN@[1274; 1275)
        WHITESPACE@[1275; 1276)
        RET_TYPE@[1276; 1288)
          THIN_ARROW@[1276; 1278)
          WHITESPACE@[1278; 1279)
          PATH_TYPE@[1279; 1288)
            PATH@[1279; 1288)
              PATH_SEGMENT@[1279; 1288)
                COLONCOLON@[1279; 1281)
                NAME_REF@[1281; 1288)
                  IDENT@[1281; 1288) "ssize_t"
        SEMI@[1288; 1289)
      WHITESPACE@[1289; 1294)
      FN_DEF@[1294; 1481)
        VISIBILITY@[1294; 1297)
          PUB_KW@[1294; 1297)
        WHITESPACE@[1297; 1298)
        FN_KW@[1298; 1300)
        WHITESPACE@[1300; 1301)
        NAME@[1301; 1309)
          IDENT@[1301; 1309) "recvfrom"
        PARAM_LIST@[1309; 1467)
          L_PAREN@[1309; 1310)
          PARAM@[1310; 1325)
            BIND_PAT@[1310; 1316)
              NAME@[1310; 1316)
                IDENT@[1310; 1316) "socket"
            COLON@[1316; 1317)
            WHITESPACE@[1317; 1318)
            PATH_TYPE@[1318; 1325)
              PATH@[1318; 1325)
                PATH_SEGMENT@[1318; 1325)
                  COLONCOLON@[1318; 1320)
                  NAME_REF@[1320; 1325)
                    IDENT@[1320; 1325) "c_int"
          COMMA@[1325; 1326)
          WHITESPACE@[1326; 1327)
          PARAM@[1327; 1345)
            BIND_PAT@[1327; 1330)
              NAME@[1327; 1330)
                IDENT@[1327; 1330) "buf"
            COLON@[1330; 1331)
            WHITESPACE@[1331; 1332)
            POINTER_TYPE@[1332; 1345)
              STAR@[1332; 1333)
              MUT_KW@[1333; 1336)
              WHITESPACE@[1336; 1337)
              PATH_TYPE@[1337; 1345)
                PATH@[1337; 1345)
                  PATH_SEGMENT@[1337; 1345)
                    COLONCOLON@[1337; 1339)
                    NAME_REF@[1339; 1345)
                      IDENT@[1339; 1345) "c_void"
          COMMA@[1345; 1346)
          WHITESPACE@[1346; 1347)
          PARAM@[1347; 1360)
            BIND_PAT@[1347; 1350)
              NAME@[1347; 1350)
                IDENT@[1347; 1350) "len"
            COLON@[1350; 1351)
            WHITESPACE@[1351; 1352)
            PATH_TYPE@[1352; 1360)
              PATH@[1352; 1360)
                PATH_SEGMENT@[1352; 1360)
                  COLONCOLON@[1352; 1354)
                  NAME_REF@[1354; 1360)
                    IDENT@[1354; 1360) "size_t"
          COMMA@[1360; 1361)
          WHITESPACE@[1361; 1382)
          PARAM@[1382; 1396)
            BIND_PAT@[1382; 1387)
              NAME@[1382; 1387)
                IDENT@[1382; 1387) "flags"
            COLON@[1387; 1388)
            WHITESPACE@[1388; 1389)
            PATH_TYPE@[1389; 1396)
              PATH@[1389; 1396)
                PATH_SEGMENT@[1389; 1396)
                  COLONCOLON@[1389; 1391)
                  NAME_REF@[1391; 1396)
                    IDENT@[1391; 1396) "c_int"
          COMMA@[1396; 1397)
          WHITESPACE@[1397; 1398)
          PARAM@[1398; 1419)
            BIND_PAT@[1398; 1402)
              NAME@[1398; 1402)
                IDENT@[1398; 1402) "addr"
            COLON@[1402; 1403)
            WHITESPACE@[1403; 1404)
            POINTER_TYPE@[1404; 1419)
              STAR@[1404; 1405)
              MUT_KW@[1405; 1408)
              WHITESPACE@[1408; 1409)
              PATH_TYPE@[1409; 1419)
                PATH@[1409; 1419)
                  PATH_SEGMENT@[1409; 1419)
                    COLONCOLON@[1409; 1411)
                    NAME_REF@[1411; 1419)
                      IDENT@[1411; 1419) "sockaddr"
          COMMA@[1419; 1420)
          WHITESPACE@[1420; 1441)
          PARAM@[1441; 1466)
            BIND_PAT@[1441; 1448)
              NAME@[1441; 1448)
                IDENT@[1441; 1448) "addrlen"
            COLON@[1448; 1449)
            WHITESPACE@[1449; 1450)
            POINTER_TYPE@[1450; 1466)
              STAR@[1450; 1451)
              MUT_KW@[1451; 1454)
              WHITESPACE@[1454; 1455)
              PATH_TYPE@[1455; 1466)
                PATH@[1455; 1466)
                  PATH_SEGMENT@[1455; 1466)
                    COLONCOLON@[1455; 1457)
                    NAME_REF@[1457; 1466)
                      IDENT@[1457; 1466) "socklen_t"
          R_PAREN@[1466; 1467)
        WHITESPACE@[1467; 1468)
        RET_TYPE@[1468; 1480)
          THIN_ARROW@[1468; 1470)
          WHITESPACE@[1470; 1471)
          PATH_TYPE@[1471; 1480)
            PATH@[1471; 1480)
              PATH_SEGMENT@[1471; 1480)
                COLONCOLON@[1471; 1473)
                NAME_REF@[1473; 1480)
                  IDENT@[1473; 1480) "ssize_t"
        SEMI@[1480; 1481)
      WHITESPACE@[1481; 1486)
      FN_DEF@[1486; 1595)
        VISIBILITY@[1486; 1489)
          PUB_KW@[1486; 1489)
        WHITESPACE@[1489; 1490)
        FN_KW@[1490; 1492)
        WHITESPACE@[1492; 1493)
        NAME@[1493; 1497)
          IDENT@[1493; 1497) "recv"
        PARAM_LIST@[1497; 1581)
          L_PAREN@[1497; 1498)
          PARAM@[1498; 1513)
            BIND_PAT@[1498; 1504)
              NAME@[1498; 1504)
                IDENT@[1498; 1504) "socket"
            COLON@[1504; 1505)
            WHITESPACE@[1505; 1506)
            PATH_TYPE@[1506; 1513)
              PATH@[1506; 1513)
                PATH_SEGMENT@[1506; 1513)
                  COLONCOLON@[1506; 1508)
                  NAME_REF@[1508; 1513)
                    IDENT@[1508; 1513) "c_int"
          COMMA@[1513; 1514)
          WHITESPACE@[1514; 1515)
          PARAM@[1515; 1533)
            BIND_PAT@[1515; 1518)
              NAME@[1515; 1518)
                IDENT@[1515; 1518) "buf"
            COLON@[1518; 1519)
            WHITESPACE@[1519; 1520)
            POINTER_TYPE@[1520; 1533)
              STAR@[1520; 1521)
              MUT_KW@[1521; 1524)
              WHITESPACE@[1524; 1525)
              PATH_TYPE@[1525; 1533)
                PATH@[1525; 1533)
                  PATH_SEGMENT@[1525; 1533)
                    COLONCOLON@[1525; 1527)
                    NAME_REF@[1527; 1533)
                      IDENT@[1527; 1533) "c_void"
          COMMA@[1533; 1534)
          WHITESPACE@[1534; 1535)
          PARAM@[1535; 1548)
            BIND_PAT@[1535; 1538)
              NAME@[1535; 1538)
                IDENT@[1535; 1538) "len"
            COLON@[1538; 1539)
            WHITESPACE@[1539; 1540)
            PATH_TYPE@[1540; 1548)
              PATH@[1540; 1548)
                PATH_SEGMENT@[1540; 1548)
                  COLONCOLON@[1540; 1542)
                  NAME_REF@[1542; 1548)
                    IDENT@[1542; 1548) "size_t"
          COMMA@[1548; 1549)
          WHITESPACE@[1549; 1566)
          PARAM@[1566; 1580)
            BIND_PAT@[1566; 1571)
              NAME@[1566; 1571)
                IDENT@[1566; 1571) "flags"
            COLON@[1571; 1572)
            WHITESPACE@[1572; 1573)
            PATH_TYPE@[1573; 1580)
              PATH@[1573; 1580)
                PATH_SEGMENT@[1573; 1580)
                  COLONCOLON@[1573; 1575)
                  NAME_REF@[1575; 1580)
                    IDENT@[1575; 1580) "c_int"
          R_PAREN@[1580; 1581)
        WHITESPACE@[1581; 1582)
        RET_TYPE@[1582; 1594)
          THIN_ARROW@[1582; 1584)
          WHITESPACE@[1584; 1585)
          PATH_TYPE@[1585; 1594)
            PATH@[1585; 1594)
              PATH_SEGMENT@[1585; 1594)
                COLONCOLON@[1585; 1587)
                NAME_REF@[1587; 1594)
                  IDENT@[1587; 1594) "ssize_t"
        SEMI@[1594; 1595)
      WHITESPACE@[1595; 1596)
      R_CURLY@[1596; 1597)
  WHITESPACE@[1597; 1598)