anchor.diff:  	)?;
   
   if_condition_block:
  -	OPAR (name_or_reserved* | expr*)? CPAR if_stat_block
  +	OPAR (name_or_reserved* | expr*) CPAR if_stat_block
  +    | OPAR CPAR if_stat_block
   	| OPAR expr CPAR if_stat_block
  -	| OPAR symbol CPAR if_stat_block;
  +	| OPAR symbol CPAR if_stat_block
  +    ;
   
   if_stat_block: OBRACE block CBRACE | stat;
   
  
positive.code: 		| platformDefinition
  	)*;
  platformDefinition:
  	'#' 'if' platformDefinitionDescription* '#' 'endif';
  platformDefinitionDescription:
  	DEFINED? singleLine componentsDefinition
  	| '#' 'elif' DEFINED? singleLine componentsDefinition
  	| '#' 'else' '#' 'error' singleLine;
  
  componentsDefinition:
  	COMPONENTS componentsDefinitionDetails SCOL;
  
  componentsDefinitionDetails: (componentsDefinitionName ','?)*;
  
  componentsDefinitionName: componentsName;
  
  
negative.code: 		| reservedwords
  	)*;
  
  name_with_char: (atom) (DOT? (chars | symbol | atom))*;
  
  configurationDeclaration:
  	configurationSignature configurationImplementation;
  