Cpp.ForStatement Class
Namespace: Cpp
Superclasses: AstNodeProperties
Represents the for_statement nodes in the syntax tree of your code
Since R2026a
Description
The PQL class Cpp.ForStatement represents the node for_statement in the syntax tree of your code.
void example() {
for (int i = 0; i < 10; ++i) {
// loop body
}
}The for (int i = 0; i < 10; ++i) { ... } statement is a
for_statement node that Cpp.ForStatement
models.
Predicates
| Type | Raisable | Printable |
|---|---|---|
ForStatement
| Yes | No |
This class defines these predicates that act on the objects of this class. In addition, objects of this class can access the predicates defined by the base class AstNodeProperties. An object of this class is an object of AstNodeProperties class.
| Predicates | Description | Example |
|---|---|---|
is(required ForStatement &forStatement)
| Matches a for_statement node and binds it to
forStatement for further queries. | This PQL defect checks for any defect FindFor =
when
Cpp.ForStatement.is(&forStmt)
and forStmt.nodeText(&txt)
raise "Found for: \"{txt}\""
on forStmtIn this C++ code, the defect finds the top-level
int main() {
for (int i = 0; i < 3; ++i) { }
return 0;
} |
cast(Cpp.Node.Node node, required ForStatement &cast)
| Checks whether a Cpp.Node.node is a
for_statement and if so binds it as cast for
using ForStatement predicates. | This PQL defect checks for a defect CastToFor =
when
Cpp.Node.is(&node,&,&,&)
and Cpp.ForStatement.cast(node, &forStmt)
and forStmt.nodeText(&txt)
raise "Casted node is for: \"{txt}\""
on forStmtIn this C++ code, the defect looks for a
void f() {
for (int i = 0; i < 1; ++i) {}
} |
isa(Cpp.Node.Node node)
| Checks whether a Cpp.Node.node is a
for_statement returning true or allowing negation. | This PQL defect checks whether a converted node is a
defect NotAFor =
when
Cpp.Node.is(&node,&,&,&)
and not Cpp.ForStatement.isa(node)
raise "Node is not a for_statement"
on exprStmtIn this C++ code, the defect finds syntax nodes
that are not a
void g() {
int x = 0;
} |
initializer(ForStatement self, Cpp.Node.Node &child)
| Returns the initializer part of a for loop such as a
declaration or expression as child. | This PQL defect checks for a defect ForHasInit =
when
Cpp.ForStatement.is(&forStmt)
and forStmt.initializer(&init)
and init.nodeText(&txt)
raise "For initializer: \"{txt}\""
on forStmtIn this C++ code, the defect finds the
void h() {
for (int i = 0; i < 2; ++i) { }
} |
condition(ForStatement self, Cpp.Node.Node &child)
| Returns the loop condition expression of a for loop as
child. | This PQL defect checks for a defect ForHasCond =
when
Cpp.ForStatement.is(&forStmt)
and forStmt.condition(&cond)
and cond.nodeText(&txt)
raise "For condition: \"{txt}\""
on forStmtIn this C++ code, the defect finds the
void k() {
for (int i = 0; i < 10; ++i) { }
} |
update(ForStatement self, Cpp.Node.Node &child)
| Returns the update expression of a for loop such as
++i or i++ as
child. | This PQL defect checks for the update expression of a
defect ForHasUpdate =
when
Cpp.ForStatement.is(&forStmt)
and forStmt.update(&upd)
and upd.nodeText(&txt)
raise "For update: \"{txt}\""
on forStmtIn this C++ code, the defect captures the
void m() {
for (int i = 0; i < 5; ++i) { }
} |
body(ForStatement self, Cpp.Node.Node &child)
| Returns the loop body of the for_statement which may be a
compound statement or a single statement as child. | This PQL defect checks for the body of a defect ForHasBody =
when
Cpp.ForStatement.is(&forStmt)
and forStmt.body(&body)
and body.nodeText(&txt)
raise "For body: \"{txt}\""
on forStmtIn this C++ code, the defect finds the
void n() {
for (int i = 0; i < 2; ++i) {
int x = i;
}
} |
getEnclosingForStatement(Cpp.Node.Node child, required ForStatement
&parent)
| Finds the nearest enclosing for_statement ancestor of the
given child node and returns it as
parent. | This PQL defect checks for the closest enclosing
defect EnclosingFor =
when
Cpp.ReturnStatement.is(&ret)
and ret.toNode(&node)
and Cpp.ForStatement.getEnclosingForStatement(node, &forParent)
and forParent.nodeText(&txt)
raise "Enclosing for: \"{txt}\""
on forParentIn this C++ code, the defect finds the nearest
int foo() {
for (int i = 0; i < 3; ++i) {
if (i == 1) return 42;
}
return 0;
} |
isEnclosedInForStatement(Cpp.Node.Node child)
| Checks whether the given child node has a
for_statement as an ancestor and returns true if so. | This PQL defect checks whether a node is inside any
defect InsideFor =
when
Cpp.BreakStatement.is(&brk)
and brk.toNode(&node)
and Cpp.ForStatement.isEnclosedInForStatement(node)
raise "Break is inside a for"
on brkIn this C++ code, the defect identifies a
void p() {
for (;;) {
break;
}
} |
Version History
Introduced in R2026a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)