35 #ifndef LINEREADER_HEADER
36 #define LINEREADER_HEADER
57 #include "boost/regex.hpp"
91 explicit Linereader(
const std::string& commentchars=
"#");
119 const std::string& chrom()
const {
return _chrom; }
120 unsigned int first()
const {
return _first; }
121 unsigned int last()
const {
return _last; }
122 char strand()
const {
return _strand; }
123 const std::string& name()
const {
return _name; }
135 Exception(
const std::string& from,
const std::string& problem):
136 logic_error(
"\"" + from +
"\": " + problem) {}
141 virtual void reset();
155 virtual void parse_data(
const std::string& line) = 0;
159 static unsigned int str_to_uint(std::string& str)
throw (Exception);
168 std::string _chrom, _name;
169 unsigned int _first, _last;
174 boost::regex _comment_regex;
197 virtual void reset();
200 virtual void parse_data(
const std::string& line);
223 virtual void parse_data(
const std::string& line);
230 #endif // MULTOVL_LINEREADER_HEADER
static unsigned int str_to_uint(std::string &str)
std::string _err
stores parsing error messages
Definition: linereader.hh:165
virtual void parse_data(const std::string &line)=0
virtual void parse_data(const std::string &line)
Parse a /line/ assuming it contains BED-formatted data.
Status parse(const std::string &line)
Linereader's own exception.
Definition: linereader.hh:128
static bool empty_white(const std::string &str)
Returns /true/ if /str/ is empty or contains whitespace characters only.
const std::string & comment() const
Definition: linereader.hh:110
Linereader(const std::string &commentchars="#")
comment line was seen
Definition: linereader.hh:85
virtual bool read_into(Region ®ion) const
state after reset (all bits off)
Definition: linereader.hh:82
Instances of the Region class represent regions on a sequence. They have first and last coordinates...
Definition: region.hh:65
Linereader for GFF-formatted lines. Only the columns containing coordinate information are parsed...
Definition: linereader.hh:209
size_t _fieldcnt
how many column fields have been seen
Definition: linereader.hh:163
Status status() const
Definition: linereader.hh:106
Base class of parser objects. Linereader objects process one line at a time, and change their interna...
Definition: linereader.hh:75
Status
Symbolic constants to signify the result of a parsing operation.
Definition: linereader.hh:80
void set_statusflag(Status flag)
Definition: linereader.hh:145
Linereader for BED-formatted lines. The BedLinereader class parses columns 1 to 6 of the BED format s...
Definition: linereader.hh:184
empty line (whitespace only) was seen
Definition: linereader.hh:84
BedLinereader()
Sets up a BedLinereader object.
Definition: linereader.hh:189
const std::string & error_msg() const
Definition: linereader.hh:117
Status _status
the status after parsing
Definition: linereader.hh:162
Exception(const std::string &from, const std::string &problem)
Definition: linereader.hh:135
could not parse line
Definition: linereader.hh:83
virtual void parse_data(const std::string &line)
Parse a /line/ assuming it contains GFF-formatted data.
size_t fieldcnt() const
Definition: linereader.hh:114
GffLinereader()
Init to empty.
Definition: linereader.hh:214
data line parsed successfully
Definition: linereader.hh:86
virtual bool read_into(Region ®ion) const =0
std::string _comment
store a comment line
Definition: linereader.hh:164