anchor.diff:  	 * @return the macro value string
   	 *         or "" if macro is invalid. In this case an error marker is also created
   	 */
  -	private String getMacroValue( Token aMacroToken, String aErrorFormatStr ) {
  -		String definition = aMacroToken.getText().substring( 1, aMacroToken.getText().length() );
  -		String value = getDefinitionValue( definition );
  +	private String getMacroValue( final Token aMacroToken, final String aErrorFormatStr ) {
  +		final String definition = getMacroName( aMacroToken.getText() );
  +		final String value = getDefinitionValue( definition );
   		if ( value == null ) {
  -			String errorMsg = String.format( aErrorFormatStr, definition );
  +			final String errorMsg = String.format( aErrorFormatStr, definition );
   			reportError( errorMsg, aMacroToken, aMacroToken );
   			return "";
   		}
  
positive.code: 	private static final String DEFINITION_NOT_FOUND_FLOAT   = "No macro or environmental variable defined %s could be found, using 0.0 as a replacement value.";
  	private static final String DEFINITION_NOT_FOUND_BOOLEAN = "Could not resolve definition: %s using \"true\" as a replacement.";
  
  	private List<TITANMarker> mWarnings = new ArrayList<TITANMarker>();
  	
  	private List<ISection> mSections = new ArrayList<ISection>();
  
negative.code: import org.eclipse.core.resources.IFile;
  
  import java.util.Map;
  import java.util.regex.Matcher;
  import java.util.regex.Pattern;
  }
  
  @members{
  