# This is to tell the autogenerator where to put the output.
# These are the two output files
output_header_file "hauto_disc_class.hpp"
output_source_file "cauto_disc_class.cpp"

# This says what to call the class that we are autogenerating
output_class_name CAutoDiscClass

# This specifies an extra private field that will go in the
# autogenerated class. It's initialized in the constructor.
member { CCheckingClass & m_NewSeqEntry }

# This means that the autogenerated-class will have a
# method called LookAtSeqEntry that takes a Seq-entry
# and traverses through it
root Seq-entry  LookAtSeqEntry

# an file that needs to be included because we use 
# CCheckingClass, so the autogenerator will put the
# "#include" in the autogenerated hpp file
header_include "hchecking_class.hpp"

# include files in *.cpp
source_include "hauto_disc_class.hpp"
source_include <objects/seqfeat/SeqFeatData.hpp>
source_include <objects/seqfeat/Seq_feat.hpp>
source_include <objects/misc/sequence_macros.hpp>

# call m_checker.CheckSeqFeat for every Seq-feat that we
# find.
use m_NewSeqEntry.CheckSeqFeat {
    Seq-feat
}

use m_NewSeqEntry.CheckBioseq {
    Bioseq
}

use m_NewSeqEntry.CheckSeqInstMol {
    Bioseq.Seq-inst AND Bioseq
}

use m_NewSeqEntry.CheckBioseqSet {
    Bioseq-set
}
