From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,32178b9acf403f40 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-02-26 03:50:45 PST Path: supernews.google.com!sn-xit-02!supernews.com!news.gv.tsc.tdk.com!falcon.america.net!sunqbc.risq.qc.ca!newsfeeds.belnet.be!news.belnet.be!newsfeed.online.be!newsfeed01.sul.t-online.de!t-online.de!newsfeed.easynews.net!easynews.net!news-FFM2.ecrc.net!news.iks-jena.de!lutz From: lutz@iks-jena.de (Lutz Donnerhacke) Newsgroups: comp.lang.ada Subject: Re: Regex and/or LaTeX Date: 26 Feb 2001 11:41:00 GMT Organization: IKS GmbH Jena Distribution: world Message-ID: References: <972rhk$a13$1@drcomp.erfurt.thur.de> <1sFl6.2330$mX4.169381@bgtnsc06-news.ops.worldnet.att.net> <978ke2$4pi$2@drcomp.erfurt.thur.de> NNTP-Posting-Host: taranis.iks-jena.de Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: slrn/0.9.6.3 (Linux) Xref: supernews.google.com comp.lang.ada:5535 Date: 2001-02-26T11:41:00+00:00 List-Id: * Adrian Knoth wrote: > procedure texstring (ausdruck : in out ustring) is > tmp : string := To_string(ausdruck); > hs : ustring := To_Ustring(""); > begin > ausdruck := To_ustring(""); > for I in tmp'range loop > case tmp(I) is > when '&' => hs := To_Ustring("\&"); > when '%' => hs := To_Ustring("\%"); > when others => hs := To_Ustring(tmp(I) & ""); > end case; > ausdruck := ausdruck & hs; > end loop; > end texstring; This seems to be Perl Style. function texify (ausdruck : String; escape_char : Character := '\\'; to_be_escaped : String := "\\{}[]%^_") return String is pattern : Ada.Strings.Maps.Character_Set := Ada.Strings.Maps.To_Set (to_be_escaped); pos : Ada.Strings.Fixed.Index (ausdruck, pattern); begin if pos = 0 then return ausdruck; elsif i = ausdruck'Last then return ausdruck (ausdruck'First .. i - 1) & escape_char & ausdruck (i); else return ausdruck (ausdruck'First .. i - 1) & escape_char & ausdruck (i) & texify (ausdruck (i + 1 .. ausdruck'Last), escape_char, to_be_escaped); end if; end texify;