caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Marcin 'Qrczak' Kowalczyk" <qrczak@knm.org.pl>
To: caml-list@inria.fr
Subject: Re: [Caml-list] Re: [Caml-announce] OCamldoc
Date: 11 Oct 2001 20:13:17 GMT	[thread overview]
Message-ID: <slrn9sbvat.8ai.qrczak@qrnik.zagroda> (raw)
In-Reply-To: <9q4tft$88t$1@qrnik.zagroda>

Thu, 11 Oct 2001 21:32:11 +0200, Xavier Leroy <xavier.leroy@inria.fr> pisze:

> But: languages where indentation is significant (Haskell, Occam,
> Python) have bad reputation as being 1- harder to parse (for a
> program), and 2- intolerant w.r.t. cut-and-paste or machine-generated
> code.  2- is perhaps less of a problem for documentation comments
> (they are rarely machine-generated :-), but 1- worries me.  I've been
> hacking Lex and Yacc for years, still I do not have the slightest idea
> on how to take indentation into account in a Lex/Yacc parser...

I've recently implemented a toy language with significant layout.
Conclusions:

It's easy to parse with a lexer written by hand and a parser generated
by Happy (Yacc for Haskell). What is needed (and what Happy provides):
a state threaded through both lexer and parser. The lexer converts
layout to virtual brackets of some sort and virtual semicolons.

It's easy to write a lexer by hand in a functional language. I don't
know about handling layout with Lex. Parsing is not affected by layout.

Significant layout is practical for languages with enough static
checking (either by static typing or by a redundant grammar). It's
impractical for languages where almost any sequence of tokens is
valid at compile time.

In particular it works for Haskell (both reasons) and Python
(grammar with enough amount of redundancy). It didn't work well
for my language :-)

I'm sure it would work for core OCaml, but there might be problems
with ocamldoc if errors in layout of special comments are generally
not catched and just change the meaning.

-- 
 __("<  Marcin Kowalczyk * qrczak@knm.org.pl http://qrczak.ids.net.pl/
 \__/
  ^^                      SYGNATURA ZASTĘPCZA
QRCZAK

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


  parent reply	other threads:[~2001-10-11 20:21 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-09 12:30 Dave Berry
2001-10-10 11:08 ` Benjamin C. Pierce
2001-10-10 13:33   ` Sven
2001-10-10 14:10     ` Jacques Garrigue
2001-10-12  6:23       ` Francois Pottier
2001-10-12  6:50         ` Daniel de Rauglaudre
2001-10-10 15:12     ` Benjamin C. Pierce
2001-10-10 15:25       ` Stefano Lanzavecchia
2001-10-10 15:39         ` Benjamin C. Pierce
2001-10-10 15:44           ` Stefano Lanzavecchia
2001-10-10 18:45           ` Maxence Guesdon
2001-10-10 19:38             ` Benjamin C. Pierce
2001-10-11  7:23               ` Florian Hars
2001-10-12  6:28             ` Francois Pottier
2001-10-12  9:10             ` Sven
2001-10-12  9:39               ` Markus Mottl
     [not found]             ` <9q7886$2p8$1@qrnik.zagroda>
2001-10-13  9:19               ` Marcin 'Qrczak' Kowalczyk
2001-10-10 15:36       ` Thorsten Ohl
2001-10-10 17:10       ` Patrick M Doane
2001-10-10 19:39         ` Benjamin C. Pierce
2001-10-10 15:25     ` Benjamin C. Pierce
2001-10-10 17:07   ` Patrick M Doane
2001-10-10 17:25     ` Sven
2001-10-10 17:44       ` [Caml-list] Re: Emacs comment support (was OCamldoc) Patrick M Doane
     [not found]       ` <Pine.BSF.3.96.1011010133900.56825G-100000@fledge.watson.or g>
2001-10-10 19:25         ` Chris Hecker
2001-10-11 19:32   ` [Caml-list] Re: [Caml-announce] OCamldoc Xavier Leroy
2001-10-12  8:29     ` Andreas Rossberg
2001-10-12  8:57     ` Didier Remy
2001-10-12  9:27       ` Fabrice Le Fessant
2001-10-12 10:36       ` Benjamin C. Pierce
2001-10-12 13:13         ` Francois Pottier
2001-10-12 17:23           ` Alan Schmitt
2001-10-13 11:49           ` Benjamin C. Pierce
2001-10-13 13:46             ` Jimmie Houchin
2001-10-14 12:50             ` Frank Atanassow
     [not found]   ` <9q4tft$88t$1@qrnik.zagroda>
2001-10-11 20:13     ` Marcin 'Qrczak' Kowalczyk [this message]
     [not found] <9q1pg2$85h$1@qrnik.zagroda>
2001-10-10 15:35 ` Marcin 'Qrczak' Kowalczyk
  -- strict thread matches above, loose matches on Subject: below --
2001-10-09 11:40 Dave Berry
2001-10-09 12:14 ` Benjamin C. Pierce
2001-10-09  9:42 Dave Berry
2001-10-09 17:26 ` Maxence Guesdon
2001-10-10 13:29   ` Sven
2001-10-14  2:05     ` Mike Leary
2001-10-08 21:21 Maxence Guesdon
2001-10-09  6:26 ` [Caml-list] " Francois Pottier
2001-10-09 10:20   ` Jerome Vouillon
2001-10-09 11:41     ` Eric C. Cooper
2001-10-09 17:30     ` Maxence Guesdon
2001-10-09 14:26       ` Patrick M Doane
2001-10-09 21:12       ` rbw3
2001-10-10  9:19         ` Francois Pottier
2001-10-10 12:35           ` rbw3
2001-10-10 13:26     ` Sven
2001-10-09 14:46   ` Maxence Guesdon
2001-10-09  8:53     ` Fabrice Le Fessant

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=slrn9sbvat.8ai.qrczak@qrnik.zagroda \
    --to=qrczak@knm.org.pl \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).