From bb8e38273e701ad5c65e747e8eda3bd8f3aa4adb Mon Sep 17 00:00:00 2001 From: Helmut Eller Date: Thu, 1 Dec 2016 18:58:08 +0200 Subject: 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. --- test/manual/etags/CTAGS.good | 15 ++++++++++++++- test/manual/etags/ETAGS.good_1 | 23 ++++++++++++++++++----- test/manual/etags/ETAGS.good_2 | 23 ++++++++++++++++++----- test/manual/etags/ETAGS.good_3 | 23 ++++++++++++++++++----- test/manual/etags/ETAGS.good_4 | 23 ++++++++++++++++++----- test/manual/etags/ETAGS.good_5 | 23 ++++++++++++++++++----- test/manual/etags/ETAGS.good_6 | 23 ++++++++++++++++++----- test/manual/etags/forth-src/test-forth.fth | 21 +++++++++++++++++++++ 8 files changed, 143 insertions(+), 31 deletions(-) (limited to 'test/manual') 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$/ ($prog,$_,@list perl-src/yagrip.pl 39 ($string,$flag,@string,@temp,@last perl-src/yagrip.pl 40 (a-forth-constant forth-src/test-forth.fth /^constant (a-forth-constant$/ -(another-forth-word forth-src/test-forth.fth /^: (another-forth-word) ( -- )$/ +(another-forth-word) forth-src/test-forth.fth /^: (another-forth-word) ( -- )$/ +(foo) forth-src/test-forth.fth /^: (foo) 1 ;$/ + ruby-src/test.rb /^ def +(y)$/ + tex-src/texinfo.tex /^\\def+{{\\tt \\char 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$/ /wbytes ps-src/rfc1245.ps /^\/wbytes { $/ /wh ps-src/rfc1245.ps /^\/wh { $/ /yen ps-src/rfc1245.ps /^\/yen \/.notdef \/.notdef \/.notdef \/.notdef \/.notdef / +2const forth-src/test-forth.fth /^3 4 2constant 2const$/ +2val forth-src/test-forth.fth /^2const 2value 2val$/ +2var forth-src/test-forth.fth /^2variable 2var$/ :a-forth-dictionary-entry forth-src/test-forth.fth /^create :a-forth-dictionary-entry$/ < tex-src/texinfo.tex /^\\def<{{\\tt \\less}}$/ << ruby-src/test.rb /^ def <<(y)$/ @@ -2725,6 +2729,7 @@ counter cp-src/c.C 36 cow cp-src/c.C 127 cow cp-src/c.C 131 cplpl c-src/etags.c 2935 +create-bar forth-src/test-forth.fth /^: create-bar foo ;$/ createPOEntries php-src/lce_functions.php /^ function createPOEntries()$/ createWidgets pyt-src/server.py /^ def createWidgets(self, host):$/ createWidgets pyt-src/server.py /^ def createWidgets(self):$/ @@ -2944,6 +2949,7 @@ fastmap c-src/emacs/src/regex.h 355 fastmap_accurate c-src/emacs/src/regex.h 383 fatal c-src/etags.c /^fatal (const char *s1, const char *s2)$/ fatala c.c /^void fatala () __attribute__ ((noreturn));$/ +fconst forth-src/test-forth.fth /^3.1415e fconstant fconst$/ fdHandler objc-src/Subprocess.m /^- fdHandler:(int)theFd$/ fdHandler objc-src/Subprocess.m /^fdHandler (int theFd, id self)$/ fdefunkey c-src/etags.c 2409 @@ -3015,6 +3021,7 @@ foo cp-src/x.cc /^XX::foo()$/ foo f-src/entry.for /^ character*(*) function foo()$/ foo f-src/entry.strange_suffix /^ character*(*) function foo()$/ foo f-src/entry.strange /^ character*(*) function foo()$/ +foo forth-src/test-forth.fth /^: foo (foo) ;$/ foo php-src/ptest.php /^foo()$/ foo ruby-src/test1.ru /^ attr_reader :foo$/ foo! ruby-src/test1.ru /^ def foo!$/ @@ -3057,6 +3064,8 @@ function c-src/emacs/src/lisp.h 694 function c-src/emacs/src/lisp.h 1685 function c-src/emacs/src/lisp.h 2197 functionp c-src/emacs/src/lisp.h /^functionp (Lisp_Object object)$/ +fval forth-src/test-forth.fth /^fconst fvalue fval$/ +fvar forth-src/test-forth.fth /^fvariable fvar$/ fvdef c-src/etags.c 2418 fvextern c-src/etags.c 2420 fvnameseen c-src/etags.c 2412 @@ -3515,6 +3524,7 @@ my_struct c.c 226 my_struct c-src/h.h 91 my_typedef c.c 228 my_typedef c-src/h.h 93 +mypi forth-src/test-forth.fth /^synonym mypi fconst$/ n c-src/exit.c 28 n c-src/exit.strange_suffix 28 name c-src/getopt.h 76 @@ -3719,6 +3729,8 @@ outputtable html-src/algrthms.html /^Output$/ outsyn prol-src/natded.prolog /^outsyn(['Any'],_).$/ p c-src/emacs/src/lisp.h 4673 p c-src/emacs/src/lisp.h 4679 +p.x forth-src/test-forth.fth /^ 1 CELLS +FIELD p.x \\ A single cell filed name/ +p.y forth-src/test-forth.fth /^ 1 CELLS +FIELD p.y \\ A single cell field name/ p/f ada-src/etags-test-for.ada /^ function p pragma Import (C,$/ p/f ada-src/etags-test-for.ada /^function p ("p");$/ pD c-src/emacs/src/lisp.h 165 @@ -3767,6 +3779,7 @@ plist c-src/emacs/src/lisp.h 697 plus cp-src/functions.cpp /^void Date::plus ( int days , int month , int year / plus go-src/test1.go 5 plusvalseq prol-src/natded.prolog /^plusvalseq([]) --> [].$/ +point forth-src/test-forth.fth /^BEGIN-STRUCTURE point \\ create the named structure/ pointer c-src/emacs/src/lisp.h 2125 poll_for_input c-src/emacs/src/keyboard.c /^poll_for_input (struct atimer *timer)$/ poll_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 & intensity1(577,12231 character*(*) function foo(579,12307 -forth-src/test-forth.fth,408 -: a-forth-word 20,301 +forth-src/test-forth.fth,733 +: a-forth-word20,301 99 constant a-forth-constant!22,343 55 value a-forth-value?23,373 create :a-forth-dictionary-entry24,397 defer #a-defer-word27,460 -: (another-forth-word)(another-forth-word29,481 +: (another-forth-word)(another-forth-word)29,481 9 field >field136,582 5 field >field237,605 constant (a-forth-constant(a-forth-constant38,628 2000 buffer: #some-storage41,657 -code assemby-code-word 43,685 -: a-forth-word 50,870 +code assemby-code-word43,685 +: a-forth-word50,870 +: (foo)(foo)55,988 +: foo56,1000 +: create-bar58,1015 +3 4 2constant 2const61,1074 +2const 2value 2val62,1095 +2variable 2var63,1114 +3.1415e fconstant fconst65,1130 +fconst fvalue fval66,1155 +fvariable fvar67,1174 +synonym mypi69,1190 +BEGIN-STRUCTURE point71,1211 + 1 CELLS +FIELD p.x72,1262 + 1 CELLS +FIELD p.y73,1318 go-src/test.go,48 package 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 & intensity1(577,12231 character*(*) function foo(579,12307 -forth-src/test-forth.fth,408 -: a-forth-word 20,301 +forth-src/test-forth.fth,733 +: a-forth-word20,301 99 constant a-forth-constant!22,343 55 value a-forth-value?23,373 create :a-forth-dictionary-entry24,397 defer #a-defer-word27,460 -: (another-forth-word)(another-forth-word29,481 +: (another-forth-word)(another-forth-word)29,481 9 field >field136,582 5 field >field237,605 constant (a-forth-constant(a-forth-constant38,628 2000 buffer: #some-storage41,657 -code assemby-code-word 43,685 -: a-forth-word 50,870 +code assemby-code-word43,685 +: a-forth-word50,870 +: (foo)(foo)55,988 +: foo56,1000 +: create-bar58,1015 +3 4 2constant 2const61,1074 +2const 2value 2val62,1095 +2variable 2var63,1114 +3.1415e fconstant fconst65,1130 +fconst fvalue fval66,1155 +fvariable fvar67,1174 +synonym mypi69,1190 +BEGIN-STRUCTURE point71,1211 + 1 CELLS +FIELD p.x72,1262 + 1 CELLS +FIELD p.y73,1318 go-src/test.go,48 package 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 & intensity1(577,12231 character*(*) function foo(579,12307 -forth-src/test-forth.fth,408 -: a-forth-word 20,301 +forth-src/test-forth.fth,733 +: a-forth-word20,301 99 constant a-forth-constant!22,343 55 value a-forth-value?23,373 create :a-forth-dictionary-entry24,397 defer #a-defer-word27,460 -: (another-forth-word)(another-forth-word29,481 +: (another-forth-word)(another-forth-word)29,481 9 field >field136,582 5 field >field237,605 constant (a-forth-constant(a-forth-constant38,628 2000 buffer: #some-storage41,657 -code assemby-code-word 43,685 -: a-forth-word 50,870 +code assemby-code-word43,685 +: a-forth-word50,870 +: (foo)(foo)55,988 +: foo56,1000 +: create-bar58,1015 +3 4 2constant 2const61,1074 +2const 2value 2val62,1095 +2variable 2var63,1114 +3.1415e fconstant fconst65,1130 +fconst fvalue fval66,1155 +fvariable fvar67,1174 +synonym mypi69,1190 +BEGIN-STRUCTURE point71,1211 + 1 CELLS +FIELD p.x72,1262 + 1 CELLS +FIELD p.y73,1318 go-src/test.go,48 package 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 & intensity1(577,12231 character*(*) function foo(579,12307 -forth-src/test-forth.fth,408 -: a-forth-word 20,301 +forth-src/test-forth.fth,733 +: a-forth-word20,301 99 constant a-forth-constant!22,343 55 value a-forth-value?23,373 create :a-forth-dictionary-entry24,397 defer #a-defer-word27,460 -: (another-forth-word)(another-forth-word29,481 +: (another-forth-word)(another-forth-word)29,481 9 field >field136,582 5 field >field237,605 constant (a-forth-constant(a-forth-constant38,628 2000 buffer: #some-storage41,657 -code assemby-code-word 43,685 -: a-forth-word 50,870 +code assemby-code-word43,685 +: a-forth-word50,870 +: (foo)(foo)55,988 +: foo56,1000 +: create-bar58,1015 +3 4 2constant 2const61,1074 +2const 2value 2val62,1095 +2variable 2var63,1114 +3.1415e fconstant fconst65,1130 +fconst fvalue fval66,1155 +fvariable fvar67,1174 +synonym mypi69,1190 +BEGIN-STRUCTURE point71,1211 + 1 CELLS +FIELD p.x72,1262 + 1 CELLS +FIELD p.y73,1318 go-src/test.go,48 package 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 & intensity1(577,12231 character*(*) function foo(579,12307 -forth-src/test-forth.fth,408 -: a-forth-word 20,301 +forth-src/test-forth.fth,733 +: a-forth-word20,301 99 constant a-forth-constant!22,343 55 value a-forth-value?23,373 create :a-forth-dictionary-entry24,397 defer #a-defer-word27,460 -: (another-forth-word)(another-forth-word29,481 +: (another-forth-word)(another-forth-word)29,481 9 field >field136,582 5 field >field237,605 constant (a-forth-constant(a-forth-constant38,628 2000 buffer: #some-storage41,657 -code assemby-code-word 43,685 -: a-forth-word 50,870 +code assemby-code-word43,685 +: a-forth-word50,870 +: (foo)(foo)55,988 +: foo56,1000 +: create-bar58,1015 +3 4 2constant 2const61,1074 +2const 2value 2val62,1095 +2variable 2var63,1114 +3.1415e fconstant fconst65,1130 +fconst fvalue fval66,1155 +fvariable fvar67,1174 +synonym mypi69,1190 +BEGIN-STRUCTURE point71,1211 + 1 CELLS +FIELD p.x72,1262 + 1 CELLS +FIELD p.y73,1318 go-src/test.go,48 package 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 & intensity1(577,12231 character*(*) function foo(579,12307 -forth-src/test-forth.fth,408 -: a-forth-word 20,301 +forth-src/test-forth.fth,733 +: a-forth-word20,301 99 constant a-forth-constant!22,343 55 value a-forth-value?23,373 create :a-forth-dictionary-entry24,397 defer #a-defer-word27,460 -: (another-forth-word)(another-forth-word29,481 +: (another-forth-word)(another-forth-word)29,481 9 field >field136,582 5 field >field237,605 constant (a-forth-constant(a-forth-constant38,628 2000 buffer: #some-storage41,657 -code assemby-code-word 43,685 -: a-forth-word 50,870 +code assemby-code-word43,685 +: a-forth-word50,870 +: (foo)(foo)55,988 +: foo56,1000 +: create-bar58,1015 +3 4 2constant 2const61,1074 +2const 2value 2val62,1095 +2variable 2var63,1114 +3.1415e fconstant fconst65,1130 +fconst fvalue fval66,1155 +fvariable fvar67,1174 +synonym mypi69,1190 +BEGIN-STRUCTURE point71,1211 + 1 CELLS +FIELD p.x72,1262 + 1 CELLS +FIELD p.y73,1318 go-src/test.go,48 package 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; a-forth-word dup 200 > abort" Eek. The number is too big" ." Result is " . cr ; + +: (foo) 1 ; +: foo (foo) ; + +: create-bar foo ; +create-bar \ Do NOT create a tag here + +3 4 2constant 2const +2const 2value 2val +2variable 2var + +3.1415e fconstant fconst +fconst fvalue fval +fvariable fvar + +synonym mypi fconst + +BEGIN-STRUCTURE point \ create the named structure + 1 CELLS +FIELD p.x \ A single cell filed named p.x + 1 CELLS +FIELD p.y \ A single cell field named p.y +END-STRUCTURE -- cgit v1.2.1