From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/77079 Path: news.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: [callbacks] proper registration, node subtypes Date: Tue, 26 Jun 2012 14:50:50 +0200 Message-ID: <4FE9B02A.7080608@wxs.nl> References: <20120625133924.GB31738@phlegethon> <4FE87402.3000708@wxs.nl> <20120625145031.GC31738@phlegethon> <4FE9994F.6060403@wxs.nl> <20120626120815.GA7589@phlegethon> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252"; Format="flowed" Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1340715061 13650 80.91.229.3 (26 Jun 2012 12:51:01 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 26 Jun 2012 12:51:01 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Tue Jun 26 14:50:57 2012 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([195.12.62.10]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SjVEN-0001EV-9E for gctc-ntg-context-518@m.gmane.org; Tue, 26 Jun 2012 14:50:55 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id D92DD101EC; Tue, 26 Jun 2012 14:50:54 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id cKNaMldiJMcF; Tue, 26 Jun 2012 14:50:53 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 01FB0101E7; Tue, 26 Jun 2012 14:50:53 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 3E2F9101E7 for ; Tue, 26 Jun 2012 14:50:51 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id o+m-6N7-+2Yn for ; Tue, 26 Jun 2012 14:50:50 +0200 (CEST) Original-Received: from filter4-ams.mf.surf.net (filter4-ams.mf.surf.net [192.87.102.72]) by balder.ntg.nl (Postfix) with ESMTP id F2059101DD for ; Tue, 26 Jun 2012 14:50:49 +0200 (CEST) Original-Received: from smtp.ziggozakelijk.nl (D57D1DA2.static.ziggozakelijk.nl [213.125.29.162]) by filter4-ams.mf.surf.net (8.14.3/8.14.3/Debian-9.4) with ESMTP id q5QCwtBJ021201 for ; Tue, 26 Jun 2012 14:58:56 +0200 X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=10.100.1.100; Original-Received: from [10.100.1.100] (unverified [10.100.1.100]) by pragma-net.nl (SurgeMail 5.3h2) with ESMTP (TLS) id 8304-1713362 for ; Tue, 26 Jun 2012 14:50:47 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 In-Reply-To: <20120626120815.GA7589@phlegethon> X-Authenticated-User: hagen@controller-9 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=213.125.29.162; country=NL; region=03; city=Hattem; latitude=52.4724; longitude=6.0696; http://maps.google.com/maps?q=52.4724,6.0696&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 01Hr0WTQ8 - ec0fde56f736 - 20120626 (trained as not-spam) X-Scanned-By: CanIt (www . roaringpenguin . com) on 192.87.102.72 X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.13 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:77079 Archived-At: On 26-6-2012 14:08, Philipp Gesang wrote: > =B7=B7=B7=B7=B7=B7=B7=B7=B7 > >> On 25-6-2012 16:50, Philipp Gesang wrote: >>> =B7=B7=B7=B7=B7=B7=B7=B7=B7 >>> >>>> On 25-6-2012 15:39, Philipp Gesang wrote: >>>> >>>>> - Does the difference wrt node subtype matter assuming I only >>>>> (a) copy glyph nodes and (b) manipulate their .char field? >>>> >>>> not that much, it's just a state signal for font processing >>> >>> Good to know. >>> >>>>> Any insights on this matter would be greatly appreciated. Regards >>>>> Philipp >>>> >>>> it all depends on what you want to do >>> >>> Traverse the node list of a paragraph before line break from head >>> to tail in sequential order, recursing into sublists where they >>> appear. The callback removes and inserts nodes: which ones >>> depends on the nodes already processed (has a state). >>> >>> Using the previous example code, >>> >>> \startfoo >>> a\hbox{b}c >>> \stopfoo >>> >>> should result in the traversal , , . >> >> \starttext >> >> \startluacode >> >> local function processnestedlist(head,n) >> local current, done =3D head, false >> while current do >> local id =3D current.id >> if id =3D=3D nodes.nodecodes.hlist or id =3D=3D nodes.nodecodes= .vlist then >> local _, d =3D processnestedlist(current.list,n) >> if d then >> done =3D true >> end >> elseif id =3D=3D nodes.nodecodes.hglue_code and current.leader = then >> local _, d =3D processnestedlist(current.leader,n) >> if d then >> done =3D true >> end >> elseif id =3D=3D nodes.nodecodes.glyph then -- todo: dics nodes >> n =3D n + 1 >> print(n,utf.char(current.char)) >> end >> current =3D current.next >> end >> return head, done, n >> end >> >> >> thirddata =3D thirddata or {} >> thirddata.test =3D thirddata.test or { } >> >> thirddata.test.one =3D function(head) >> local head, done, n =3D processnestedlist(head,0) >> print("n of glyphs",n) >> return head, done >> end >> >> nodes.tasks.appendaction ("processors","before","thirddata.test.one") >> >> \stopluacode >> >> \ruledhbox to 10cm {\strut hello \ruledhbox{brave new} world >> \cleaders\hbox{!}\hfil} >> >> \stoptext > > First of all, thanks for the snippet. It=92s insightful already wrt > to the fact that nodes.installattributehandler is considered > unnecessary. But the problem persists. With the code > > a\hbox{b}c > > I get the following output: > > 1 b > n of glyphs 1 > 1 a > 2 b > 2 c > n of glyphs 2 > > So the sequence is , , , where > it should be , , --- the hbox is still > processed first, which I was attempting to avoid. (Also, the > invisible string =93context=94 follows if the callback is active > until the end of file.) it all depends on what callback you use ... you can try a finalizer = instead of a processor as processors normally are called once ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________= ________ If your question is of interest to others as well, please add an entry to t= he Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-cont= ext webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________= ________