<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">Am 02.06.2018 um 15:14 schrieb Sven
      Barth via fpc-pascal:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAFMUeB9e3wR7e8q0Gw6kNGwZUAj3ejke0dac4fGBUbAxSjC2qw@mail.gmail.com">
      <div dir="auto">
        <div class="gmail_quote" dir="auto">
          <div dir="ltr">Mark Morgan Lloyd <<a
              href="mailto:markMLl.fpc-pascal@telemetry.co.uk"
              moz-do-not-send="true">markMLl.fpc-pascal@telemetry.co.uk</a>>
            schrieb am Sa., 2. Juni 2018, 10:53:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">However as
            Dennis points out + is also essential for vector operations.
            <br>
            Perhaps either leaving it to the programmer to define what's
            needed <br>
            would be the best approach, or alternatively splitting
            dynamic arrays <br>
            into mathematical vectors and non-mathematical collections.
            Or relaxing <br>
            the requirement that only predefined operators can be
            redefined, so that <br>
            something like _ could be used for concatenation.<br>
          </blockquote>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">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. </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Regards, </div>
        <div dir="auto">Sven </div>
      </div>
      <!--'"--><br>
    </blockquote>
    <br>
    This is somehow off topic of course, <br>
    but IMO it is strange to use + for string concatenation; <br>
    I always have bad feelings about this. This whole thread would <br>
    not exist, if FreePascal had gone another direction like PL/1, for
    example, <br>
    where the string concatenation operator is ||<br>
    (and DB2, and - probably - other SQL dialects). <br>
    <br>
    Where does this + for string concat come from? <br>
    <br>
    (Of course, || has some codepage issues, but that's another story, <br>
    and it means logical or in other languages ...) <br>
    <br>
    BTW: <br>
    <br>
    this is (part of) the input for the scanner generator <br>
    for the New Stanford Pascal compiler: <br>
    <br>
    SYLPARENT := '(';<br>
    <br>
    SYRPARENT := ')';<br>
    <br>
    SYLBRACK := '[' OR '(.' OR '(/';<br>
    <br>
    SYRBRACK := ']' OR '.)' OR '/)';<br>
    <br>
    SYCOMMA := ',';<br>
    <br>
    SYSEMICOLON  := ';';<br>
    <br>
    SYARROW := '->' OR '@' OR '^';<br>
    <br>
    SYPERIOD := '.';<br>
    <br>
    SYDOTDOT := '..';<br>
    <br>
    SYCOLON := ':';<br>
    <br>
    SYPLUS := '+';<br>
    <br>
    SYMINUS := '-';<br>
    <br>
    SYMULT := '*';<br>
    <br>
    SYSLASH := '/';<br>
    <br>
    SYEQOP := '=';<br>
    <br>
    SYNEOP := '<>';<br>
    <br>
    SYGTOP := '>';<br>
    <br>
    SYLTOP := '<';<br>
    <br>
    SYGEOP := '>=';<br>
    <br>
    SYLEOP := '<=';<br>
    <br>
    SYOROP := '|';<br>
    <br>
    SYANDOP := '&';<br>
    <br>
    SYASSIGN := ':=';<br>
    <br>
    SYCONCAT := '||';<br>
    <br>
    if you want to change the representation of the symbols, you only
    change here. <br>
    <br>
    Kind regards<br>
    <br>
    Bernd<br>
  </body>
</html>