Continuaciones de línea en Envision

Continuaciones de línea














La gramática de Envision ofrece mecanismos de continuación de línea tanto implícitos como explícitos; es decir, la posibilidad de escribir código que se propaga a varias líneas como si fueran una sola. La continuación de línea explícita utiliza el símbolo \. Sin embargo, cuando una línea termina con un token que no puede ser un final de línea, la gramática supone que se trata de una continuación de línea.

Resumen

La regla de continuación de línea es la siguiente: si una secuencia (línea nueva, sangría) está precedida por un token que no puede ser un final de línea o seguida de un token que no puede ser un comienzo de línea, la secuencia (nueva línea, sangría) se ignora completamente. Por ejemplo, & no puede estar al final de una línea, por lo que no es posible separar:
where ThisIsAVeryLongConditionExpression & 
      ThisIsAnotherVeryLongConditionExpression
  A = sum(B)

Esta sintaxis es más compacta y preferible a la alternativa que utiliza el símbolo de continuación explícito:
where ThisIsAVeryLongConditionExpression & \
      ThisIsAnotherVeryLongConditionExpression
  A = sum(B)

De modo similar, ni if ni at pueden aparecer al comienzo de una línea, por lo que es posible escribir:
A = sum(B) by [Key, Key, Key]
           at [Key, Key, Key]
           if Condition

Tokens de continuación

Solo los tokens que no pueden aparecer al final de una línea son elegibles para la continuación de una línea. Esos tokens son los siguientes:

  • +, -, ~, not
  • ^, ^*, >>, <<
  • *, /., /, mod, **, +*, -*
  • <=, <, >=, >, ==, !=, ~~, !~
  • &, |
  • :=, =

Al mismo tiempo, los tokens de palabra clave infijo no puede estar al comienzo de una línea:

  • by, at, if, or, cross, over, sort
  • into
  • as