clang  5.0.0
Public Types | Public Member Functions | List of all members
clang::StmtSequence Class Reference

Identifies a list of statements. More...

#include "clang/Analysis/CloneDetection.h"

Public Types

typedef const Stmt *const * iterator
 

Public Member Functions

 StmtSequence (const CompoundStmt *Stmt, const Decl *D, unsigned StartIndex, unsigned EndIndex)
 Constructs a StmtSequence holding multiple statements. More...
 
 StmtSequence (const Stmt *Stmt, const Decl *D)
 Constructs a StmtSequence holding a single statement. More...
 
 StmtSequence ()
 Constructs an empty StmtSequence. More...
 
iterator begin () const
 Returns an iterator pointing to the first statement in this sequence. More...
 
iterator end () const
 Returns an iterator pointing behind the last statement in this sequence. More...
 
const Stmtfront () const
 Returns the first statement in this sequence. More...
 
const Stmtback () const
 Returns the last statement in this sequence. More...
 
unsigned size () const
 Returns the number of statements this object holds. More...
 
bool empty () const
 Returns true if and only if this StmtSequence contains no statements. More...
 
ASTContextgetASTContext () const
 Returns the related ASTContext for the stored Stmts. More...
 
const DeclgetContainingDecl () const
 Returns the declaration that contains the stored Stmts. More...
 
bool holdsSequence () const
 Returns true if this objects holds a list of statements. More...
 
SourceLocation getStartLoc () const
 Returns the start sourcelocation of the first statement in this sequence. More...
 
SourceLocation getEndLoc () const
 Returns the end sourcelocation of the last statement in this sequence. More...
 
SourceRange getSourceRange () const
 Returns the source range of the whole sequence - from the beginning of the first statement to the end of the last statement. More...
 
bool operator== (const StmtSequence &Other) const
 
bool operator!= (const StmtSequence &Other) const
 
bool contains (const StmtSequence &Other) const
 Returns true if and only if this sequence covers a source range that contains the source range of the given sequence Other. More...
 

Detailed Description

Identifies a list of statements.

Can either identify a single arbitrary Stmt object, a continuous sequence of child statements inside a CompoundStmt or no statements at all.

Definition at line 224 of file CloneDetection.h.

Member Typedef Documentation

typedef const Stmt* const* clang::StmtSequence::iterator

Definition at line 264 of file CloneDetection.h.

Constructor & Destructor Documentation

StmtSequence::StmtSequence ( const CompoundStmt Stmt,
const Decl D,
unsigned  StartIndex,
unsigned  EndIndex 
)

Constructs a StmtSequence holding multiple statements.

The resulting StmtSequence identifies a continuous sequence of statements in the body of the given CompoundStmt. Which statements of the body should be identified needs to be specified by providing a start and end index that describe a non-empty sub-array in the body of the given CompoundStmt.

Parameters
StmtA CompoundStmt that contains all statements in its body.
DThe Decl containing this Stmt.
StartIndexThe inclusive start index in the children array of Stmt
EndIndexThe exclusive end index in the children array of Stmt.

Definition at line 27 of file CloneDetection.cpp.

References size().

StmtSequence::StmtSequence ( const Stmt Stmt,
const Decl D 
)

Constructs a StmtSequence holding a single statement.

Parameters
StmtAn arbitrary Stmt.
DThe Decl containing this Stmt.

Definition at line 35 of file CloneDetection.cpp.

StmtSequence::StmtSequence ( )

Constructs an empty StmtSequence.

Definition at line 38 of file CloneDetection.cpp.

Member Function Documentation

const Stmt* clang::StmtSequence::back ( ) const
inline

Returns the last statement in this sequence.

This method should only be called on a non-empty StmtSequence object.

Definition at line 283 of file CloneDetection.h.

Referenced by getEndLoc().

StmtSequence::iterator StmtSequence::begin ( ) const

Returns an iterator pointing to the first statement in this sequence.

Definition at line 63 of file CloneDetection.cpp.

References holdsSequence(), and S.

bool StmtSequence::contains ( const StmtSequence Other) const

Returns true if and only if this sequence covers a source range that contains the source range of the given sequence Other.

This method should only be called on a non-empty StmtSequence object and passed a non-empty StmtSequence object.

Definition at line 41 of file CloneDetection.cpp.

References getASTContext(), getEndLoc(), clang::ASTContext::getSourceManager(), getStartLoc(), clang::SourceManager::isBeforeInTranslationUnit(), and SM.

Referenced by containsAnyInGroup().

bool clang::StmtSequence::empty ( ) const
inline

Returns true if and only if this StmtSequence contains no statements.

Definition at line 298 of file CloneDetection.h.

Referenced by clang::MinComplexityConstraint::calculateStmtComplexity().

StmtSequence::iterator StmtSequence::end ( ) const

Returns an iterator pointing behind the last statement in this sequence.

Definition at line 71 of file CloneDetection.cpp.

References holdsSequence(), and S.

const Stmt* clang::StmtSequence::front ( ) const
inline

Returns the first statement in this sequence.

This method should only be called on a non-empty StmtSequence object.

Definition at line 275 of file CloneDetection.h.

Referenced by clang::MinComplexityConstraint::calculateStmtComplexity(), getStartLoc(), and makeLocation().

ASTContext & StmtSequence::getASTContext ( ) const

Returns the related ASTContext for the stored Stmts.

Definition at line 79 of file CloneDetection.cpp.

References clang::Decl::getASTContext().

Referenced by clang::MinComplexityConstraint::calculateStmtComplexity(), and contains().

const Decl* clang::StmtSequence::getContainingDecl ( ) const
inline

Returns the declaration that contains the stored Stmts.

Definition at line 304 of file CloneDetection.h.

Referenced by clang::MinComplexityConstraint::calculateStmtComplexity().

SourceLocation StmtSequence::getEndLoc ( ) const

Returns the end sourcelocation of the last statement in this sequence.

This method should only be called on a non-empty StmtSequence object.

Definition at line 88 of file CloneDetection.cpp.

References back(), and clang::Stmt::getLocEnd().

Referenced by clang::MinComplexityConstraint::calculateStmtComplexity(), contains(), and getSourceRange().

SourceRange StmtSequence::getSourceRange ( ) const

Returns the source range of the whole sequence - from the beginning of the first statement to the end of the last statement.

Definition at line 90 of file CloneDetection.cpp.

References getEndLoc(), and getStartLoc().

SourceLocation StmtSequence::getStartLoc ( ) const

Returns the start sourcelocation of the first statement in this sequence.

This method should only be called on a non-empty StmtSequence object.

Definition at line 84 of file CloneDetection.cpp.

References front(), and clang::Stmt::getLocStart().

Referenced by clang::MinComplexityConstraint::calculateStmtComplexity(), contains(), and getSourceRange().

bool clang::StmtSequence::holdsSequence ( ) const
inline

Returns true if this objects holds a list of statements.

Definition at line 310 of file CloneDetection.h.

Referenced by begin(), clang::MinComplexityConstraint::calculateStmtComplexity(), and end().

bool clang::StmtSequence::operator!= ( const StmtSequence Other) const
inline

Definition at line 331 of file CloneDetection.h.

References S.

bool clang::StmtSequence::operator== ( const StmtSequence Other) const
inline

Definition at line 326 of file CloneDetection.h.

References S.

unsigned clang::StmtSequence::size ( ) const
inline

Returns the number of statements this object holds.

Definition at line 289 of file CloneDetection.h.

References S.

Referenced by StmtSequence().


The documentation for this class was generated from the following files: