package org.studiorailgun.conversation.parser.depend;

import edu.stanford.nlp.ling.IndexedWord;

/**
 * A linguistic argument
 */
public class Argument {
    
    /**
     * The type of a given argument
     */
    public static enum ArgumentType {

        /**
         * A noun or collection of words that functions as a noun
         */
        NOMINAL,

        /**
         * A subject of a dependent clause in a compound sentence
         */
        COMPOUND_MODIFIER,

        /**
         * A dependent clause that is functioning as an argument
         */
        CLAUSAL_COMPLEMENT,
    }

    /**
     * The type of this argument
     */
    ArgumentType type;

    /**
     * The root of the argument
     */
    IndexedWord root;

    /**
     * Constructor
     * @param root The root of the argument
     */
    public Argument(IndexedWord root, ArgumentType type){
        this.root = root;
    }

    /**
     * Gets the root of this argument
     * @return The root
     */
    public IndexedWord getRoot(){
        return root;
    }

}
