blob: bffd6ca7a0a3bf8ec86f274d40ab947cad4db71a [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2006 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ptp.pldt.openmp.analysis.ompcfg;
import java.util.Iterator;
import java.util.LinkedList;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTExpressionList;
/**
* Holds a consolidated (coarse) basic block for concurrency analysis
*
* @author pazel
*
*/
public class OMPExpressionBlock extends OMPCFGNode
{
/** Use this while building */
protected LinkedList expressions_ = new LinkedList(); // of IASTExpressions (for now)
public OMPExpressionBlock()
{
super();
}
/**
* addExpression - add a statement to the basic block
*
* @param expression
* - IASTExpression
*/
public void addExpression(IASTExpression expression)
{
expressions_.add(expression);
}
/**
* addExpression - but for an expression list
*
* @param expression
* - IASTExpressionList
*/
public void addExpression(IASTExpressionList expression)
{
IASTExpression[] list = expression.getExpressions();
for (int i = 0; i < list.length; i++) {
if (list[i] instanceof IASTExpressionList)
addExpression((IASTExpressionList) list[i]);
else
addExpression(list[i]);
}
}
/**
* getExpressions - accessor to array of statements
*
* @return IASTExpression []
*/
public IASTExpression[] getExpressions()
{
IASTExpression[] list = new IASTExpression[expressions_.size()];
int count = 0;
for (Iterator i = expressions_.iterator(); i.hasNext();)
list[count++] = (IASTExpression) i.next();
return list;
}
}