/*******************************************************************************
 * Copyright (c) 2015 Willink Transformations and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     E.D.Willink - initial API and implementation
 *******************************************************************************/
# QVT-D.rc
items:
# General items	
    NAME
    FUNCTION
    CONTEXT
	PARAMETERS
	ANNOTATIONS
    RESULT
    TODO
    SEE ALSO
# FLOCK
    ORIGINAL
    EVOLVED
    IGNORING
    WHEN
# ETL Specific
    FROM
    TO
    GUARD
ignore items:
    HISTORY
    BUGS
item order:
	NAME
    FUNCTION
    CONTEXT
    PARAMETERS
    FROM
    TO
    GUARD
    ANNOTATIONS
    RESULT
    TODO
    SEE ALSO
source items:
    SYNOPSIS
preformatted items:
    INPUTS
    OUTPUTS
format items:
    FUNCTION
    SIDE EFFECTS
options:
    --html
    --multidoc
    --index
    --tabsize 4
headertypes:
    d  "Delete"         robo_deletes
    f  "Flock"          robo_flock          1
    l  "Libraries"      robo_libraries      1
	m  "Migrate"        robo_migrates
	o  "Operations"     robo_operations
	r  "Retype"         robo_retypes
	t  "Transformation" robo_transformations 1
	u  "Rule"			robo_rule
ignore files:
    README
    CVS
    *.bak
    *.classpath
    *.gitignore
    *.properties
    *.project
    *.xml
accept files:
    *.eol
    *.etl
    *.mig
    *.egl
header markers:
    /****
    #****
remark markers:
    *
    #
end markers:
    ****
    #****
header separate characters:
    ,
header ignore characters:
    [
remark begin markers:
    /*
remark end markers:
    */
source line comments:
    //
keywords:
    if
    do
    while
    for