use of org.abs_models.frontend.ast.VarUse in project abstools by abstools.
the class DeadlockPreanalysis method processAwait.
private void processAwait(AwaitStmt await, int position, ASTNode<?> node) {
String varAwait = null;
if (await.getGuard().getChild(0) instanceof VarUse) {
varAwait = ((VarUse) await.getGuard().getChild(0)).getName();
}
int getPos = position + 1;
GetExp getInst = null;
if (varAwait != null) {
while (getPos < node.getNumChild() && getInst == null) {
getInst = lookforGetOperation(await, node.getChild(getPos), varAwait);
if (getInst == null) {
getPos++;
}
}
}
// System.out.println("PROCESANDO " + position + " " + getPos);
boolean used = false;
for (int i = position + 1; i < getPos && !used; i++) {
used = isVarUsed(node.getChild(i), varAwait);
}
if (used && getInst != null) {
getExpressions.put((GetExp) getInst, null);
}
}
use of org.abs_models.frontend.ast.VarUse in project abstools by abstools.
the class VarResolutionTest method testNestedLetExp5.
@Test
public void testNestedLetExp5() {
Model m = assertParse("def Bool f(Bool b) = let (Bool x) = b in let (Bool x) = x in x;");
LetExp e = (LetExp) getFirstFunctionExpr(m);
LetExp e2 = (LetExp) e.getExp();
VarOrFieldDecl decl = e.getVar();
VarUse u = (VarUse) e2.getVal();
assertEquals(decl, u.getDecl());
}
use of org.abs_models.frontend.ast.VarUse in project abstools by abstools.
the class VarResolutionTest method testNestedLetExp2.
@Test
public void testNestedLetExp2() {
Model m = assertParse(" def Bool f(Bool b) = let (Bool x) = let (Bool x) = b in x in x;");
LetExp e = (LetExp) getFirstFunctionExpr(m);
VarOrFieldDecl decl = e.getVar();
VarUse u = (VarUse) e.getExp();
assertEquals(decl, u.getDecl());
}
use of org.abs_models.frontend.ast.VarUse in project abstools by abstools.
the class VarResolutionTest method testFunctionParam.
@Test
public void testFunctionParam() {
Model m = assertParse(" def Bool f(Bool b) = b;");
VarUse u = (VarUse) getFirstFunctionExpr(m);
ParamDecl d = (ParamDecl) u.getDecl();
assertEquals("b", d.getName());
}
use of org.abs_models.frontend.ast.VarUse in project abstools by abstools.
the class VarResolutionTest method testNestedLetExp3.
@Test
public void testNestedLetExp3() {
Model m = assertParse(" def Bool f(Bool b) = let (Bool x) = b in let (Bool y) = b in x;");
LetExp e = (LetExp) getFirstFunctionExpr(m);
LetExp e2 = (LetExp) e.getExp();
VarOrFieldDecl decl = e.getVar();
VarUse u = (VarUse) e2.getExp();
assertEquals(decl, u.getDecl());
}
Aggregations