anchor.diff:  frequency   : 'FREQUENCY' estimate (',' estimate)*;
   estimate    : statementNumber '(' ufixedConst (',' ufixedConst)* ')';
   
  +
   // http://www.fortran.com/FortranForTheIBM704.pdf#12
   variable   : VAR_ID | FUNC_CANDIDATE;
   // http://www.fortran.com/FortranForTheIBM704.pdf#13
  
positive.code: pause        : 'PAUSE' consoleOutput=ufixedConst?;
  stop         : 'STOP'  consoleOutput=ufixedConst?;
  
  // TODO I/O rules
  // http://www.fortran.com/FortranForTheIBM704.pdf#26
  
  // http://www.fortran.com/FortranForTheIBM704.pdf#37
  dimension   : 'DIMENSION' allocation (',' allocation)*;
  
negative.code:                             subscriptExpression )? )? ')';
  subscriptExpression : constant=ufixedConst
                      | (factor=ufixedConst '*')? index=variable (sign summand=ufixedConst)?;
  
  
  // TODO incomplete
  // http://www.fortran.com/FortranForTheIBM704.pdf#16
  expression : sign? unsigned=unsignedExpression;
  unsignedExpression : '(' expression ')' | variable | subscript | functionCall | ufixedConst | ufloatConst;
  
  
  // http://www.fortran.com/FortranForTheIBM704.pdf#14
  functionCall : function=FUNC_CANDIDATE '(' expression (',' expression)* ')';
  