行连续

行连续


首页 » 资源 » 此处

Envision语法提供隐式和显式行连续机制,即能够编写跨越多行的代码,就好比编写单行代码一样。显式行连续使用 \ 符号。不过,当一行以不允许作为行尾的令牌结束时,该语法假定将采用行连续。

概述

行连续规则是:如果一个序列(换行符、缩进)前面有一个不能处于行尾的令牌,或者后面跟有一个不能处于行首的令牌时,(换行符、缩进)序列将完全被忽略。例如,行尾不允许使用 ,因此可以进行分割:
where ThisIsAVeryLongConditionExpression & 
      ThisIsAnotherVeryLongConditionExpression
  A = sum(B)

这种语法更紧凑,更适合作为使用显式连续符号的替代方法:
where ThisIsAVeryLongConditionExpression & \
      ThisIsAnotherVeryLongConditionExpression
  A = sum(B)

同样,ifat 不能出现在行首,因此可以这样编写:
A = sum(B) by [Key, Key, Key]
           at [Key, Key, Key]
           if Condition

连续令牌

只有不能出现在行尾的令牌才有具备行连续资格。这些令牌是:

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

与此同时,中缀关键字令牌不能在行首:

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