On 01/02/2016 19:33, Marcos Douglas wrote:
V := inline If Condition then ThenExpr else ElseExpr;

ignoring the "inline"

There are 3 styles (ignoring the names of identifiers used), can think of

1) function
  x :=  IfThen(a,b,c);

2) statement with return value
  x :=  If a Then b else c;

3) ternary operator
having 3 arguments, it needs at least 2 tokens to separate them
  x :=  a IfThen b else c;
Of course the operator can have a leading token, and the statement syntax could be an operator.


In cases 2 and 3 (operator) precedences become an issue (unless a terminating "end" is required)
  x :=  If a Then b else c + 3;
should be which
  x :=  (If a Then b else c) + 3;
  x :=   If a Then b else (c + 3);

So function style has the build in clarity on this. But it can be confused with existing functions of the same name.


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to