comp.lang.ada
 help / color / mirror / Atom feed
From: Christos Chryssochoidis <C.Chryssochoidis@gmail.com>
Subject: Re: Range types
Date: Mon, 22 Oct 2007 14:14:44 +0300
Date: 2007-10-22T14:14:44+03:00	[thread overview]
Message-ID: <1193051690.350063@athprx04> (raw)
In-Reply-To: <ygefy034nqi.fsf@hugsarin.dmusyd.edu>

Jacob Sparre Andersen wrote:
> Christos Chryssochoidis wrote:
> 
>> I would like to define a subtype of Wide_Character for a program
>> that processes (unicode) text. This type would represent the Greek
>> letters.
> 
> This sounds like what enumerated types are for.  You could do it like
> this:
> 
>    type Faroese_Letter is ('a', 'A', 'b', 'B', 'd', 'D', '�', '�',
>                            'e', 'E', [...],
>                            'y', 'Y', '�', '�', '�', '�', '�', '�');
>    -- optional representation clause
> 
>    function To_Wide_Wide_Character (Item : in Faroese_Letter)
>      return Wide_Wide_Character;
> 
>    function To_Faroese_Letter (Item : in Wide_Wide_Character)
>      return Faroese_Letter;
> 
> The conversion functions could make use of representation clauses,
> "Image" and "Value" functions, or tables.
> 
>> Greek letters in Unicode, with all their diacritics, are
>> located in two separate ranges: 0370 - 03D7 and 1F00 - 1FFF. That's
>> 360 characters to write in an enumeration... Since gaps are not
>> allowed in ranges, I 'm thinking instead of defining such a type, to
>> define a function that would accept a Wide_Character as argument and
>> return a boolean value indicating whether the given Wide_Character
>> falls in the ranges of the Greek characters.
> 
> This could be done very simply using Ada.Strings.Maps.
> 
> How you should do it depends strongly on what you actually need your
> Greek_Letter type for.
> 
> Greetings,
> 
> Jacob

Thanks! Ada.Strings.Wide_Maps seems very helpful for what I want to do. 
Basically, what I would like to do is to write a program that given a 
text file in utf8 encoding, which would contain ancient greek text, 
which is written with all the diacritic marks on the letters, this 
program would load the contents of the file in memory, strip the 
in-memory text contents from all the diacritics except those used in 
today's "modern" Greek, and write the modified contents to a new file of 
the user's choosing. For this it would be nice if there were some 
package for regular expressions for Ada. Then if I succeeded in the 
mentioned task,  I 'd like to do some natural language processing (NLP, 
that is linguistics processing) with my program, but I don't know if Ada 
would be an appropriate language for such a task (NLP). I've seen on the 
web references to NLP applications with functional languages or logic 
programming languages, but not many implemented with imperative 
languages... (Sorry for getting of topic...)

Thanks very much,
Christos



  reply	other threads:[~2007-10-22 11:14 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-21 19:15 Range types Christos Chryssochoidis
2007-10-21 20:23 ` Niklas Holsti
2007-10-21 21:28   ` Christos Chryssochoidis
2007-10-22  0:06     ` Robert A Duff
2007-10-22  7:23     ` Jacob Sparre Andersen
2007-10-22 11:14       ` Christos Chryssochoidis [this message]
2007-10-22 12:33         ` Georg Bauhaus
2007-10-22 19:08           ` Christos Chryssochoidis
2007-10-23 23:52         ` anon
2007-10-24 12:57           ` Christos Chryssochoidis
2007-10-21 21:53 ` anon
2007-10-21 22:38   ` Christos Chryssochoidis
replies disabled

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