Class DoWhileStmt
- java.lang.Object
-
- com.tonic.analysis.source.ast.stmt.DoWhileStmt
-
-
Constructor Summary
Constructors Constructor Description DoWhileStmt(Statement body, Expression condition)Creates an unlabeled do-while loop with an unknown location.DoWhileStmt(Statement body, Expression condition, String label)Creates a do-while loop with an unknown location.DoWhileStmt(Statement body, Expression condition, String label, SourceLocation location)Creates a do-while loop and parents the body and condition to it.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> Taccept(SourceVisitor<T> visitor)Accepts a visitor for this node.StatementgetBody()List<ASTNode>getChildren()Lists the direct children a node holds, in source order.ExpressiongetCondition()StringgetLabel()Gets the label for this statement, if any.SourceLocationgetLocation()Gets the source location of this node.ASTNodegetParent()Gets the parent node in the AST tree.voidsetBody(Statement body)Replaces the loop body, reparenting old and new nodes.voidsetCondition(Expression condition)Replaces the loop condition, reparenting old and new nodes.voidsetLabel(String label)Sets the loop label.voidsetLocation(SourceLocation location)Sets this statement's source location.voidsetParent(ASTNode parent)Sets the enclosing AST node.StringtoString()DoWhileStmtwithBody(Statement body)Replaces the loop body, reparenting old and new nodes.DoWhileStmtwithCondition(Expression condition)Replaces the loop condition, reparenting old and new nodes.DoWhileStmtwithLabel(String label)Sets the loop label.-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.tonic.analysis.source.ast.ASTNode
deepClone, findAll, findAll, findAncestor, findFirst, findFirst, getRoot, isDescendantOf, remove, replaceWith, stream, stream, walk
-
-
-
-
Constructor Detail
-
DoWhileStmt
public DoWhileStmt(Statement body, Expression condition, String label, SourceLocation location)
Creates a do-while loop and parents the body and condition to it.- Parameters:
body- the loop bodycondition- the loop conditionlabel- loop label, or null for nonelocation- source location, or null for unknown- Throws:
NullPointerException- if body or condition is null
-
DoWhileStmt
public DoWhileStmt(Statement body, Expression condition, String label)
Creates a do-while loop with an unknown location.- Parameters:
body- the loop bodycondition- the loop conditionlabel- loop label, or null for none- Throws:
NullPointerException- if body or condition is null
-
DoWhileStmt
public DoWhileStmt(Statement body, Expression condition)
Creates an unlabeled do-while loop with an unknown location.- Parameters:
body- the loop bodycondition- the loop condition- Throws:
NullPointerException- if body or condition is null
-
-
Method Detail
-
getBody
public Statement getBody()
- Returns:
- the body
-
setBody
public void setBody(Statement body)
Replaces the loop body, reparenting old and new nodes.- Parameters:
body- the new body
-
getCondition
public Expression getCondition()
- Returns:
- the condition
-
setCondition
public void setCondition(Expression condition)
Replaces the loop condition, reparenting old and new nodes.- Parameters:
condition- the new condition
-
setLabel
public void setLabel(String label)
Sets the loop label.- Parameters:
label- the new label, or null for none
-
getLocation
public SourceLocation getLocation()
Description copied from interface:ASTNodeGets the source location of this node.- Specified by:
getLocationin interfaceASTNode- Returns:
- the location
-
getParent
public ASTNode getParent()
Description copied from interface:ASTNodeGets the parent node in the AST tree.
-
setParent
public void setParent(ASTNode parent)
Sets the enclosing AST node.
-
getLabel
public String getLabel()
Description copied from interface:StatementGets the label for this statement, if any.
-
withBody
public DoWhileStmt withBody(Statement body)
Replaces the loop body, reparenting old and new nodes.- Parameters:
body- the new body- Returns:
- this statement
-
withCondition
public DoWhileStmt withCondition(Expression condition)
Replaces the loop condition, reparenting old and new nodes.- Parameters:
condition- the new condition- Returns:
- this statement
-
withLabel
public DoWhileStmt withLabel(String label)
Sets the loop label.- Parameters:
label- the new label, or null for none- Returns:
- this statement
-
getChildren
public List<ASTNode> getChildren()
Description copied from interface:ASTNodeLists the direct children a node holds, in source order.- Specified by:
getChildrenin interfaceASTNode- Returns:
- the direct children, empty for a leaf
-
accept
public <T> T accept(SourceVisitor<T> visitor)
Description copied from interface:ASTNodeAccepts a visitor for this node.
-
setLocation
public void setLocation(SourceLocation location)
Description copied from interface:StatementSets this statement's source location.- Specified by:
setLocationin interfaceStatement- Parameters:
location- the provenance to stamp, or null forSourceLocation.UNKNOWN
-
-