aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHelmut Eller2016-12-01 18:58:08 +0200
committerEli Zaretskii2016-12-01 18:58:08 +0200
commitbb8e38273e701ad5c65e747e8eda3bd8f3aa4adb (patch)
tree65d93db7be87b84dfe713f2af3b4fa25fb6ad380
parent2f68cb3e0502a9dc69613e97a5a5079ebf9249fb (diff)
downloademacs-bb8e38273e701ad5c65e747e8eda3bd8f3aa4adb.tar.gz
emacs-bb8e38273e701ad5c65e747e8eda3bd8f3aa4adb.zip
Forth related improvements for etags
Generate correct tags names for things like "(foo)". Previously "(foo" created. Fix a bug where a tag for "-bar" was created when encountering things like "create-bar". Recognize more words from the Forth-2012 Standard. * lib-src/etags.c (Forth_words): Check for whitespace after defining words. Create tag with make_tag instead of get_tag to avoid notiname which isn't appropriate for Forth. * test/manual/etags/forth-src/test-forth.fth: Add some test cases. * test/manual/etags/ETAGS.good_1: * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: * test/manual/etags/CTAGS.good: Adapt to the changes in etags.c and new test cases.
-rw-r--r--lib-src/etags.c41
-rw-r--r--test/manual/etags/CTAGS.good15
-rw-r--r--test/manual/etags/ETAGS.good_123
-rw-r--r--test/manual/etags/ETAGS.good_223
-rw-r--r--test/manual/etags/ETAGS.good_323
-rw-r--r--test/manual/etags/ETAGS.good_423
-rw-r--r--test/manual/etags/ETAGS.good_523
-rw-r--r--test/manual/etags/ETAGS.good_623
-rw-r--r--test/manual/etags/forth-src/test-forth.fth21
9 files changed, 174 insertions, 41 deletions
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 6a722e0641c..7baa2a3e39f 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -5469,16 +5469,37 @@ Forth_words (FILE *inf)
5469 do /* skip to ) or eol */ 5469 do /* skip to ) or eol */
5470 bp++; 5470 bp++;
5471 while (*bp != ')' && *bp != '\0'); 5471 while (*bp != ')' && *bp != '\0');
5472 else if ((bp[0] == ':' && c_isspace (bp[1]) && bp++) 5472 else if (((bp[0] == ':' && c_isspace (bp[1]) && bp++)
5473 || LOOKING_AT_NOCASE (bp, "constant") 5473 || LOOKING_AT_NOCASE (bp, "constant")
5474 || LOOKING_AT_NOCASE (bp, "code") 5474 || LOOKING_AT_NOCASE (bp, "2constant")
5475 || LOOKING_AT_NOCASE (bp, "create") 5475 || LOOKING_AT_NOCASE (bp, "fconstant")
5476 || LOOKING_AT_NOCASE (bp, "defer") 5476 || LOOKING_AT_NOCASE (bp, "code")
5477 || LOOKING_AT_NOCASE (bp, "value") 5477 || LOOKING_AT_NOCASE (bp, "create")
5478 || LOOKING_AT_NOCASE (bp, "variable") 5478 || LOOKING_AT_NOCASE (bp, "defer")
5479 || LOOKING_AT_NOCASE (bp, "buffer:") 5479 || LOOKING_AT_NOCASE (bp, "value")
5480 || LOOKING_AT_NOCASE (bp, "field")) 5480 || LOOKING_AT_NOCASE (bp, "2value")
5481 get_tag (skip_spaces (bp), NULL); /* Yay! A definition! */ 5481 || LOOKING_AT_NOCASE (bp, "fvalue")
5482 || LOOKING_AT_NOCASE (bp, "variable")
5483 || LOOKING_AT_NOCASE (bp, "2variable")
5484 || LOOKING_AT_NOCASE (bp, "fvariable")
5485 || LOOKING_AT_NOCASE (bp, "buffer:")
5486 || LOOKING_AT_NOCASE (bp, "field:")
5487 || LOOKING_AT_NOCASE (bp, "+field")
5488 || LOOKING_AT_NOCASE (bp, "field") /* not standard? */
5489 || LOOKING_AT_NOCASE (bp, "begin-structure")
5490 || LOOKING_AT_NOCASE (bp, "synonym")
5491 )
5492 && c_isspace (bp[0]))
5493 {
5494 /* Yay! A definition! */
5495 char* name_start = skip_spaces (bp);
5496 char* name_end = skip_non_spaces (name_start);
5497 if (name_start < name_end)
5498 make_tag (name_start, name_end - name_start,
5499 true, lb.buffer, name_end - lb.buffer,
5500 lineno, linecharno);
5501 bp = name_end;
5502 }
5482 else 5503 else
5483 bp = skip_non_spaces (bp); 5504 bp = skip_non_spaces (bp);
5484} 5505}
diff --git a/test/manual/etags/CTAGS.good b/test/manual/etags/CTAGS.good
index e6529890b8d..6f9df192c43 100644
--- a/test/manual/etags/CTAGS.good
+++ b/test/manual/etags/CTAGS.good
@@ -36,7 +36,8 @@ ${CHECKOBJS} make-src/Makefile /^${CHECKOBJS}: CFLAGS=-g3 -DNULLFREECHECK=0$/
36($prog,$_,@list perl-src/yagrip.pl 39 36($prog,$_,@list perl-src/yagrip.pl 39
37($string,$flag,@string,@temp,@last perl-src/yagrip.pl 40 37($string,$flag,@string,@temp,@last perl-src/yagrip.pl 40
38(a-forth-constant forth-src/test-forth.fth /^constant (a-forth-constant$/ 38(a-forth-constant forth-src/test-forth.fth /^constant (a-forth-constant$/
39(another-forth-word forth-src/test-forth.fth /^: (another-forth-word) ( -- )$/ 39(another-forth-word) forth-src/test-forth.fth /^: (another-forth-word) ( -- )$/
40(foo) forth-src/test-forth.fth /^: (foo) 1 ;$/
40+ ruby-src/test.rb /^ def +(y)$/ 41+ ruby-src/test.rb /^ def +(y)$/
41+ tex-src/texinfo.tex /^\\def+{{\\tt \\char 43}}$/ 42+ tex-src/texinfo.tex /^\\def+{{\\tt \\char 43}}$/
42.PRECIOUS make-src/Makefile /^.PRECIOUS: ETAGS CTAGS ETAGS16 CTAGS16 ETAGS17 CTA/ 43.PRECIOUS make-src/Makefile /^.PRECIOUS: ETAGS CTAGS ETAGS16 CTAGS16 ETAGS17 CTA/
@@ -170,6 +171,9 @@ ${CHECKOBJS} make-src/Makefile /^${CHECKOBJS}: CFLAGS=-g3 -DNULLFREECHECK=0$/
170/wbytes ps-src/rfc1245.ps /^\/wbytes { $/ 171/wbytes ps-src/rfc1245.ps /^\/wbytes { $/
171/wh ps-src/rfc1245.ps /^\/wh { $/ 172/wh ps-src/rfc1245.ps /^\/wh { $/
172/yen ps-src/rfc1245.ps /^\/yen \/.notdef \/.notdef \/.notdef \/.notdef \/.notdef / 173/yen ps-src/rfc1245.ps /^\/yen \/.notdef \/.notdef \/.notdef \/.notdef \/.notdef /
1742const forth-src/test-forth.fth /^3 4 2constant 2const$/
1752val forth-src/test-forth.fth /^2const 2value 2val$/
1762var forth-src/test-forth.fth /^2variable 2var$/
173:a-forth-dictionary-entry forth-src/test-forth.fth /^create :a-forth-dictionary-entry$/ 177:a-forth-dictionary-entry forth-src/test-forth.fth /^create :a-forth-dictionary-entry$/
174< tex-src/texinfo.tex /^\\def<{{\\tt \\less}}$/ 178< tex-src/texinfo.tex /^\\def<{{\\tt \\less}}$/
175<< ruby-src/test.rb /^ def <<(y)$/ 179<< ruby-src/test.rb /^ def <<(y)$/
@@ -2725,6 +2729,7 @@ counter cp-src/c.C 36
2725cow cp-src/c.C 127 2729cow cp-src/c.C 127
2726cow cp-src/c.C 131 2730cow cp-src/c.C 131
2727cplpl c-src/etags.c 2935 2731cplpl c-src/etags.c 2935
2732create-bar forth-src/test-forth.fth /^: create-bar foo ;$/
2728createPOEntries php-src/lce_functions.php /^ function createPOEntries()$/ 2733createPOEntries php-src/lce_functions.php /^ function createPOEntries()$/
2729createWidgets pyt-src/server.py /^ def createWidgets(self, host):$/ 2734createWidgets pyt-src/server.py /^ def createWidgets(self, host):$/
2730createWidgets pyt-src/server.py /^ def createWidgets(self):$/ 2735createWidgets pyt-src/server.py /^ def createWidgets(self):$/
@@ -2944,6 +2949,7 @@ fastmap c-src/emacs/src/regex.h 355
2944fastmap_accurate c-src/emacs/src/regex.h 383 2949fastmap_accurate c-src/emacs/src/regex.h 383
2945fatal c-src/etags.c /^fatal (const char *s1, const char *s2)$/ 2950fatal c-src/etags.c /^fatal (const char *s1, const char *s2)$/
2946fatala c.c /^void fatala () __attribute__ ((noreturn));$/ 2951fatala c.c /^void fatala () __attribute__ ((noreturn));$/
2952fconst forth-src/test-forth.fth /^3.1415e fconstant fconst$/
2947fdHandler objc-src/Subprocess.m /^- fdHandler:(int)theFd$/ 2953fdHandler objc-src/Subprocess.m /^- fdHandler:(int)theFd$/
2948fdHandler objc-src/Subprocess.m /^fdHandler (int theFd, id self)$/ 2954fdHandler objc-src/Subprocess.m /^fdHandler (int theFd, id self)$/
2949fdefunkey c-src/etags.c 2409 2955fdefunkey c-src/etags.c 2409
@@ -3015,6 +3021,7 @@ foo cp-src/x.cc /^XX::foo()$/
3015foo f-src/entry.for /^ character*(*) function foo()$/ 3021foo f-src/entry.for /^ character*(*) function foo()$/
3016foo f-src/entry.strange_suffix /^ character*(*) function foo()$/ 3022foo f-src/entry.strange_suffix /^ character*(*) function foo()$/
3017foo f-src/entry.strange /^ character*(*) function foo()$/ 3023foo f-src/entry.strange /^ character*(*) function foo()$/
3024foo forth-src/test-forth.fth /^: foo (foo) ;$/
3018foo php-src/ptest.php /^foo()$/ 3025foo php-src/ptest.php /^foo()$/
3019foo ruby-src/test1.ru /^ attr_reader :foo$/ 3026foo ruby-src/test1.ru /^ attr_reader :foo$/
3020foo! ruby-src/test1.ru /^ def foo!$/ 3027foo! ruby-src/test1.ru /^ def foo!$/
@@ -3057,6 +3064,8 @@ function c-src/emacs/src/lisp.h 694
3057function c-src/emacs/src/lisp.h 1685 3064function c-src/emacs/src/lisp.h 1685
3058function c-src/emacs/src/lisp.h 2197 3065function c-src/emacs/src/lisp.h 2197
3059functionp c-src/emacs/src/lisp.h /^functionp (Lisp_Object object)$/ 3066functionp c-src/emacs/src/lisp.h /^functionp (Lisp_Object object)$/
3067fval forth-src/test-forth.fth /^fconst fvalue fval$/
3068fvar forth-src/test-forth.fth /^fvariable fvar$/
3060fvdef c-src/etags.c 2418 3069fvdef c-src/etags.c 2418
3061fvextern c-src/etags.c 2420 3070fvextern c-src/etags.c 2420
3062fvnameseen c-src/etags.c 2412 3071fvnameseen c-src/etags.c 2412
@@ -3515,6 +3524,7 @@ my_struct c.c 226
3515my_struct c-src/h.h 91 3524my_struct c-src/h.h 91
3516my_typedef c.c 228 3525my_typedef c.c 228
3517my_typedef c-src/h.h 93 3526my_typedef c-src/h.h 93
3527mypi forth-src/test-forth.fth /^synonym mypi fconst$/
3518n c-src/exit.c 28 3528n c-src/exit.c 28
3519n c-src/exit.strange_suffix 28 3529n c-src/exit.strange_suffix 28
3520name c-src/getopt.h 76 3530name c-src/getopt.h 76
@@ -3719,6 +3729,8 @@ outputtable html-src/algrthms.html /^Output$/
3719outsyn prol-src/natded.prolog /^outsyn(['Any'],_).$/ 3729outsyn prol-src/natded.prolog /^outsyn(['Any'],_).$/
3720p c-src/emacs/src/lisp.h 4673 3730p c-src/emacs/src/lisp.h 4673
3721p c-src/emacs/src/lisp.h 4679 3731p c-src/emacs/src/lisp.h 4679
3732p.x forth-src/test-forth.fth /^ 1 CELLS +FIELD p.x \\ A single cell filed name/
3733p.y forth-src/test-forth.fth /^ 1 CELLS +FIELD p.y \\ A single cell field name/
3722p/f ada-src/etags-test-for.ada /^ function p pragma Import (C,$/ 3734p/f ada-src/etags-test-for.ada /^ function p pragma Import (C,$/
3723p/f ada-src/etags-test-for.ada /^function p ("p");$/ 3735p/f ada-src/etags-test-for.ada /^function p ("p");$/
3724pD c-src/emacs/src/lisp.h 165 3736pD c-src/emacs/src/lisp.h 165
@@ -3767,6 +3779,7 @@ plist c-src/emacs/src/lisp.h 697
3767plus cp-src/functions.cpp /^void Date::plus ( int days , int month , int year / 3779plus cp-src/functions.cpp /^void Date::plus ( int days , int month , int year /
3768plus go-src/test1.go 5 3780plus go-src/test1.go 5
3769plusvalseq prol-src/natded.prolog /^plusvalseq([]) --> [].$/ 3781plusvalseq prol-src/natded.prolog /^plusvalseq([]) --> [].$/
3782point forth-src/test-forth.fth /^BEGIN-STRUCTURE point \\ create the named structure/
3770pointer c-src/emacs/src/lisp.h 2125 3783pointer c-src/emacs/src/lisp.h 2125
3771poll_for_input c-src/emacs/src/keyboard.c /^poll_for_input (struct atimer *timer)$/ 3784poll_for_input c-src/emacs/src/keyboard.c /^poll_for_input (struct atimer *timer)$/
3772poll_for_input_1 c-src/emacs/src/keyboard.c /^poll_for_input_1 (void)$/ 3785poll_for_input_1 c-src/emacs/src/keyboard.c /^poll_for_input_1 (void)$/
diff --git a/test/manual/etags/ETAGS.good_1 b/test/manual/etags/ETAGS.good_1
index 374692c5816..b3bd2410fcc 100644
--- a/test/manual/etags/ETAGS.good_1
+++ b/test/manual/etags/ETAGS.good_1
@@ -2311,19 +2311,32 @@ f-src/entry.strange,172
2311 & intensity1(577,12231 2311 & intensity1(577,12231
2312 character*(*) function foo(579,12307 2312 character*(*) function foo(579,12307
2313 2313
2314forth-src/test-forth.fth,408 2314forth-src/test-forth.fth,733
2315: a-forth-word 20,301 2315: a-forth-word20,301
231699 constant a-forth-constant!22,343 231699 constant a-forth-constant!22,343
231755 value a-forth-value?23,373 231755 value a-forth-value?23,373
2318create :a-forth-dictionary-entry24,397 2318create :a-forth-dictionary-entry24,397
2319defer #a-defer-word27,460 2319defer #a-defer-word27,460
2320: (another-forth-word)(another-forth-word29,481 2320: (another-forth-word)(another-forth-word)29,481
2321 9 field >field136,582 2321 9 field >field136,582
2322 5 field >field237,605 2322 5 field >field237,605
2323constant (a-forth-constant(a-forth-constant38,628 2323constant (a-forth-constant(a-forth-constant38,628
23242000 buffer: #some-storage41,657 23242000 buffer: #some-storage41,657
2325code assemby-code-word 43,685 2325code assemby-code-word43,685
2326: a-forth-word 50,870 2326: a-forth-word50,870
2327: (foo)(foo)55,988
2328: foo56,1000
2329: create-bar58,1015
23303 4 2constant 2const61,1074
23312const 2value 2val62,1095
23322variable 2var63,1114
23333.1415e fconstant fconst65,1130
2334fconst fvalue fval66,1155
2335fvariable fvar67,1174
2336synonym mypi69,1190
2337BEGIN-STRUCTURE point71,1211
2338 1 CELLS +FIELD p.x72,1262
2339 1 CELLS +FIELD p.y73,1318
2327 2340
2328go-src/test.go,48 2341go-src/test.go,48
2329package main1,0 2342package main1,0
diff --git a/test/manual/etags/ETAGS.good_2 b/test/manual/etags/ETAGS.good_2
index a21717af75f..170d8457d19 100644
--- a/test/manual/etags/ETAGS.good_2
+++ b/test/manual/etags/ETAGS.good_2
@@ -2880,19 +2880,32 @@ f-src/entry.strange,172
2880 & intensity1(577,12231 2880 & intensity1(577,12231
2881 character*(*) function foo(579,12307 2881 character*(*) function foo(579,12307
2882 2882
2883forth-src/test-forth.fth,408 2883forth-src/test-forth.fth,733
2884: a-forth-word 20,301 2884: a-forth-word20,301
288599 constant a-forth-constant!22,343 288599 constant a-forth-constant!22,343
288655 value a-forth-value?23,373 288655 value a-forth-value?23,373
2887create :a-forth-dictionary-entry24,397 2887create :a-forth-dictionary-entry24,397
2888defer #a-defer-word27,460 2888defer #a-defer-word27,460
2889: (another-forth-word)(another-forth-word29,481 2889: (another-forth-word)(another-forth-word)29,481
2890 9 field >field136,582 2890 9 field >field136,582
2891 5 field >field237,605 2891 5 field >field237,605
2892constant (a-forth-constant(a-forth-constant38,628 2892constant (a-forth-constant(a-forth-constant38,628
28932000 buffer: #some-storage41,657 28932000 buffer: #some-storage41,657
2894code assemby-code-word 43,685 2894code assemby-code-word43,685
2895: a-forth-word 50,870 2895: a-forth-word50,870
2896: (foo)(foo)55,988
2897: foo56,1000
2898: create-bar58,1015
28993 4 2constant 2const61,1074
29002const 2value 2val62,1095
29012variable 2var63,1114
29023.1415e fconstant fconst65,1130
2903fconst fvalue fval66,1155
2904fvariable fvar67,1174
2905synonym mypi69,1190
2906BEGIN-STRUCTURE point71,1211
2907 1 CELLS +FIELD p.x72,1262
2908 1 CELLS +FIELD p.y73,1318
2896 2909
2897go-src/test.go,48 2910go-src/test.go,48
2898package main1,0 2911package main1,0
diff --git a/test/manual/etags/ETAGS.good_3 b/test/manual/etags/ETAGS.good_3
index 33bf110687b..1d75314a37f 100644
--- a/test/manual/etags/ETAGS.good_3
+++ b/test/manual/etags/ETAGS.good_3
@@ -2628,19 +2628,32 @@ f-src/entry.strange,172
2628 & intensity1(577,12231 2628 & intensity1(577,12231
2629 character*(*) function foo(579,12307 2629 character*(*) function foo(579,12307
2630 2630
2631forth-src/test-forth.fth,408 2631forth-src/test-forth.fth,733
2632: a-forth-word 20,301 2632: a-forth-word20,301
263399 constant a-forth-constant!22,343 263399 constant a-forth-constant!22,343
263455 value a-forth-value?23,373 263455 value a-forth-value?23,373
2635create :a-forth-dictionary-entry24,397 2635create :a-forth-dictionary-entry24,397
2636defer #a-defer-word27,460 2636defer #a-defer-word27,460
2637: (another-forth-word)(another-forth-word29,481 2637: (another-forth-word)(another-forth-word)29,481
2638 9 field >field136,582 2638 9 field >field136,582
2639 5 field >field237,605 2639 5 field >field237,605
2640constant (a-forth-constant(a-forth-constant38,628 2640constant (a-forth-constant(a-forth-constant38,628
26412000 buffer: #some-storage41,657 26412000 buffer: #some-storage41,657
2642code assemby-code-word 43,685 2642code assemby-code-word43,685
2643: a-forth-word 50,870 2643: a-forth-word50,870
2644: (foo)(foo)55,988
2645: foo56,1000
2646: create-bar58,1015
26473 4 2constant 2const61,1074
26482const 2value 2val62,1095
26492variable 2var63,1114
26503.1415e fconstant fconst65,1130
2651fconst fvalue fval66,1155
2652fvariable fvar67,1174
2653synonym mypi69,1190
2654BEGIN-STRUCTURE point71,1211
2655 1 CELLS +FIELD p.x72,1262
2656 1 CELLS +FIELD p.y73,1318
2644 2657
2645go-src/test.go,48 2658go-src/test.go,48
2646package main1,0 2659package main1,0
diff --git a/test/manual/etags/ETAGS.good_4 b/test/manual/etags/ETAGS.good_4
index 3d9d6266421..e74db284274 100644
--- a/test/manual/etags/ETAGS.good_4
+++ b/test/manual/etags/ETAGS.good_4
@@ -2475,19 +2475,32 @@ f-src/entry.strange,172
2475 & intensity1(577,12231 2475 & intensity1(577,12231
2476 character*(*) function foo(579,12307 2476 character*(*) function foo(579,12307
2477 2477
2478forth-src/test-forth.fth,408 2478forth-src/test-forth.fth,733
2479: a-forth-word 20,301 2479: a-forth-word20,301
248099 constant a-forth-constant!22,343 248099 constant a-forth-constant!22,343
248155 value a-forth-value?23,373 248155 value a-forth-value?23,373
2482create :a-forth-dictionary-entry24,397 2482create :a-forth-dictionary-entry24,397
2483defer #a-defer-word27,460 2483defer #a-defer-word27,460
2484: (another-forth-word)(another-forth-word29,481 2484: (another-forth-word)(another-forth-word)29,481
2485 9 field >field136,582 2485 9 field >field136,582
2486 5 field >field237,605 2486 5 field >field237,605
2487constant (a-forth-constant(a-forth-constant38,628 2487constant (a-forth-constant(a-forth-constant38,628
24882000 buffer: #some-storage41,657 24882000 buffer: #some-storage41,657
2489code assemby-code-word 43,685 2489code assemby-code-word43,685
2490: a-forth-word 50,870 2490: a-forth-word50,870
2491: (foo)(foo)55,988
2492: foo56,1000
2493: create-bar58,1015
24943 4 2constant 2const61,1074
24952const 2value 2val62,1095
24962variable 2var63,1114
24973.1415e fconstant fconst65,1130
2498fconst fvalue fval66,1155
2499fvariable fvar67,1174
2500synonym mypi69,1190
2501BEGIN-STRUCTURE point71,1211
2502 1 CELLS +FIELD p.x72,1262
2503 1 CELLS +FIELD p.y73,1318
2491 2504
2492go-src/test.go,48 2505go-src/test.go,48
2493package main1,0 2506package main1,0
diff --git a/test/manual/etags/ETAGS.good_5 b/test/manual/etags/ETAGS.good_5
index 1dff7685212..e278678b547 100644
--- a/test/manual/etags/ETAGS.good_5
+++ b/test/manual/etags/ETAGS.good_5
@@ -3361,19 +3361,32 @@ f-src/entry.strange,172
3361 & intensity1(577,12231 3361 & intensity1(577,12231
3362 character*(*) function foo(579,12307 3362 character*(*) function foo(579,12307
3363 3363
3364forth-src/test-forth.fth,408 3364forth-src/test-forth.fth,733
3365: a-forth-word 20,301 3365: a-forth-word20,301
336699 constant a-forth-constant!22,343 336699 constant a-forth-constant!22,343
336755 value a-forth-value?23,373 336755 value a-forth-value?23,373
3368create :a-forth-dictionary-entry24,397 3368create :a-forth-dictionary-entry24,397
3369defer #a-defer-word27,460 3369defer #a-defer-word27,460
3370: (another-forth-word)(another-forth-word29,481 3370: (another-forth-word)(another-forth-word)29,481
3371 9 field >field136,582 3371 9 field >field136,582
3372 5 field >field237,605 3372 5 field >field237,605
3373constant (a-forth-constant(a-forth-constant38,628 3373constant (a-forth-constant(a-forth-constant38,628
33742000 buffer: #some-storage41,657 33742000 buffer: #some-storage41,657
3375code assemby-code-word 43,685 3375code assemby-code-word43,685
3376: a-forth-word 50,870 3376: a-forth-word50,870
3377: (foo)(foo)55,988
3378: foo56,1000
3379: create-bar58,1015
33803 4 2constant 2const61,1074
33812const 2value 2val62,1095
33822variable 2var63,1114
33833.1415e fconstant fconst65,1130
3384fconst fvalue fval66,1155
3385fvariable fvar67,1174
3386synonym mypi69,1190
3387BEGIN-STRUCTURE point71,1211
3388 1 CELLS +FIELD p.x72,1262
3389 1 CELLS +FIELD p.y73,1318
3377 3390
3378go-src/test.go,48 3391go-src/test.go,48
3379package main1,0 3392package main1,0
diff --git a/test/manual/etags/ETAGS.good_6 b/test/manual/etags/ETAGS.good_6
index fdcbd57e7ef..68e474d6285 100644
--- a/test/manual/etags/ETAGS.good_6
+++ b/test/manual/etags/ETAGS.good_6
@@ -3361,19 +3361,32 @@ f-src/entry.strange,172
3361 & intensity1(577,12231 3361 & intensity1(577,12231
3362 character*(*) function foo(579,12307 3362 character*(*) function foo(579,12307
3363 3363
3364forth-src/test-forth.fth,408 3364forth-src/test-forth.fth,733
3365: a-forth-word 20,301 3365: a-forth-word20,301
336699 constant a-forth-constant!22,343 336699 constant a-forth-constant!22,343
336755 value a-forth-value?23,373 336755 value a-forth-value?23,373
3368create :a-forth-dictionary-entry24,397 3368create :a-forth-dictionary-entry24,397
3369defer #a-defer-word27,460 3369defer #a-defer-word27,460
3370: (another-forth-word)(another-forth-word29,481 3370: (another-forth-word)(another-forth-word)29,481
3371 9 field >field136,582 3371 9 field >field136,582
3372 5 field >field237,605 3372 5 field >field237,605
3373constant (a-forth-constant(a-forth-constant38,628 3373constant (a-forth-constant(a-forth-constant38,628
33742000 buffer: #some-storage41,657 33742000 buffer: #some-storage41,657
3375code assemby-code-word 43,685 3375code assemby-code-word43,685
3376: a-forth-word 50,870 3376: a-forth-word50,870
3377: (foo)(foo)55,988
3378: foo56,1000
3379: create-bar58,1015
33803 4 2constant 2const61,1074
33812const 2value 2val62,1095
33822variable 2var63,1114
33833.1415e fconstant fconst65,1130
3384fconst fvalue fval66,1155
3385fvariable fvar67,1174
3386synonym mypi69,1190
3387BEGIN-STRUCTURE point71,1211
3388 1 CELLS +FIELD p.x72,1262
3389 1 CELLS +FIELD p.y73,1318
3377 3390
3378go-src/test.go,48 3391go-src/test.go,48
3379package main1,0 3392package main1,0
diff --git a/test/manual/etags/forth-src/test-forth.fth b/test/manual/etags/forth-src/test-forth.fth
index ce4069dfa8f..4521d32fae4 100644
--- a/test/manual/etags/forth-src/test-forth.fth
+++ b/test/manual/etags/forth-src/test-forth.fth
@@ -51,3 +51,24 @@ c;
51 a-forth-word dup 200 > abort" Eek. The number is too big" 51 a-forth-word dup 200 > abort" Eek. The number is too big"
52 ." Result is " . cr 52 ." Result is " . cr
53; 53;
54
55: (foo) 1 ;
56: foo (foo) ;
57
58: create-bar foo ;
59create-bar \ Do NOT create a tag here
60
613 4 2constant 2const
622const 2value 2val
632variable 2var
64
653.1415e fconstant fconst
66fconst fvalue fval
67fvariable fvar
68
69synonym mypi fconst
70
71BEGIN-STRUCTURE point \ create the named structure
72 1 CELLS +FIELD p.x \ A single cell filed named p.x
73 1 CELLS +FIELD p.y \ A single cell field named p.y
74END-STRUCTURE