anchor.diff:  // certainIdentifier instead of ambiguousIdentifier for preventing ambiguity with statement keywords 
   iCS_B_ProcedureCall : certainIdentifier (WS argsCall)?;
   
  -iCS_B_MemberProcedureCall : implicitCallStmt_InStmt? '.' ambiguousIdentifier typeHint? (WS argsCall)? dictionaryCallStmt?;
  +iCS_B_MemberProcedureCall : implicitCallStmt_InStmt? DOT ambiguousIdentifier typeHint? (WS argsCall)? dictionaryCallStmt?;
   
   
   // iCS_S_MembersCall first, so that member calls are not resolved as separate iCS_S_VariableOrProcedureCalls
  
positive.code: 
  chdriveStmt : CHDRIVE WS valueStmt;
  
  closeStmt : CLOSE (WS valueStmt (WS? ',' WS? valueStmt)*)?;
  
  constStmt : (visibility WS)? CONST WS constSubStmt (WS? ',' WS? constSubStmt)*;
  
  constSubStmt : ambiguousIdentifier typeHint? (WS asTypeClause)? WS? EQ WS? valueStmt;
  
  dateStmt : DATE WS? EQ WS? valueStmt;
  
  declareStmt : (visibility WS)? DECLARE WS (FUNCTION | SUB) WS ambiguousIdentifier WS LIB WS STRINGLITERAL (WS ALIAS WS STRINGLITERAL)? (WS? argList)? (WS asTypeClause)?;
  
  deftypeStmt : 
  	(
  
negative.code: 
  comparisonOperator : LT | LEQ | GT | GEQ | EQ | NEQ | IS | LIKE;
  
  complexType : ambiguousIdentifier (DOT ambiguousIdentifier)*;
  
  fieldLength : MULT WS? (INTEGERLITERAL | ambiguousIdentifier);
  
  letterrange : certainIdentifier (WS? MINUS WS? certainIdentifier)?;
  
  lineLabel : ambiguousIdentifier COLON;
  
  literal : COLORLITERAL | DATELITERAL | DOUBLELITERAL | FILENUMBER | INTEGERLITERAL | STRINGLITERAL | TRUE | FALSE | NOTHING | NULL;
  
  type : (baseType | complexType) (WS? LPAREN WS? RPAREN)?;
  
  typeHint : AMPERSAND | AT | DOLLAR | EXCLAMATIONMARK | HASH | PERCENT;
  
  visibility : PRIVATE | PUBLIC | FRIEND | GLOBAL;
  
  