Uses of Interface
dev.civl.abc.ast.node.IF.statement.StatementNode
Packages that use StatementNode
Package
Description
Submodule ast.node defines every kind of
node in an AST.
The ast.node.label submodule defines AST nodes for representing labels
in a program, including ordinary labels, and the
case and default
labels used in switch statements.The ast.node.omp submodule defines AST nodes for representing
OpenMP constructs, which are specified in
omp pragmas.The ast.node.statement submodule defines AST
nodes for representing statements in a program.
-
Uses of StatementNode in dev.civl.abc.ast.node.IF
Subinterfaces of StatementNode in dev.civl.abc.ast.node.IFModifier and TypeInterfaceDescriptioninterfaceA pragma may be included in the AST wherever a statement or an external definition may occur.Methods in dev.civl.abc.ast.node.IF that return StatementNodeModifier and TypeMethodDescriptionNodeFactory.newNullStatementNode(Source source) Constructs a new node representing a C "null" statement, also known as a "no-op" statement, and written as just a semicolon.Methods in dev.civl.abc.ast.node.IF with parameters of type StatementNodeModifier and TypeMethodDescriptionNodeFactory.newAtomicStatementNode(Source statementSource, StatementNode body) Creates a new CIVL-C$atomicstatement node.NodeFactory.newCaseLabelDeclarationNode(Source source, ExpressionNode constantExpression, StatementNode statement) Constructs a new case-labeled declaration node.NodeFactory.newCivlForNode(Source source, boolean isParallel, DeclarationListNode variables, ExpressionNode domain, StatementNode body, SequenceNode<ContractNode> loopContract) Creates a new instance of the CIVL$foror$parfornode.NodeFactory.newDefaultLabelDeclarationNode(Source source, StatementNode statement) Constructs a new node representing the occurence of adefault :label inside of aswitchstatement body.NodeFactory.newDoLoopNode(Source source, ExpressionNode condition, StatementNode body, SequenceNode<ContractNode> contracts) Constructs a new node representing ado...whileloop.NodeFactory.newForLoopNode(Source source, ForLoopInitializerNode initializer, ExpressionNode condition, ExpressionNode incrementer, StatementNode body, SequenceNode<ContractNode> contracts) Constructs a newforloop node.NodeFactory.newIfNode(Source source, ExpressionNode condition, StatementNode trueBranch) Creates newifstatement node when there is no false ("else") branch.NodeFactory.newIfNode(Source source, ExpressionNode condition, StatementNode trueBranch, StatementNode falseBranch) Creates a newifstatement node.NodeFactory.newLabeledStatementNode(Source source, LabelNode label, StatementNode statement) Constructs new node representing a labeled statement.NodeFactory.newOmpAtomicNode(Source source, StatementNode statement, OmpAtomicNode.OmpAtomicClause clause, boolean seqConsistent) Creates a new OpenMP atomic node, representing#pragma omp atomic....NodeFactory.newOmpCriticalNode(Source source, IdentifierNode name, StatementNode statement) Creates a new OpenMP critical node, representing#pragma omp critical....NodeFactory.newOmpForNode(Source source, StatementNode statement) Creates a new OpenMP for node, representing#pragma omp for....NodeFactory.newOmpMasterNode(Source source, StatementNode statement) Creates a new OpenMP master node, representing#pragma omp master....NodeFactory.newOmpOrederedNode(Source source, StatementNode statement) Creates a new OpenMP ordered node, representing#pragma omp ordered....NodeFactory.newOmpParallelNode(Source source, StatementNode statement) Creates a new OpenMP parallel node, representing#pragma omp parallel....NodeFactory.newOmpSectionNode(Source source, StatementNode statement) Creates a new OpenMP section node, representing#pragma omp section....NodeFactory.newOmpSectionsNode(Source source, StatementNode statement) Creates a new OpenMP sections node, representing#pragma omp sections....NodeFactory.newOmpSimdNode(Source source, StatementNode statement) Creates a new OpenMP simd node, representing#pragma omp simd....NodeFactory.newOmpSingleNode(Source source, StatementNode statement) Creates a new OpenMP single node, representing#pragma omp single....NodeFactory.newRunNode(Source source, StatementNode statement) Create a newRunNodeNodeFactory.newStandardLabelDeclarationNode(Source source, IdentifierNode name, StatementNode statement) Creates a new node representing a standard C label.NodeFactory.newSwitchNode(Source source, ExpressionNode condition, StatementNode body) Constructs a new node representing a Cswitchstatement.NodeFactory.newWhenNode(Source source, ExpressionNode guard, StatementNode body) Creates a new node representing a CIVL-C$whennode, used to represent a guarded command.NodeFactory.newWhileLoopNode(Source source, ExpressionNode condition, StatementNode body, SequenceNode<ContractNode> contracts) Constructs a new node representing awhileloop.Method parameters in dev.civl.abc.ast.node.IF with type arguments of type StatementNodeModifier and TypeMethodDescriptionNodeFactory.newChooseStatementNode(Source source, List<StatementNode> statements) Constructs a new node representing a CIVL-C$choosestatement. -
Uses of StatementNode in dev.civl.abc.ast.node.IF.label
Methods in dev.civl.abc.ast.node.IF.label that return StatementNodeModifier and TypeMethodDescriptionLabelNode.getStatement()The statement which is preceded by a label (but not including the label).Methods in dev.civl.abc.ast.node.IF.label with parameters of type StatementNodeModifier and TypeMethodDescriptionvoidLabelNode.setStatement(StatementNode statement) Sets the value returned byLabelNode.getStatement(). -
Uses of StatementNode in dev.civl.abc.ast.node.IF.omp
Subinterfaces of StatementNode in dev.civl.abc.ast.node.IF.ompModifier and TypeInterfaceDescriptioninterfaceThis represents an OpenMP atomic construct, which has the syntax:interfaceinterfaceRepresents an OpenMP executable Construct.
The children of an OmpExecutableNode are: SequenceNode<IdentifierExpressionNode> "sharedList", the list of identifiers declared bysharedSequenceNode<IdentifierExpressionNode> "privateList", the list of identifiers declared byprivateSequenceNode<IdentifierExpressionNode> "firstprivateList", the list of identifiers declared byfirstprivateSequenceNode<IdentifierExpressionNode> "lastprivateList", the list of identifiers declared bylastprivateSequenceNode<IdentifierExpressionNode> "copyinList", the list of identifiers declared bycopyinSequenceNode<IdentifierExpressionNode> "copyprivateList", the list of identifiers declared bycopyprivateSequenceNode<OmpReductionNode> "reductionList", the list of operators and identifiers declared byreductionStatementNode, the statement node affected by this pragma.interfaceThis interface represents the OpenMP loop construct.interfaceThis represents an OpenMP parallel pragma.interfaceA simd directive, which may have the following clauses: if([simd :]scalar-logical-expression) safelen(length) simdlen(length) linear(list[ : linear-step]) aligned(list[ : alignment]) nontemporal(list) private(list) lastprivate([ lastprivate-modifier:] list) reduction([ reduction-modifier,]reduction-identifier : list) collapse(n) order(concurrent)interfaceThis interface stands for synchronization constructs of OpenMP, including: master critical barrier flush atomic Currently, taskwait and atomic constructs are not supported.interfaceThis represents an OpenMP worksharing construct, either a loop, sections/section, or single construct.Methods in dev.civl.abc.ast.node.IF.omp that return StatementNodeModifier and TypeMethodDescriptionOmpExecutableNode.statementNode()Returns the statement node affected by this OpenMP pragma.Methods in dev.civl.abc.ast.node.IF.omp with parameters of type StatementNodeModifier and TypeMethodDescriptionvoidOmpExecutableNode.setStatementNode(StatementNode statementNode) Updates the statement sub-node. -
Uses of StatementNode in dev.civl.abc.ast.node.IF.statement
Subinterfaces of StatementNode in dev.civl.abc.ast.node.IF.statementModifier and TypeInterfaceDescriptioninterfaceAn atomic node represents a CIVL-C$atomicstatement.interfaceA "choose" statement has the form "choose { s1 ...interfaceRepresents a CIVL$foror$parforstatement.interfaceA compound statement is a sequence of statements and declarations within curly braces: "{ ...interfaceinterfaceA for loop, in addition to the expression and body that all loops possess, has an initializer and incrementer.interfaceRepresents a C "goto labelName;" statement.interfaceinterfaceinterfaceinterfaceRoot of type hierarchy for every kind of loop statement.interfaceA null statement: ";".interfaceinterfaceRepresents a CIVL-C$runexpression, which has the form$run statement.The statement s can be any singleStatementNodeor aCompoundStatementNodewhich is wrapped by a pair of curly braces.interfaceRepresents a Cswitchstatement.interfaceThis node represents an expression$update($collator c) f().interfaceRepresents a CIVL-C guarded command.Methods in dev.civl.abc.ast.node.IF.statement that return StatementNodeModifier and TypeMethodDescriptionStatementNode.copy()AtomicNode.getBody()The body of the$atomicstatement.CivlForNode.getBody()The loop body.LoopNode.getBody()The loop body.SwitchNode.getBody()Returns the switch statement body: the switch statement has the form "switch(expression) body".WhenNode.getBody()The body of this$whenstatement.IfNode.getFalseBranch()Returns the "else" (aka "false") branch.LabeledStatementNode.getStatement()RunNode.getStatement()Returns the function call node, which is like removing the$spawn.IfNode.getTrueBranch()Returns the "true" branch statement--where control moves to if the condition evaluates to true.Methods in dev.civl.abc.ast.node.IF.statement with parameters of type StatementNodeModifier and TypeMethodDescriptionvoidAtomicNode.setBody(StatementNode body) Sets the body of this atomic statement.voidLoopNode.setBody(StatementNode body) Sets the loop body.