From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Helmut Eller Newsgroups: gmane.emacs.bugs Subject: bug#25071: 26.0.50; Various Forth related improvements for etags Date: Wed, 30 Nov 2016 12:29:40 +0100 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1480505542 6137 195.159.176.226 (30 Nov 2016 11:32:22 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 30 Nov 2016 11:32:22 +0000 (UTC) To: 25071@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Nov 30 12:32:14 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cC37V-0000UD-JT for geb-bug-gnu-emacs@m.gmane.org; Wed, 30 Nov 2016 12:32:13 +0100 Original-Received: from localhost ([::1]:42920 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cC37Z-0007ER-7l for geb-bug-gnu-emacs@m.gmane.org; Wed, 30 Nov 2016 06:32:17 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52242) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cC37N-0007DC-UK for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2016 06:32:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cC37K-0005al-LB for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2016 06:32:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:59835) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cC37K-0005aZ-Hn for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2016 06:32:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cC37K-00020X-BH for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2016 06:32:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Helmut Eller Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 30 Nov 2016 11:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 25071 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.14805054837663 (code B ref -1); Wed, 30 Nov 2016 11:32:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 30 Nov 2016 11:31:23 +0000 Original-Received: from localhost ([127.0.0.1]:47001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cC36c-0001zQ-DD for submit@debbugs.gnu.org; Wed, 30 Nov 2016 06:31:23 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:60777) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cC36a-0001zE-QK for submit@debbugs.gnu.org; Wed, 30 Nov 2016 06:31:17 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cC36S-00050G-As for submit@debbugs.gnu.org; Wed, 30 Nov 2016 06:31:11 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:42736) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cC36S-000508-7s for submit@debbugs.gnu.org; Wed, 30 Nov 2016 06:31:08 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51684) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cC36K-00072x-Mj for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2016 06:31:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cC36F-0004rq-B5 for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2016 06:31:00 -0500 Original-Received: from mail-wm0-f52.google.com ([74.125.82.52]:38196) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cC36E-0004pu-W6 for bug-gnu-emacs@gnu.org; Wed, 30 Nov 2016 06:30:55 -0500 Original-Received: by mail-wm0-f52.google.com with SMTP id f82so216723803wmf.1 for ; Wed, 30 Nov 2016 03:30:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:mime-version; bh=kw6Zn6ap7Pxbz404Id1SZBx9vren2Hsamc71jZR5EPg=; b=UQ3K8r1CLtfD+U1IsjLi7pX5DGMWLyeccrgnG6tTjWKEM3+VA9Rvk1G0MRm+5wxcHs DqL1JwKIrm9h4j3+L4OBZxtoW1UBZaFMLf48yi9W/5EVihrLvKRZfurASxF4ODArgKn2 ZEUegtU+R423ntIchXCs0CTx66qlD6XzxNu4us3gW6pvZk5jpWeUDnfIkJlxvsEePO0B J0MHVDiEBxxBwn7RVHdMS77kaZEIFluCr+dYGk0KVOsPA8L3Dt/OSFsD+rcj0UnQ4fcx A2KsFGdnPpEsrJcBvUKxdQFw1Sxgw2Ca2h1a3gvih3B2uSqItJxrbWMDhEdz1yz9BsLM Z3nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=kw6Zn6ap7Pxbz404Id1SZBx9vren2Hsamc71jZR5EPg=; b=f0GhOvvkz6YeizwV8TU/K7OdimrxSTxICR+Wd/CLE7KAw4IKIy5l13UEqmvqbkwMWA Bv14hG7l9tvXM3WNn9wO5YbpXwxe5IHh8vNJKmOFKgp68fG9LH6FXiRfqC91dJo32S90 CqKqwR16Hn8fsCs3TrXXxIF/6ygeI4WBo69a/iLIcUlKZJihKjbWVcvoTJ8s+PEP1dRb rsSdA0PAJZ21EdqOnmpHhQzGIfYTXMmftRVemaW0AXb0GUWUTN2vTQ1hCeVHBqbADqCD X3NrnkoHshoxY6EAGjcMl7v3atgAS3Y6p0eeYxAza/HCJ7vGLBKuoDi3FXe1GCUYjmJ7 KF+Q== X-Gm-Message-State: AKaTC02YANKVhx4BGOmtl18lK9aMWdTPyMAxMx8kKdYjy9wD7GHKQfqw1troW9/uPIsCmg== X-Received: by 10.28.48.145 with SMTP id w139mr29300378wmw.113.1480505393340; Wed, 30 Nov 2016 03:29:53 -0800 (PST) Original-Received: from caladan (dial-181252.pool.broadband44.net. [212.46.181.252]) by smtp.gmail.com with ESMTPSA id g184sm7537995wme.23.2016.11.30.03.29.51 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Nov 2016 03:29:52 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:126300 Archived-At: --=-=-= Content-Type: text/plain I'd like to propose a patch to etags for better Forth support. With the patch, etags creates explicit tag names. That works better in combination with tag-exact-match-p. It also adds supports for some keywords from the (relatively new) Forth-2012 Standard. --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Various-Forth-related-improvements-for-etags.patch Content-Transfer-Encoding: 8bit >From 17dc260dd2a609e69d303cdbe1e81375d8d25519 Mon Sep 17 00:00:00 2001 From: Helmut Eller Date: Wed, 30 Nov 2016 12:20:34 +0100 Subject: [PATCH] Various Forth related improvements for etags Create explicit tag names for Forth files, so that names like "(foo)" can be found. Previously only "(foo" was found due to C-isms. 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 explict tag name with pfnote. * test/manual/etags/forth-src/test-forth.fth: Add some test cases. * test/etags/ETAGS.good_1: * test/etags/ETAGS.good_2: * test/etags/ETAGS.good_3: * test/etags/ETAGS.good_4: * test/etags/ETAGS.good_5: * test/etags/ETAGS.good_6: * test/etags/CTAGS.good: Adapt to the changes in etags.c and new test cases. --- lib-src/etags.c | 40 ++++++++++++++++++++++-------- test/manual/etags/CTAGS.good | 15 ++++++++++- test/manual/etags/ETAGS.good_1 | 37 ++++++++++++++++++--------- test/manual/etags/ETAGS.good_2 | 37 ++++++++++++++++++--------- test/manual/etags/ETAGS.good_3 | 37 ++++++++++++++++++--------- test/manual/etags/ETAGS.good_4 | 37 ++++++++++++++++++--------- test/manual/etags/ETAGS.good_5 | 37 ++++++++++++++++++--------- test/manual/etags/ETAGS.good_6 | 37 ++++++++++++++++++--------- test/manual/etags/forth-src/test-forth.fth | 21 ++++++++++++++++ 9 files changed, 215 insertions(+), 83 deletions(-) diff --git a/lib-src/etags.c b/lib-src/etags.c index 6a722e0..f680d20 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -5469,16 +5469,36 @@ Forth_words (FILE *inf) do /* skip to ) or eol */ bp++; while (*bp != ')' && *bp != '\0'); - else if ((bp[0] == ':' && c_isspace (bp[1]) && bp++) - || LOOKING_AT_NOCASE (bp, "constant") - || LOOKING_AT_NOCASE (bp, "code") - || LOOKING_AT_NOCASE (bp, "create") - || LOOKING_AT_NOCASE (bp, "defer") - || LOOKING_AT_NOCASE (bp, "value") - || LOOKING_AT_NOCASE (bp, "variable") - || LOOKING_AT_NOCASE (bp, "buffer:") - || LOOKING_AT_NOCASE (bp, "field")) - get_tag (skip_spaces (bp), NULL); /* Yay! A definition! */ + else if (((bp[0] == ':' && c_isspace (bp[1]) && bp++) + || LOOKING_AT_NOCASE (bp, "constant") + || LOOKING_AT_NOCASE (bp, "2constant") + || LOOKING_AT_NOCASE (bp, "fconstant") + || LOOKING_AT_NOCASE (bp, "code") + || LOOKING_AT_NOCASE (bp, "create") + || LOOKING_AT_NOCASE (bp, "defer") + || LOOKING_AT_NOCASE (bp, "value") + || LOOKING_AT_NOCASE (bp, "2value") + || LOOKING_AT_NOCASE (bp, "fvalue") + || LOOKING_AT_NOCASE (bp, "variable") + || LOOKING_AT_NOCASE (bp, "2variable") + || LOOKING_AT_NOCASE (bp, "fvariable") + || LOOKING_AT_NOCASE (bp, "buffer:") + || LOOKING_AT_NOCASE (bp, "field:") + || LOOKING_AT_NOCASE (bp, "+field") + || LOOKING_AT_NOCASE (bp, "field") /* not standard? */ + || LOOKING_AT_NOCASE (bp, "begin-structure") + || LOOKING_AT_NOCASE (bp, "synonym") + ) + && c_isspace (bp[0])) + { + /* Yay! A definition! */ + char* name_start = skip_spaces (bp); + char* name_end = skip_non_spaces (name_start); + char* name = savenstr (name_start, name_end - name_start); + pfnote (name, true, lb.buffer, name_end - lb.buffer, + lineno, linecharno); + bp = name_end; + } else bp = skip_non_spaces (bp); } diff --git a/test/manual/etags/CTAGS.good b/test/manual/etags/CTAGS.good index e652989..6f9df19 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 374692c..4067a80 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 -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 - 9 field >field136,582 - 5 field >field237,605 +forth-src/test-forth.fth,948 +: a-forth-worda-forth-word20,301 +99 constant a-forth-constant!a-forth-constant!22,343 +55 value a-forth-value?a-forth-value?23,373 +create :a-forth-dictionary-entry:a-forth-dictionary-entry24,397 +defer #a-defer-word#a-defer-word27,460 +: (another-forth-word)(another-forth-word)29,481 + 9 field >field1>field136,582 + 5 field >field2>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 +2000 buffer: #some-storage#some-storage41,657 +code assemby-code-wordassemby-code-word43,685 +: a-forth-worda-forth-word50,870 +: (foo)(foo)55,988 +: foofoo56,1000 +: create-barcreate-bar58,1015 +3 4 2constant 2const2const61,1074 +2const 2value 2val2val62,1095 +2variable 2var2var63,1114 +3.1415e fconstant fconstfconst65,1130 +fconst fvalue fvalfval66,1155 +fvariable fvarfvar67,1174 +synonym mypimypi69,1190 +BEGIN-STRUCTURE pointpoint71,1211 + 1 CELLS +FIELD p.xp.x72,1262 + 1 CELLS +FIELD p.yp.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 a21717a..71634d4 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 -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 - 9 field >field136,582 - 5 field >field237,605 +forth-src/test-forth.fth,948 +: a-forth-worda-forth-word20,301 +99 constant a-forth-constant!a-forth-constant!22,343 +55 value a-forth-value?a-forth-value?23,373 +create :a-forth-dictionary-entry:a-forth-dictionary-entry24,397 +defer #a-defer-word#a-defer-word27,460 +: (another-forth-word)(another-forth-word)29,481 + 9 field >field1>field136,582 + 5 field >field2>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 +2000 buffer: #some-storage#some-storage41,657 +code assemby-code-wordassemby-code-word43,685 +: a-forth-worda-forth-word50,870 +: (foo)(foo)55,988 +: foofoo56,1000 +: create-barcreate-bar58,1015 +3 4 2constant 2const2const61,1074 +2const 2value 2val2val62,1095 +2variable 2var2var63,1114 +3.1415e fconstant fconstfconst65,1130 +fconst fvalue fvalfval66,1155 +fvariable fvarfvar67,1174 +synonym mypimypi69,1190 +BEGIN-STRUCTURE pointpoint71,1211 + 1 CELLS +FIELD p.xp.x72,1262 + 1 CELLS +FIELD p.yp.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 33bf110..9b56bb2 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 -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 - 9 field >field136,582 - 5 field >field237,605 +forth-src/test-forth.fth,948 +: a-forth-worda-forth-word20,301 +99 constant a-forth-constant!a-forth-constant!22,343 +55 value a-forth-value?a-forth-value?23,373 +create :a-forth-dictionary-entry:a-forth-dictionary-entry24,397 +defer #a-defer-word#a-defer-word27,460 +: (another-forth-word)(another-forth-word)29,481 + 9 field >field1>field136,582 + 5 field >field2>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 +2000 buffer: #some-storage#some-storage41,657 +code assemby-code-wordassemby-code-word43,685 +: a-forth-worda-forth-word50,870 +: (foo)(foo)55,988 +: foofoo56,1000 +: create-barcreate-bar58,1015 +3 4 2constant 2const2const61,1074 +2const 2value 2val2val62,1095 +2variable 2var2var63,1114 +3.1415e fconstant fconstfconst65,1130 +fconst fvalue fvalfval66,1155 +fvariable fvarfvar67,1174 +synonym mypimypi69,1190 +BEGIN-STRUCTURE pointpoint71,1211 + 1 CELLS +FIELD p.xp.x72,1262 + 1 CELLS +FIELD p.yp.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 3d9d626..8629294 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 -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 - 9 field >field136,582 - 5 field >field237,605 +forth-src/test-forth.fth,948 +: a-forth-worda-forth-word20,301 +99 constant a-forth-constant!a-forth-constant!22,343 +55 value a-forth-value?a-forth-value?23,373 +create :a-forth-dictionary-entry:a-forth-dictionary-entry24,397 +defer #a-defer-word#a-defer-word27,460 +: (another-forth-word)(another-forth-word)29,481 + 9 field >field1>field136,582 + 5 field >field2>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 +2000 buffer: #some-storage#some-storage41,657 +code assemby-code-wordassemby-code-word43,685 +: a-forth-worda-forth-word50,870 +: (foo)(foo)55,988 +: foofoo56,1000 +: create-barcreate-bar58,1015 +3 4 2constant 2const2const61,1074 +2const 2value 2val2val62,1095 +2variable 2var2var63,1114 +3.1415e fconstant fconstfconst65,1130 +fconst fvalue fvalfval66,1155 +fvariable fvarfvar67,1174 +synonym mypimypi69,1190 +BEGIN-STRUCTURE pointpoint71,1211 + 1 CELLS +FIELD p.xp.x72,1262 + 1 CELLS +FIELD p.yp.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 1dff768..8e246c1 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 -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 - 9 field >field136,582 - 5 field >field237,605 +forth-src/test-forth.fth,948 +: a-forth-worda-forth-word20,301 +99 constant a-forth-constant!a-forth-constant!22,343 +55 value a-forth-value?a-forth-value?23,373 +create :a-forth-dictionary-entry:a-forth-dictionary-entry24,397 +defer #a-defer-word#a-defer-word27,460 +: (another-forth-word)(another-forth-word)29,481 + 9 field >field1>field136,582 + 5 field >field2>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 +2000 buffer: #some-storage#some-storage41,657 +code assemby-code-wordassemby-code-word43,685 +: a-forth-worda-forth-word50,870 +: (foo)(foo)55,988 +: foofoo56,1000 +: create-barcreate-bar58,1015 +3 4 2constant 2const2const61,1074 +2const 2value 2val2val62,1095 +2variable 2var2var63,1114 +3.1415e fconstant fconstfconst65,1130 +fconst fvalue fvalfval66,1155 +fvariable fvarfvar67,1174 +synonym mypimypi69,1190 +BEGIN-STRUCTURE pointpoint71,1211 + 1 CELLS +FIELD p.xp.x72,1262 + 1 CELLS +FIELD p.yp.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 fdcbd57..37294aa 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 -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 - 9 field >field136,582 - 5 field >field237,605 +forth-src/test-forth.fth,948 +: a-forth-worda-forth-word20,301 +99 constant a-forth-constant!a-forth-constant!22,343 +55 value a-forth-value?a-forth-value?23,373 +create :a-forth-dictionary-entry:a-forth-dictionary-entry24,397 +defer #a-defer-word#a-defer-word27,460 +: (another-forth-word)(another-forth-word)29,481 + 9 field >field1>field136,582 + 5 field >field2>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 +2000 buffer: #some-storage#some-storage41,657 +code assemby-code-wordassemby-code-word43,685 +: a-forth-worda-forth-word50,870 +: (foo)(foo)55,988 +: foofoo56,1000 +: create-barcreate-bar58,1015 +3 4 2constant 2const2const61,1074 +2const 2value 2val2val62,1095 +2variable 2var2var63,1114 +3.1415e fconstant fconstfconst65,1130 +fconst fvalue fvalfval66,1155 +fvariable fvarfvar67,1174 +synonym mypimypi69,1190 +BEGIN-STRUCTURE pointpoint71,1211 + 1 CELLS +FIELD p.xp.x72,1262 + 1 CELLS +FIELD p.yp.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 ce4069d..4521d32 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 -- 2.1.4 --=-=-=--