3.2.2 Logical Line Grammar

 module-body-logical-structure = *extended-line 
 extended-line = *(line-continuation / non-line-termination-character)  line-terminator  
 line-continuation = 1*WSC underscore line-terminator 
 WSC = (tab-character / eom-character /space-character / DBCS-whitespace / most-Unicode-class-Zs) 
 tab-character = %x0009 
 eom-character = %x0019 
 space-character = %x0020 
 underscore = %x005F 
 DBCS-whitespace = %x3000  
 most-Unicode-class-Zs = <all members of Unicode class Zs which are not CP2-characters> 

An implementation MAY limit the number of characters in an <extended-line>.

For ease of specification it is convenient to be able to explicitly refer to the point that immediately precedes the beginning of a logical line and the point immediately preceding the final <line-terminator> of a logical line. This is accomplished using <LINE-START> and <LINE-END> as terminal symbols of the VBA grammars. A <LINE-START> is defined to immediately precede each logical line and a <LINE-END> is defined as replacing the <line-terminator> at the end of each logical line:

 module-body-lines = *logical-line 
 logical-line = LINE-START *extended-line LINE-END 

When used in an ABNF rule definition <LINE-START> and <LINE-END> are used to indicated the required start or end of a <logical-line>.