Skip to content

Commit b5438c4

Browse files
authored
Merge pull request #4240 from masatake/sql--language-internal
SQL: make foreign tags for 'interenal' functions
2 parents a55b4ce + 94a2a2a commit b5438c4

File tree

17 files changed

+108
-26
lines changed

17 files changed

+108
-26
lines changed

Tmain/extras-field-for-pseudo-tags.d/stdout-expected.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //
2424
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
2525
!_TAG_PROGRAM_URL https://ctags.io/ /official site/
26+
!_TAG_ROLE_DESCRIPTION!C!function foreigncall /called in foreign languages/
2627
!_TAG_ROLE_DESCRIPTION!C!function foreigndecl /declared in foreign languages/
2728
!_TAG_ROLE_DESCRIPTION!C!header local /local header/
2829
!_TAG_ROLE_DESCRIPTION!C!header system /system header/
@@ -54,6 +55,7 @@ main input.c /^int main (void) { return 0; }$/
5455
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //;" extras:pseudo
5556
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/;" extras:pseudo
5657
!_TAG_PROGRAM_URL https://ctags.io/ /official site/;" extras:pseudo
58+
!_TAG_ROLE_DESCRIPTION!C!function foreigncall /called in foreign languages/;" extras:pseudo
5759
!_TAG_ROLE_DESCRIPTION!C!function foreigndecl /declared in foreign languages/;" extras:pseudo
5860
!_TAG_ROLE_DESCRIPTION!C!header local /local header/;" extras:pseudo
5961
!_TAG_ROLE_DESCRIPTION!C!header system /system header/;" extras:pseudo

Tmain/json-output-format.d/stdout-expected.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,15 @@
8383
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Python", "path": "m,member", "pattern": "class members"}
8484
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Python", "path": "v,variable", "pattern": "variables"}
8585
{"_type": "ptag", "name": "TAG_OUTPUT_EXCMD", "path": "mixed", "pattern": "number, pattern, mixed, or combineV2"}
86-
{"_type": "ptag", "name": "TAG_PARSER_VERSION", "parserName": "C", "path": "1.1", "pattern": "current.age"}
86+
{"_type": "ptag", "name": "TAG_PARSER_VERSION", "parserName": "C", "path": "2.2", "pattern": "current.age"}
8787
{"_type": "ptag", "name": "TAG_PARSER_VERSION", "parserName": "Go", "path": "0.0", "pattern": "current.age"}
8888
{"_type": "ptag", "name": "TAG_PARSER_VERSION", "parserName": "Man", "path": "0.0", "pattern": "current.age"}
8989
{"_type": "ptag", "name": "TAG_PARSER_VERSION", "parserName": "Python", "path": "1.1", "pattern": "current.age"}
9090
{"_type": "ptag", "name": "TAG_PATTERN_LENGTH_LIMIT", "path": "96", "pattern": "0 for no limit"}
9191
{"_type": "ptag", "name": "TAG_PROGRAM_AUTHOR", "path": "Universal Ctags Team", "pattern": ""}
9292
{"_type": "ptag", "name": "TAG_PROGRAM_NAME", "path": "Universal Ctags", "pattern": "Derived from Exuberant Ctags"}
9393
{"_type": "ptag", "name": "TAG_PROGRAM_URL", "path": "https://ctags.io/", "pattern": "official site"}
94+
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C", "kindName": "function", "path": "foreigncall", "pattern": "called in foreign languages"}
9495
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C", "kindName": "function", "path": "foreigndecl", "pattern": "declared in foreign languages"}
9596
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C", "kindName": "header", "path": "local", "pattern": "local header"}
9697
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C", "kindName": "header", "path": "system", "pattern": "system header"}

Tmain/list-kinds-full.d/stdout-expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ D macroparam no no 0 C 0 parameters inside macro definitions
33
L label no no 0 C 0 goto labels
44
d macro yes no 2 C 0 macro definitions
55
e enumerator yes no 0 C 0 enumerators (values inside an enumeration)
6-
f function yes no 1 C 0 function definitions
6+
f function yes no 2 C 0 function definitions
77
g enum yes no 0 C 0 enumeration names
88
h header yes yes 2 C 0 included header files
99
l local no no 0 C 0 local variables

Tmain/list-roles.d/stdout-expected.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Basic f/function decl on 0 declare
2525
Bats S/script loaded on 0 script loaed with "load" command
2626
C d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
2727
C d/macro undef on 0 undefined
28+
C f/function foreigncall on 2 called in foreign languages
2829
C f/function foreigndecl on 1 declared in foreign languages
2930
C h/header local on 0 local header
3031
C h/header system on 0 system header
@@ -176,6 +177,7 @@ Basic f/function decl on 0 declare
176177
Bats S/script loaded on 0 script loaed with "load" command
177178
C d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
178179
C d/macro undef on 0 undefined
180+
C f/function foreigncall on 2 called in foreign languages
179181
C f/function foreigndecl on 1 declared in foreign languages
180182
C h/header local on 0 local header
181183
C h/header system on 0 system header
@@ -307,6 +309,7 @@ Zsh s/script loaded on 0 loaded
307309
#KIND(L/N) NAME ENABLED VER DESCRIPTION
308310
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
309311
d/macro undef on 0 undefined
312+
f/function foreigncall on 2 called in foreign languages
310313
f/function foreigndecl on 1 declared in foreign languages
311314
h/header local on 0 local header
312315
h/header system on 0 system header
@@ -346,6 +349,7 @@ s/script loaded on 0 loaded
346349
#KIND(L/N) NAME ENABLED VER DESCRIPTION
347350
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
348351
d/macro undef off 0 undefined
352+
f/function foreigncall off 2 called in foreign languages
349353
f/function foreigndecl off 1 declared in foreign languages
350354
h/header local off 0 local header
351355
h/header system off 0 system header
@@ -357,6 +361,7 @@ s/struct foreigndecl off 1 declared in foreign languages
357361
#KIND(L/N) NAME ENABLED VER DESCRIPTION
358362
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
359363
d/macro undef off 0 undefined
364+
f/function foreigncall off 2 called in foreign languages
360365
f/function foreigndecl off 1 declared in foreign languages
361366
h/header local off 0 local header
362367
h/header system off 0 system header
@@ -369,6 +374,7 @@ s/struct foreigndecl off 1 declared in foreign languages
369374
#KIND(L/N) NAME ENABLED VER DESCRIPTION
370375
d/macro condition on 0 used in part of #if/#ifdef/#elif conditions
371376
d/macro undef on 0 undefined
377+
f/function foreigncall on 2 called in foreign languages
372378
f/function foreigndecl on 1 declared in foreign languages
373379
h/header local on 0 local header
374380
h/header system on 0 system header
@@ -381,6 +387,7 @@ s/struct foreigndecl on 1 declared in foreign languages
381387
#KIND(L/N) NAME ENABLED VER DESCRIPTION
382388
d/macro condition on 0 used in part of #if/#ifdef/#elif conditions
383389
d/macro undef on 0 undefined
390+
f/function foreigncall on 2 called in foreign languages
384391
f/function foreigndecl on 1 declared in foreign languages
385392
h/header local on 0 local header
386393
h/header system on 0 system header
@@ -392,6 +399,7 @@ s/struct foreigndecl on 1 declared in foreign languages
392399
#KIND(L/N) NAME ENABLED VER DESCRIPTION
393400
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
394401
d/macro undef off 0 undefined
402+
f/function foreigncall off 2 called in foreign languages
395403
f/function foreigndecl off 1 declared in foreign languages
396404
h/header local off 0 local header
397405
h/header system off 0 system header
@@ -410,6 +418,7 @@ s/script loaded on 0 loaded
410418
#KIND(L/N) NAME ENABLED VER DESCRIPTION
411419
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
412420
d/macro undef off 0 undefined
421+
f/function foreigncall off 2 called in foreign languages
413422
f/function foreigndecl off 1 declared in foreign languages
414423
h/header local off 0 local header
415424
h/header system off 0 system header
@@ -429,6 +438,7 @@ s/script loaded on 0 loaded
429438
#KIND(L/N) NAME ENABLED VER DESCRIPTION
430439
d/macro condition on 0 used in part of #if/#ifdef/#elif conditions
431440
d/macro undef on 0 undefined
441+
f/function foreigncall on 2 called in foreign languages
432442
f/function foreigndecl on 1 declared in foreign languages
433443
h/header local on 0 local header
434444
h/header system on 0 system header
@@ -449,6 +459,7 @@ s/script loaded off 0 loaded
449459
#KIND(L/N) NAME ENABLED VER DESCRIPTION
450460
d/macro condition on 0 used in part of #if/#ifdef/#elif conditions
451461
d/macro undef on 0 undefined
462+
f/function foreigncall on 2 called in foreign languages
452463
f/function foreigndecl on 1 declared in foreign languages
453464
h/header local on 0 local header
454465
h/header system on 0 system header
@@ -468,6 +479,7 @@ s/script loaded off 0 loaded
468479
#KIND(L/N) NAME ENABLED VER DESCRIPTION
469480
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
470481
d/macro undef on 0 undefined
482+
f/function foreigncall on 2 called in foreign languages
471483
f/function foreigndecl on 1 declared in foreign languages
472484
h/header local off 0 local header
473485
h/header system off 0 system header
@@ -486,6 +498,7 @@ s/script loaded on 0 loaded
486498
#KIND(L/N) NAME ENABLED VER DESCRIPTION
487499
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
488500
d/macro undef on 0 undefined
501+
f/function foreigncall on 2 called in foreign languages
489502
f/function foreigndecl on 1 declared in foreign languages
490503
h/header local off 0 local header
491504
h/header system off 0 system header
@@ -505,6 +518,7 @@ s/script loaded on 0 loaded
505518
#KIND(L/N) NAME ENABLED VER DESCRIPTION
506519
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
507520
d/macro undef off 0 undefined
521+
f/function foreigncall off 2 called in foreign languages
508522
f/function foreigndecl off 1 declared in foreign languages
509523
h/header local on 0 local header
510524
h/header system on 0 system header
@@ -525,6 +539,7 @@ s/script loaded off 0 loaded
525539
#KIND(L/N) NAME ENABLED VER DESCRIPTION
526540
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
527541
d/macro undef off 0 undefined
542+
f/function foreigncall off 2 called in foreign languages
528543
f/function foreigndecl off 1 declared in foreign languages
529544
h/header local on 0 local header
530545
h/header system on 0 system header
@@ -544,6 +559,7 @@ s/script loaded off 0 loaded
544559
#KIND(L/N) NAME ENABLED VER DESCRIPTION
545560
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
546561
d/macro undef on 0 undefined
562+
f/function foreigncall on 2 called in foreign languages
547563
f/function foreigndecl on 1 declared in foreign languages
548564
h/header local on 0 local header
549565
h/header system off 0 system header
@@ -555,6 +571,7 @@ s/struct foreigndecl on 1 declared in foreign languages
555571
#KIND(L/N) NAME ENABLED VER DESCRIPTION
556572
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
557573
d/macro undef on 0 undefined
574+
f/function foreigncall on 2 called in foreign languages
558575
f/function foreigndecl on 1 declared in foreign languages
559576
h/header local on 0 local header
560577
h/header system off 0 system header
@@ -566,6 +583,7 @@ s/struct foreigndecl on 1 declared in foreign languages
566583
#KIND(L/N) NAME ENABLED VER DESCRIPTION
567584
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
568585
d/macro undef on 0 undefined
586+
f/function foreigncall on 2 called in foreign languages
569587
f/function foreigndecl on 1 declared in foreign languages
570588
h/header local on 0 local header
571589
h/header system on 0 system header
@@ -577,6 +595,7 @@ s/struct foreigndecl on 1 declared in foreign languages
577595
#KIND(L/N) NAME ENABLED VER DESCRIPTION
578596
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
579597
d/macro undef on 0 undefined
598+
f/function foreigncall on 2 called in foreign languages
580599
f/function foreigndecl on 1 declared in foreign languages
581600
h/header local on 0 local header
582601
h/header system on 0 system header
@@ -588,6 +607,7 @@ s/struct foreigndecl on 1 declared in foreign languages
588607
#KIND(L/N) NAME ENABLED VER DESCRIPTION
589608
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
590609
d/macro undef on 0 undefined
610+
f/function foreigncall on 2 called in foreign languages
591611
f/function foreigndecl on 1 declared in foreign languages
592612
h/header local off 0 local header
593613
h/header system off 0 system header
@@ -599,6 +619,7 @@ s/struct foreigndecl on 1 declared in foreign languages
599619
#KIND(L/N) NAME ENABLED VER DESCRIPTION
600620
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
601621
d/macro undef on 0 undefined
622+
f/function foreigncall on 2 called in foreign languages
602623
f/function foreigndecl on 1 declared in foreign languages
603624
h/header local off 0 local header
604625
h/header system off 0 system header
@@ -611,6 +632,7 @@ s/struct foreigndecl on 1 declared in foreign languages
611632
#KIND(L/N) NAME ENABLED VER DESCRIPTION
612633
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
613634
d/macro undef off 0 undefined
635+
f/function foreigncall off 2 called in foreign languages
614636
f/function foreigndecl off 1 declared in foreign languages
615637
h/header local on 0 local header
616638
h/header system on 0 system header
@@ -623,6 +645,7 @@ s/struct foreigndecl off 1 declared in foreign languages
623645
#KIND(L/N) NAME ENABLED VER DESCRIPTION
624646
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
625647
d/macro undef off 0 undefined
648+
f/function foreigncall off 2 called in foreign languages
626649
f/function foreigndecl off 1 declared in foreign languages
627650
h/header local on 0 local header
628651
h/header system on 0 system header
@@ -634,6 +657,7 @@ s/struct foreigndecl off 1 declared in foreign languages
634657
#KIND(L/N) NAME ENABLED VER DESCRIPTION
635658
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
636659
d/macro undef off 0 undefined
660+
f/function foreigncall on 2 called in foreign languages
637661
f/function foreigndecl on 1 declared in foreign languages
638662
h/header local off 0 local header
639663
h/header system on 0 system header
@@ -645,6 +669,7 @@ s/struct foreigndecl on 1 declared in foreign languages
645669
#KIND(L/N) NAME ENABLED VER DESCRIPTION
646670
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
647671
d/macro undef on 0 undefined
672+
f/function foreigncall on 2 called in foreign languages
648673
f/function foreigndecl on 1 declared in foreign languages
649674
h/header local on 0 local header
650675
h/header system on 0 system header
@@ -656,6 +681,7 @@ s/struct foreigndecl on 1 declared in foreign languages
656681
#KIND(L/N) NAME ENABLED VER DESCRIPTION
657682
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
658683
d/macro undef off 0 undefined
684+
f/function foreigncall off 2 called in foreign languages
659685
f/function foreigndecl off 1 declared in foreign languages
660686
h/header local on 0 local header
661687
h/header system on 0 system header
@@ -667,6 +693,7 @@ s/struct foreigndecl off 1 declared in foreign languages
667693
#KIND(L/N) NAME ENABLED VER DESCRIPTION
668694
d/macro condition off 0 used in part of #if/#ifdef/#elif conditions
669695
d/macro undef off 0 undefined
696+
f/function foreigncall off 2 called in foreign languages
670697
f/function foreigndecl off 1 declared in foreign languages
671698
h/header local on 0 local header
672699
h/header system on 0 system header

Tmain/nested-subparsers.d/stdout-expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ D macroparam no no 0 C 0 parameters inside macro def
3838
L label no no 0 C 0 goto labels
3939
d macro yes no 2 C 0 macro definitions
4040
e enumerator yes no 0 C 0 enumerators (values inside an enumeration)
41-
f function yes no 1 C 0 function definitions
41+
f function yes no 2 C 0 function definitions
4242
g enum yes no 0 C 0 enumeration names
4343
h header yes yes 2 C 0 included header files
4444
l local no no 0 C 0 local variables
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
parser/C: 1.1
1+
parser/C: 2.2
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
--sort=no
22
--fields=+S
3+
--extras=+g

Units/parser-sql.r/funcions.d/expected.tags

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ isalpha input.sql /^create or replace FUNCTION isalpha(ch CHAR)$/;" f typeref:ty
44
isalphanum input.sql /^create or replace FUNCTION isalphanum(ch CHAR)$/;" f typeref:typename:BOOLEAN signature:(ch CHAR)
55
isdigit input.sql /^create or replace function isdigit(ch CHAR)$/;" f typeref:typename:BOOLEAN signature:(ch CHAR)
66
rpmver_array input.sql /^create or replace FUNCTION rpmver_array (string1 IN VARCHAR)$/;" f typeref:typename:evr_array_item[] signature:(string1 IN VARCHAR)
7+
str1 input.sql /^ str1 VARCHAR := string1;$/;" v
8+
digits input.sql /^ digits VARCHAR(10) := '0123456789';$/;" v
9+
lc_alpha input.sql /^ lc_alpha VARCHAR(27) := 'abcdefghijklmnopqrstuvwxyz';$/;" v
10+
uc_alpha input.sql /^ uc_alpha VARCHAR(27) := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';$/;" v
11+
alpha input.sql /^ alpha VARCHAR(54) := lc_alpha || uc_alpha;$/;" v
12+
one input.sql /^ one VARCHAR;$/;" v
13+
isnum input.sql /^ isnum BOOLEAN;$/;" v
14+
ver_array input.sql /^ ver_array evr_array_item[] := ARRAY[]::evr_array_item[];$/;" v
15+
segment_loop input.sql /^ <<segment_loop>>$/;" L
716
dfunc0 input-0.sql /^create function dfunc0(a text DEFAULT '->''Hello', b text DEFAULT 'World''') returns text as $\$$/;" f typeref:typename:text signature:(a text DEFAULT '->''Hello', b text DEFAULT 'World''')
817
dfunc1 input-0.sql /^create function dfunc1(r numeric = 20.39, p numeric DEFAULT 99.88) returns numeric as $\$$/;" f typeref:typename:numeric signature:(r numeric = 20.39, p numeric DEFAULT 99.88)
918
dfunc2 input-0.sql /^create function dfunc2(anyelement = 'World'::text) returns text as $\$$/;" f typeref:typename:text signature:(anyelement = 'World'::text)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
--sort=no
2+
--fields=+lSr
3+
--extras=+r
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
isnlt input.sql /^CREATE FUNCTION isnlt(ean13, ean13)$/;" f language:SQL typeref:typename:boolean signature:(ean13, ean13) roles:def
2+
int8lt input.sql /^ AS 'int8lt'$/;" f language:C roles:foreigncall
3+
isnle input.sql /^CREATE FUNCTION isnle(ean13, ean13)$/;" f language:SQL typeref:typename:boolean signature:(ean13, ean13) roles:def
4+
int8le input.sql /^ AS 'int8le'$/;" f language:C roles:foreigncall

0 commit comments

Comments
 (0)