Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Thu, 20 Aug 2009 10:36:20 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n7K8aK41029367 for ; Thu, 20 Aug 2009 10:36:20 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n7K8XJQr011643 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 20 Aug 2009 10:33:20 +0200 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n7JM1XJx023216; Thu, 20 Aug 2009 10:33:14 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 286518 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 20 Aug 2009 10:33:14 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n7K8XEh1007994 for ; Thu, 20 Aug 2009 10:33:14 +0200 Received: from ueamailgate01.uea.ac.uk (ueamailgate01.uea.ac.uk [139.222.131.184]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n7K8X1rI010921 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 20 Aug 2009 10:33:05 +0200 Received: from ueams02.uea.ac.uk (ueams02.uea.ac.uk [139.222.131.131]) by ueamailgate01.uea.ac.uk (8.13.1/8.13.1) with ESMTP id n7K8X1DD005335 for ; Thu, 20 Aug 2009 09:33:01 +0100 Received: from [139.222.114.191] by ueams02.uea.ac.uk with esmtp (Exim 4.69) (envelope-from ) id 1Me34q-0000SB-BI for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 20 Aug 2009 09:32:56 +0100 User-Agent: Thunderbird 2.0.0.22 (Windows/20090605) MIME-Version: 1.0 References: <4A7921CF.5020803@morningstar2.co.uk> <4A86949D.3090500@morningstar2.co.uk> <4A886BA8.2000209@morningstar2.co.uk> <0417DF73-EC19-4262-B9DF-5C870D47BFCE@gmail.com> <4A893816.2090807@residenset.net> <4A89610D.8060108@morningstar2.co.uk> <4A8C71CC.7000006@residenset.net> <4A8D0048.4070101@morningstar2.co.uk> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Canit-CHI2: 0.00 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN, outgoing) X-CanItPRO-Stream: UEA:outgoing (inherits from UEA:default,base:default) X-Canit-Stats-ID: 28589752 - 5f420dd20a56 X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 X-Scanned-By: CanIt (www . roaringpenguin . com) on 139.222.131.184 Message-ID: <4A8D0A40.4030509@morningstar2.co.uk> Date: Thu, 20 Aug 2009 09:33:04 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: xparse To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <4A8D0048.4070101@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -6.599 () BAYES_00,RCVD_IN_DNSWL_MED Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 20 Aug 2009 08:36:20.0937 (UTC) FILETIME=[4B275390:01CA2171] Status: R X-Status: X-Keywords: X-UID: 5961 Joseph Wright wrote: >> * The overall structure of the code starts with lots of little things >> (macros concerned with parsing specific argspecs) and ends (I'm >> guessing, from xparse-alt) with putting them together. The more literate >> approach would be to start with the big picture -- either from the "what >> goes on at run-time" or "what goes on at define-time" point of view -- >> so that one knows what the little things will fit into when one gets to >> them. > > This reflects how I think, I suspect. I like to start at the low level > and work up, hence variables come first (after the lead-off), then > internal functions, the user functions. I've divided internal functions > into what seem to me to be logical "blocks", then I do everything > alphabetically. So I can quickly find a function if I know its name. (I > never read code from start to end, or even in typeset form. I always > read it in my editor, find a function, read it, then find the next > function, etc. So for me alphabetical is best.) In my defence, xparse > was in roughly the same order before any changes were made by me. I should add that I'm happy to alter things: obviously, I might need some suggestions on an order more helpful to other people. -- Joseph Wright