New in 2.7.3:

! new version of samples/string.vch, with Mid[3], Lower, and Upper functions.

* Fixed bug where garbage at the end of a function definition was not noticed.

* Minor fixes to unparse routines to work correctly (e.g., show
  backslashes correctly).

* Minor fixes of variable scoping: adding my, capitalizing global
  variables.

* Fixed so can run on Linux as well as Windows (mainly pathname separators).


New in 2.7.2:

! Standard version of Vocola assumes English and turns on spoken forms
  for numbers 0..9 in ranges automatically.  Combined installer version
  (2.7.2I) recognizes the current language, and turns on appropriate
  spoken forms for 0..9 when they are known.

! New feature '$set numbers "word,...";' to deal with corrupted DNS
  profiles and the DNS 11 bug with <_anything>.

* Fixed range syntax, enforcement that alternative sets may not contain
  a range and something else.

* Bug fix for NatLink/DNS bug where allResults true on any grammer
  (including non-Vocola ones) causes os.startfile and
  win32api.ShellExecute to crash DNS.

* There is now at most one Vocola command folder: the one specified when
  using an installer, otherwise NatLink\Vocola\commands if it exists.


New in 2.7.1:

! Vocola can now be extended with extensions written in Python.


New in 2.7:

! Code generation for actions completely rewritten

! Runtime errors are now caught and displayed in a more user-friendly
  manner.  (No incomprehensible Python stack traces anymore.)

! New built-in EvalTemplate, which provides a more powerful version of Eval.

* Eval is now implemented via transformation to EvalTemplate.

! User functions are now implemented by unrolling; this allows passing
  instructions like SendDragonKeys(-), not just string-valued
  expressions, to user functions.

! How underscores in keystroke strings (e.g., "hello{enter_2}") are
  handled has changed:

  Now underscores are converted only just before a keystroke sending
  procedure like SendDragonKeys is called; moreover, only underscores
  that occur in the right place in a keystroke are converted.  E.g.,
  {__2} types __, not "  ".

  This is much more consistent than the previous behavior, which could
  convert underscores not part of a keystroke (e.g., {a}_{b} used to
  produce "a b", as well as failed to convert underscores that were part
  of a keystroke if the entire keystroke was not contained in a single
  string action (e.g., {left_ F(x)} didn't work before).

* Fixed a bug making ShiftKey not work.

* Fixed a bug where combining <_anything> and an optional word caused
  only the first word of the <_anything> to be returned.

* New samples file, _Dragon_help.vcl, showing how to use the HTMLHelp
  call to display help for Vocola calls using Dragon NaturallySpeaking
  professional/legal/medical.

* Fixed a bug where if the first error in a Vocola file was an undefined
  variable reference, then the (base) file name containing the error(s)
  was not displayed.
