Almost three weeks ago I replaced old Spad scanner by the
one from interpreter.  This is not entirely clean change,
I added a layer (scwrap2.boot) which essentially pretends
that the new scanner produces the same output as the old
one.

The main merit is that now we have reasonable architecture
of the front end of Spad compiler, which can be incrementally
improved.  We got rid of the old code which had no chance
to work well.  And, since now Spad compiler and interpreter
use the same scanner we have precise control on differences
between keywords they recognize.

>From user point of view changes are small.  One is that
')include' directive now is available for Spad code.
Second, one armed 'if' is better handled, in particular
code from bug 430 now works OK.  Third, piles are now better
handled, so for example one can have vertically aligned table
without using line continuations (previously without line
continuations piling produced semicolons, which caused
syntax errors).  Next, Spad compiler now can distinguish
between piles and blocks in parentheses so that in case
of extra/missing parenthesis or indentation errors can
give better error messages.  ATM messages are the same
as before, but errors can be detected earlier which
should help.  ')if' directive works differently.
Old scanner treated condition as Boot code to evaluate.
New one allows only identifiers as conditions and
treats it as true if there was previous ')assert'
directive on the identifier.

With change there is always risk of regressions.  I know
about one: new scanner is less smart when disabling piling
inside parentheses and I modified 'skpol.spad.pamphlet'
to work around the problem.  Otherwise I have checked
that with new scanner we get the same parse tree as
from the old one, except for two instances of bug 430
which with new scanner works OK, but was misparsed with
the old one.  Also, new scanner found few errors in
the algebra that were undetected with the old one
(I fixed them).

Anyway, now is good time to try new scanner and report
problems/wishes.

-- 
                              Waldek Hebisch
[email protected] 

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en.

Reply via email to