Karim BELABAS on Thu, 21 Feb 2002 22:05:04 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: flisseq() and filtre() |
On Sat, 12 Jan 2002, Iwao KIMURA wrote: > I am now trying to write a C program, using pari library, evaluating > some gp-expressions written on a file. These gp-expressions contain some > comments, spaces, line breaks and line-continuation `\', like > > v=[[x^5-x^4-4*x^3+3*x^2+3*x-1,[5,0],[5,1,1],[14641,1],[1,x,x^2,x^3,x^4],[1,[],[],[]],1.635694125589697174263040903,[2,[-1,0,0,0,0]~],[[1,0,-3,0,1]~,[-1,-1,1,0,0]~,[0,1,0,0,0]~,[0,-2,0,1,0]~]],\ > [x^5-5*x^3-x^2+3*x+1,[5,0],[120,-1,1],[24217,1],[1,x,x^2,x^3,x^4],[1,[],[],[]],2.399421131323994137564412027,[2,[-1,0,0,0,0]~],[[-3,1,5,0,-1]~,[-3,-3,9,1,-2]~,[-2,1,5,0,-1]~,[1,4,0,-1,0]~]]]; > > My program reads whole of the file, constructs single string by > appending all of lines, and evaluates the string by passing it to > flisseq(). > > But the program stops with message `unexpected character...' and > displays line-continuation `\' as unexpected ones. > > I think flisseq() (more precisely, filtre()) should filter out > `\'. Or, is there any better way to do what I want to do? There used to be. I started writing a reply to your post, then thought it over, esp. since the filtering problem had already come up in a recent discussion (about readline see pari-dev-1180 and following). So I have rewritten the filtering code in the cvs unstable branch, so that filtre() handles the whole of it, removing all pre/postprocessing code from gp.c [ which used to handle line-continuation items, like braces or '\' ]. In the process, filtre() has also becom reentrant [ there used to be hidden static state variables ]. Please, check whether it solves your problems and that you don't run into anything unexpected. Cheers, Karim. P.S: if you want to check this patch, please update to the current snapshot of pari-2.2.3 via the CVS server. -- Karim Belabas Tel: (+33) (0)1 69 15 57 48 Dép. de Mathematiques, Bat. 425 Fax: (+33) (0)1 69 15 60 19 Université Paris-Sud Email: Karim.Belabas@math.u-psud.fr F-91405 Orsay (France) http://www.math.u-psud.fr/~belabas -- PARI/GP Home Page: http://www.parigp-home.de/