anchor.diff:  ;
   
   pr_MainControllerItemUnixDomainSocket:
  -	UNIXSOCKETS1	ASSIGNMENTCHAR1	u = (YES1 | NO1)					SEMICOLON1?
  -	{	mCfgParseResult.setUnixDomainSocket( Boolean.parseBoolean( $u.getText() ) );
  -	}
  +	UNIXSOCKETS1
  +	ASSIGNMENTCHAR1
  +	u = pr_MainControllerItemUnixDomainSocketValue
  +	SEMICOLON1?
  +	{	mCfgParseResult.setUnixDomainSocket( Boolean.parseBoolean( $u.text ) );
  +		mcSectionHandler.setUnixDomainSocketRoot( $ctx );
  +		mcSectionHandler.setUnixDomainSocket( $u.ctx );
  +	}
  +;
  +
  +pr_MainControllerItemUnixDomainSocketValue:
  +	(YES1 | NO1)
   ;
   
   pr_MainControllerItemKillTimer:
   	KILLTIMER1		ASSIGNMENTCHAR1	k = pr_ArithmeticValueExpression	SEMICOLON1?
   	{	mCfgParseResult.setKillTimer( $k.number.getValue() );
  +		mcSectionHandler.setKillTimerRoot( $ctx );
  +		mcSectionHandler.setKillTimer( $k.ctx );
   	}
   ;
   
   pr_MainControllerItemLocalAddress:
   	LOCALADDRESS1	ASSIGNMENTCHAR1	l = pr_HostName						SEMICOLON1?
  -	{	mCfgParseResult.setLocalAddress( $l.text );	}
  +	{	mCfgParseResult.setLocalAddress( $l.text );
  +		mcSectionHandler.setLocalAddressRoot( $ctx );
  +		mcSectionHandler.setLocalAddress( $l.ctx );
  +	}
   ;
   
   pr_MainControllerItemNumHcs:
   	NUMHCS1			ASSIGNMENTCHAR1	n = pr_IntegerValueExpression		SEMICOLON1?
   	{	mCfgParseResult.setNumHcs( $n.number.getIntegerValue() );
  +		mcSectionHandler.setNumHCsTextRoot( $ctx );
  +		mcSectionHandler.setNumHCsText( $n.ctx );
   	}
   ;
   
   pr_MainControllerItemTcpPort:
   	TCPPORT1		ASSIGNMENTCHAR1	t = pr_IntegerValueExpression		SEMICOLON1?
   	{	mCfgParseResult.setTcpPort( $t.number.getIntegerValue() );
  +		mcSectionHandler.setTcpPortRoot( $ctx );
  +		mcSectionHandler.setTcpPort( $t.ctx );
   	}
   ;
   
  
positive.code: )
  ;
  
  pr_LoggingBitMask:
  	pr_LoggingMaskElement
  	(	LOGICALOR11	pr_LoggingMaskElement
  	)*
  ;
  
  pr_LoggingMaskElement:
  	pr_LogEventType
  |	pr_LogEventTypeSet
  |	pr_deprecatedEventTypeSet
  ;
  
  pr_LogfileName:
  
negative.code: 			return "";
  		}
  		return value;
  	}
  	
  	/**
  	 * Creates a wrapper TerminalNode arount the Token to use it as ParseTree
  	 * @param aToken token to wrap
  	 * @param aParent parent parse tree of the new node
  	 * @return the created TerminalNodeImpl object
  	 */
  	private TerminalNodeImpl newTerminalNode( final Token aToken, final ParseTree aParent ) {
  		TerminalNodeImpl node = new TerminalNodeImpl( aToken );
  		node.parent = aParent;
  		return node;
  	}
  }
  
  options{
  