Blang/src/include/Statement/CompoundStatement.hpp

38 lines
950 B
C++
Raw Normal View History

2016-11-24 12:15:08 +01:00
#ifndef COMPOUNDSTATEMENT_HPP
#define COMPOUNDSTATEMENT_HPP
#include <vector>
2016-04-22 21:46:31 +02:00
#include "Statement.hpp"
2016-11-24 12:15:08 +01:00
class CompoundStatement : public Statement
{
2016-04-22 21:46:31 +02:00
public:
2016-11-24 12:15:08 +01:00
typedef std::vector<Statement*>::iterator body_iterator;
typedef std::vector<Statement*>::const_iterator const_body_iterator;
typedef std::vector<Statement*>::reverse_iterator reverse_body_iterator;
typedef std::vector<Statement*>::const_reverse_iterator const_reverse_body_iterator;
unsigned int size () const;
bool empty() const;
void setLastStatement(Statement *S);
2016-04-22 21:46:31 +02:00
2016-11-24 12:15:08 +01:00
const_body_iterator body_begin() const;
body_iterator body_begin();
2016-04-22 21:46:31 +02:00
2016-11-24 12:15:08 +01:00
const_body_iterator body_end() const;
body_iterator body_end();
2016-04-22 21:46:31 +02:00
2016-11-24 12:15:08 +01:00
const_reverse_body_iterator body_rbegin() const;
reverse_body_iterator body_rbegin();
2016-04-22 21:46:31 +02:00
2016-11-24 12:15:08 +01:00
const_reverse_body_iterator body_rend() const;
reverse_body_iterator body_rend();
2016-04-22 21:46:31 +02:00
2016-11-24 12:15:08 +01:00
private:
std::vector<Statement*> _body;
2016-04-22 21:46:31 +02:00
};
#endif