[Scilab-Dev] legacy 5.x syntax deserves to be abandonned

Stéphane Mottelet stephane.mottelet at utc.fr
Fri Jun 22 10:32:39 CEST 2018


Le 22/06/2018 à 10:28, Stéphane Mottelet a écrit :
> Hello,
>
> While fixing
>
> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/bugzilla.scilab.org/show_bug.cgi?id=15623 
>
> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/bugzilla.scilab.org/show_bug.cgi?id=15624 
>
>
> I discovered that gross syntax errors such as
>
> max(,), max(1,) mean(,)...
>
> are not trapped by the parser. As a consequence, tokens of type 
> internalType:ScilabVoid are given to the gateway in the input arguments.
>
> There are a lot of scilab functions which do not correctly handle 
> this. For example,
>
> max(1,) and atan(1,) crash Scilab
>
> max(,), gives a message about a missing overloading function for 
> ScilabVoid type.
>
> Why such an dumb syntax has been kept as valid in Scilab 6 ? Does even 
> somebody remember if there exist some legacy code needing this ?
>
> There is a potentially huge number of gateways to be fixed because of 
> this too permissive syntax.
>
> However, all problems can be fixed by yanking lines 661:666 in 
> parseScilab.yy (666: Number of the Beast).
>
> S.
>
Here are the error messages after the fix in parseScilab.yy:

--> max(,)
max(,)
      ^
Error: syntax error, unexpected ","

--> max(1,)
max(1,)
       ^^
Error: syntax error, unexpected )

S.

-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet




More information about the dev mailing list