simplify grammar:  'newlines' token is unnecessary; fold in 'special' rule as local because it's only used in one other place
semicolon-delimited strings:
 - fix grammar: they must be preceded by newline
 - tests and implementation follow suit

semicolon-leading-unquoted values:
 - may be opened by semicolon
 - opening ; may be preceded by newline, if no closing newline/;
   sequence is found
test script:  verbose output
changes:
 - add 'global_' keyword
 - make keywords case-insensitive
 - allow unquoted values to start with 'stop_', 'loop_', and 'global_' if
   they're followed by more characters
 - allow 'data_' as an unquoted value

add these changes to spec, implementation, and tests

also alpha-substitute a few instances of 'input' as a variable
  name, since it's shadowing the built-in