Control
Common grammars
Special grammars
 Excel
 Keystrokes
  Grammar
  Modes
 Repeat
 Latex
 Oops
Unimacro test

The grammar definition

Basics

The basic rule should have been:

 
 exported = ({norepkey} | {repkey} [{count}])+;

Implementation

Because with these quasi-recursive rules there have been problems in the past (introduced several NatSpeak versions ago) this basic rule has been changed into (and enhanced with the <before> rule):

 
 exported =  [+] ;
 =   | ;
 = ...

And the further details are, including the <modifier>: rule:

 
 = [  ] ([] | );
 =  {repkey};
 = {count};
 = {character} | {norepkey} | ;
 = ( Eff|Function ) {effcount};
  = (Cap | 'All-Caps' | Shift | Control | Alt|halt) + ;

Lists

The lists {character}, {effcount} and {count} are filled in the python file. The other lists, {repkey} and {norepkey} are filled from the configuration file, so are user configurable. Even for a specific modes.