Am 02.06.2018 um 15:14 schrieb Sven Barth via fpc-pascal:
Mark Morgan Lloyd <markmll.fpc-pas...@telemetry.co.uk
<mailto:markmll.fpc-pas...@telemetry.co.uk>> schrieb am Sa., 2. Juni
2018, 10:53:
However as Dennis points out + is also essential for vector
operations.
Perhaps either leaving it to the programmer to define what's needed
would be the best approach, or alternatively splitting dynamic arrays
into mathematical vectors and non-mathematical collections. Or
relaxing
the requirement that only predefined operators can be redefined,
so that
something like _ could be used for concatenation.
That needlessly complicates the parser as the compiler still needs to
know them and they also need to be part of its operator precedence
rules. Don't complicate the language for nothing! And in the end
operator overloads are one of the best examples for syntactic sugar as
you can easily achieve the same result with functions and methods.
Regards,
Sven
This is somehow off topic of course,
but IMO it is strange to use + for string concatenation;
I always have bad feelings about this. This whole thread would
not exist, if FreePascal had gone another direction like PL/1, for example,
where the string concatenation operator is ||
(and DB2, and - probably - other SQL dialects).
Where does this + for string concat come from?
(Of course, || has some codepage issues, but that's another story,
and it means logical or in other languages ...)
BTW:
this is (part of) the input for the scanner generator
for the New Stanford Pascal compiler:
SYLPARENT := '(';
SYRPARENT := ')';
SYLBRACK := '[' OR '(.' OR '(/';
SYRBRACK := ']' OR '.)' OR '/)';
SYCOMMA := ',';
SYSEMICOLON := ';';
SYARROW := '->' OR '@' OR '^';
SYPERIOD := '.';
SYDOTDOT := '..';
SYCOLON := ':';
SYPLUS := '+';
SYMINUS := '-';
SYMULT := '*';
SYSLASH := '/';
SYEQOP := '=';
SYNEOP := '<>';
SYGTOP := '>';
SYLTOP := '<';
SYGEOP := '>=';
SYLEOP := '<=';
SYOROP := '|';
SYANDOP := '&';
SYASSIGN := ':=';
SYCONCAT := '||';
if you want to change the representation of the symbols, you only change
here.
Kind regards
Bernd
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal