Received: from mail.proteosys.com ([62.225.9.49]) by nummer-3.proteosys with Microsoft SMTPSVC(5.0.2195.5329); Wed, 9 Jul 2003 12:17:05 +0200 Received: by mail.proteosys.com (8.12.9/8.12.2) with ESMTP id h69AGtPP019562 for ; Wed, 9 Jul 2003 12:17:03 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.27]) by relay.uni-heidelberg.de (8.12.9/8.12.9) with ESMTP id h69AALmp025738; Wed, 9 Jul 2003 12:10:21 +0200 (MET DST) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C34603.3EDCA680" Received: from listserv (listserv.uni-heidelberg.de [129.206.100.27]) by listserv.uni-heidelberg.de (8.12.3/8.12.3/SuSE Linux 0.6) with ESMTP id h68M02ZN007911; Wed, 9 Jul 2003 12:10:12 +0200 Received: from LISTSERV.UNI-HEIDELBERG.DE by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8d) with spool id 0799 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 9 Jul 2003 12:10:12 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.12.3/8.12.3/SuSE Linux 0.6) with ESMTP id h69AABM9013699 for ; Wed, 9 Jul 2003 12:10:11 +0200 Received: from control.informatik.rwth-aachen.de (control.Informatik.RWTH-Aachen.DE [137.226.53.6]) by relay2.uni-heidelberg.de (8.12.9/8.12.9) with SMTP id h69AADGl012828 for ; Wed, 9 Jul 2003 12:10:13 +0200 (MET DST) Received: (qmail 26950 invoked from network); 9 Jul 2003 10:10:08 -0000 Received: from unknown (HELO i7.informatik.rwth-aachen.de) (137.226.53.122) by control.informatik.rwth-aachen.de with SMTP; 9 Jul 2003 10:10:08 -0000 Received: (qmail 11792 invoked by uid 607); 9 Jul 2003 10:10:08 -0000 In-Reply-To: <16139.118.62805.453383@puma.npc.de>; from jschrod@ACM.ORG on Tue, Jul 08, 2003 at 07:33:42PM +0200 References: <3F075002.72955C93@MartinHensel.de> <3F09CB24.7195F5E7@MartinHensel.de> <16138.9008.870309.967543@zarniwoop.ms25.local> <200307081028.19280.tim@birdsnest.maths.tcd.ie> <16139.118.62805.453383@puma.npc.de> Return-Path: X-OriginalArrivalTime: 09 Jul 2003 10:17:06.0209 (UTC) FILETIME=[3F952110:01C34603] User-Agent: Mutt/1.2.5i X-Scanned-By: MIMEDefang 2.28 (www . roaringpenguin . com / mimedefang) X-Spam-Score: -32.8 () EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_MUTT Content-class: urn:content-classes:message Subject: Re: Invitation for discussion: My suggestion for a LaTeX3 syntax Date: Wed, 9 Jul 2003 11:10:08 +0100 Message-ID: A<20030709121008.A11602@diabolo.informatik.rwth-aachen.de> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Re: Invitation for discussion: My suggestion for a LaTeX3 syntax Thread-Index: AcNGA0AyoZZ66323SHuYwCZKDf8wAw== From: "Achim Blumensath" To: Reply-To: "Mailing list for the LaTeX3 project" Status: R X-Status: X-Keywords: X-UID: 4664 This is a multi-part message in MIME format. ------_=_NextPart_001_01C34603.3EDCA680 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello, On Tue, Jul 08, 2003 at 07:33:42PM +0200, Joachim Schrod wrote: > That's why the ant work of Achim is so interesting, including his > distinction between markup and programming syntax.[*] It's an open > question if O'Caml programs are really good for this problem domain > (I'm not really convinced), Neither am I. I think at least some syntactic sugar is needed to simplify the code. For example, at the moment reading the arguments of a command is quite cumbersome: The code for \setcounter{counter}{number} is value set_counter ps =3D do { let ctr =3D read_expanded_argument ps in let arg =3D Parser.str_to_int (read_expanded_argument ps) in ParseState.set_counter ps ctr arg }; It would be much neater to write something like: command \setcounter (ctr : expanded) (arg : int) =3D { ParseState.set_counter ps ctr arg }; On the other hand, the advantage of using OCaml is that every command has access to all internals of ant. I'm thinking of implementing a special purpose programming language for style files, but that's a lot of work and I won't manage to make it as fast as compiled OCaml code. So probably I'll just write a preprocessor to add some syntactic sugar to OCaml. > but the framework is powerful enough to plug in other style sheets and > to experiment with it. Yes, it would be no problem at all to attach, say, an XML parser to ant, or a graphical interface like Lyx. > [*] Disclaimer: I'm biased here and think that ant has not got the > acknowledgement in the TeX community it deserves. All talk about NTS, > and here we have a system with concepts that is better already. The > concepts are nearer towards the original goals for NTS, too. To be honest, NTS has the big advantage of being complete. ant still lacks support of insertions and a lot of smaller things. Achim -- ________________________________________________________________________ | \_____/ = | Achim Blumensath \O/ \___/\ = | Mathematische Grundlagen der Informatik =3Do=3D \ = /\ \| www-mgi.informatik.rwth-aachen.de/~blume /"\ = o----| ____________________________________________________________________\___|= ------_=_NextPart_001_01C34603.3EDCA680 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Re: Invitation for discussion: My suggestion for a LaTeX3 = syntax

Hello,

On Tue, Jul 08, 2003 at 07:33:42PM +0200, Joachim = Schrod wrote:
> That's why the ant work of Achim is so = interesting, including his
> distinction between markup and programming = syntax.[*] It's an open
> question if O'Caml programs are really good for = this problem domain
> (I'm not really convinced),

Neither am I. I think at least some syntactic sugar is = needed to
simplify the code. For example, at the moment reading = the arguments of a
command is quite cumbersome:

The code for \setcounter{counter}{number} is

  value set_counter ps =3D do
  {
    let ctr =3D read_expanded_argument = ps in
    let arg =3D Parser.str_to_int = (read_expanded_argument ps) in

    ParseState.set_counter ps ctr = arg
  };

It would be much neater to write something = like:

  command \setcounter (ctr : expanded) (arg : = int) =3D
  {
    ParseState.set_counter ps ctr = arg
  };

On the other hand, the advantage of using OCaml is = that every command
has access to all internals of ant.

I'm thinking of implementing a special purpose = programming language for
style files, but that's a lot of work and I won't = manage to make it as
fast as compiled OCaml code. So probably I'll just = write a preprocessor
to add some syntactic sugar to OCaml.

> but the framework is powerful enough to plug in = other style sheets and
> to experiment with it.

Yes, it would be no problem at all to attach, say, an = XML parser to ant,
or a graphical interface like Lyx.

> [*] Disclaimer: I'm biased here and think that = ant has not got the
> acknowledgement in the TeX community it = deserves. All talk about NTS,
> and here we have a system with concepts that is = better already. The
> concepts are nearer towards the original goals = for NTS, too.

To be honest, NTS has the big advantage of being = complete. ant still
lacks support of insertions and a lot of smaller = things.

Achim
--
________________________________________________________________= ________
          &nbs= p;            = ;            =             &= nbsp;           &n= bsp;  | \_____/ |
   Achim = Blumensath          &nb= sp;           &nbs= p;            = ;       \O/ \___/\ |
   Mathematische Grundlagen der = Informatik          &nb= sp;        =3Do=3D  \ /\ = \|
   = www-mgi.informatik.rwth-aachen.de/~blume     &nb= sp;            = /"\   o----|
________________________________________________________________= ____\___|

------_=_NextPart_001_01C34603.3EDCA680--