# Refer to all C/Fortran routines by their name (rather than strings)
# See R_registerRoutines in R_init_rcqp()
useDynLib(rcqp, .registration = TRUE)

export(
	"cqi_getRegistry",
	"cqi_setRegistry",
	"cqi_attribute_size",
	"cqi_attributes",
	"cqi_alg2cpos",
 	"cqi_corpus_info",
	"cqi_cpos2alg",
	"cqi_cpos2id",
	"cqi_cpos2lbound",
	"cqi_cpos2rbound",
	"cqi_cpos2str",
	"cqi_cpos2struc",
	"cqi_drop_subcorpus",
	"cqi_dump_subcorpus",
	"cqi_fdist1",
	"cqi_fdist2",
	"cqi_full_name",
	"cqi_id2cpos",
	"cqi_id2freq",
	"cqi_id2str",
	"cqi_lexicon_size",
	"cqi_list_corpora",
	"cqi_list_subcorpora",
	"cqi_query",
	"cqi_regex2id",
	"cqi_str2id",
	"cqi_struc2cpos",
	"cqi_struc2str",
	"cqi_structural_attribute_has_values",
	"cqi_subcorpus_size",

	"corpus",
	"summary.cqp_corpus",
	"print.cqp_corpus",
	"write.cqp_corpus",

	"[[.cqp_corpus",
	"$.cqp_corpus",


	"ntype",
	"ntype.cqp_attr",
	"types",
	"types.cqp_attr",

	"ntoken",
	"ntoken.cqp_attr",
	"tokens",
	"tokens.cqp_attr",

	"nregion",
	"nregion.cqp_attr",
	"regions",
	"regions.cqp_attr",

	"region_sizes",
	"region_sizes.cqp_attr",

	"summary.cqp_attr",
	"print.cqp_attr",

	"subcorpus",
	"summary.cqp_subcorpus",
	"print.cqp_subcorpus",

	"cqp_flist",
	"cqp_flist.cqp_attr",
  	"cqp_flist.cqp_corpus",
  	"cqp_flist.cqp_subcorpus",
	"summary.cqp_flist",
	"print.cqp_flist",

	"cqp_ftable",
 	"cqp_ftable.cqp_subcorpus",
 	"cqp_ftable.cqp_corpus",

	"cqp_kwic",
	"cqp_kwic.cqp_subcorpus",
	"sort.cqp_kwic",
	"print.cqp_kwic",

	"size",
	"size.cqp_corpus",
	"size.cqp_subcorpus"
)

importFrom("plyr","count")
importFrom("utils","write.table")

S3method("[[", cqp_corpus)
S3method("$", cqp_corpus)
S3method(cqp_flist,cqp_attr)
S3method(cqp_flist,cqp_corpus)
S3method(cqp_flist,cqp_subcorpus)
S3method(cqp_ftable,cqp_corpus)
S3method(cqp_ftable,cqp_subcorpus)
S3method(cqp_kwic,cqp_subcorpus)
S3method(nregion,cqp_attr)
S3method(ntoken,cqp_attr)
S3method(ntype,cqp_attr)
S3method(print,cqp_attr)
S3method(print,cqp_corpus)
S3method(print,cqp_flist)
S3method(print,cqp_kwic)
S3method(print,cqp_subcorpus)
S3method(regions,cqp_attr)
S3method(size,cqp_corpus)
S3method(size,cqp_subcorpus)
S3method(sort,cqp_kwic)
S3method(summary,cqp_attr)
S3method(summary,cqp_corpus)
S3method(summary,cqp_flist)
S3method(summary,cqp_subcorpus)
S3method(tokens,cqp_attr)
S3method(types,cqp_attr)
