Bill Allombert on Mon, 17 Sep 2001 13:30:21 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Space removal from the user input |
On Sat, Sep 15, 2001 at 12:19:39PM +0000, Karim Belabas wrote: > On Wed, 5 Sep 2001, Ilya Zakharevich wrote: > > > a1) When GP/PARI reads something, the output is echoed *after* the > > whitespace is removed. Is this intentional, or "it just happens > > this way"? > > > > Of course, it would all be so much cleaner if the parser would actually > output token lists... (the gp2c compiler does that, but it's not exactly > trivial to merge it either:-) Well it is trivial to do, and even to make GP to evaluate syntax tree in place of text (much faster) but unfortunately, in the current state of my parser I cannot parse all GP construct, so it will not be 100% compatible. For example, I cannot parse automatic concatenation, nested functions definition, etc... > > > b) When processing multiline-input from readline, \n is removed too > > agressively. Example: type > > > > print(1) ^V ^J print(2) ENTER > > > > (here ^V and ^J are control-chars). I see: > > > > ? print(1) > > print(2) > > *** unused characters: print(1)print(2) > > > > i.e., \n in the input is removed, resulting in a "wrong error". > > > > Should not filtre() replace '\n' with ';' when in f_READL mode? It should not. The GP grammar include a special self-destructing "end of line token" that is very different from ';',because it ends functions definitions. ? f(x)=print(x) print(2) You mean really { f(x)=print(x) print(2) } and not { f(x)=print(x);print(2) } But there is no way after filtering to represent this invisible token... (it is one of the thing that make the gp2c parser so messy.) > I don't know. 1 ^V^J 2 is definitely not the same as 1; 2 [the former > should store the results "1" and "2" in the history, and output them both; > the latter will disregard "1"]. > > Karim. >