comp.lang.ada
 help / color / mirror / Atom feed
From: "J-P. Rosen" <rosen@adalog.fr>
Subject: Re: GNAT: no more exception raised on illformed text file?
Date: Tue, 07 Feb 2012 07:47:50 +0100
Date: 2012-02-07T07:47:50+01:00	[thread overview]
Message-ID: <jgqhem$4d9$1@dont-email.me> (raw)
In-Reply-To: <8801c492-52d4-47be-a976-06f10de5c1df@18g2000yqe.googlegroups.com>

Le 06/02/2012 20:04, Shark8 a �crit :
>> Seems my FSF GNAT (*) does not raise an exception anymore when
>> encountering the last line of a malformed text file; that is, a text file
>> whose last line is not terminated with an end-of-line.
> 
> Such a file is NOT a malformed text-file; that definition is a UNIX-
> ism and therefore applicable ONLY to the UNIX/LINUX world. In Windows,
> for example, a user in Notepad (or wordpad, or any other editor) can
> save a text-file without such a termination (as Adam points out) and
> it IS a valid text-file precisely because Windows does not define a
> text-file in that manner. (IIRC all that Windows needs is the ASCII
> EOF character.)
You miss the point here. We are talking about a malformed file from the
Ada POV.

In Ada, a text is terminated by an End_Of_Line_Mark, followed by an
End_Of_Page_Mark, followed by an End_Of_File_Mark, but the standard does
not say how these marks are represented in the file.

IF an implementation chooses to represent EOL as LF, EOP as FF, and EOF
as ^Z, then any file that does not end with LF+FF+^Z is malformed. Such
an implementation is legal, but user hostile. Better implementations are
more flexible: Gnat f.e. accepts CR, LF, CR+LF and LF+CR as EOL.
Most implementations accept the physical end of file as EOF, and
generally as EOP+EOF if there is no explicit EOP.

The only thing required by the standard is that a file written by an Ada
program can be read by an Ada program (using the same compiler of
course). It is not specified that an Ada program can read a file
produced by a text editor. However, if you are a compiler vendor, you'd
better choose an implementation that accepts it, or you won't sell many
compilers!

-- 
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr



      parent reply	other threads:[~2012-02-07  6:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-06  7:08 GNAT: no more exception raised on illformed text file? Yannick Duchêne (Hibou57)
2012-02-06 15:33 ` J-P. Rosen
2012-02-06 16:03   ` Yannick Duchêne (Hibou57)
2012-02-06 16:27   ` Adam Beneschan
2012-02-06 19:04 ` Shark8
2012-02-06 19:45   ` Adam Beneschan
2012-02-07  6:47   ` J-P. Rosen [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox