Search in sources :

Example 16 with VarUse

use of org.abs_models.frontend.ast.VarUse in project abstools by abstools.

the class VarResolutionTest method testPatternVar.

@Test
public void testPatternVar() {
    Model m = assertParse(" def Bool f(Bool b) = case b { True => False; x => !x; };");
    NegExp ne = (NegExp) getSecondCaseExpr(m);
    VarUse v = (VarUse) ne.getOperand();
    PatternVarDecl decl = (PatternVarDecl) v.getDecl();
    assertEquals("x", decl.getName());
}
Also used : NegExp(org.abs_models.frontend.ast.NegExp) Model(org.abs_models.frontend.ast.Model) VarUse(org.abs_models.frontend.ast.VarUse) PatternVarDecl(org.abs_models.frontend.ast.PatternVarDecl) FrontendTest(org.abs_models.frontend.FrontendTest) Test(org.junit.Test)

Example 17 with VarUse

use of org.abs_models.frontend.ast.VarUse in project abstools by abstools.

the class VarResolutionTest method testLetExp.

@Test
public void testLetExp() {
    Model m = assertParse(" def Bool f(Bool b) = let (Bool x) = b in x;");
    LetExp e = (LetExp) getFirstFunctionExpr(m);
    VarOrFieldDecl decl = e.getVar();
    VarUse u = (VarUse) e.getExp();
    assertEquals(decl, u.getDecl());
}
Also used : VarOrFieldDecl(org.abs_models.frontend.ast.VarOrFieldDecl) LetExp(org.abs_models.frontend.ast.LetExp) Model(org.abs_models.frontend.ast.Model) VarUse(org.abs_models.frontend.ast.VarUse) FrontendTest(org.abs_models.frontend.FrontendTest) Test(org.junit.Test)

Example 18 with VarUse

use of org.abs_models.frontend.ast.VarUse in project abstools by abstools.

the class VarResolutionTest method testNestedLetExp.

@Test
public void testNestedLetExp() {
    Model m = assertParse(" def Bool f(Bool b) = let (Bool x) = let (Bool y) = b in y in x;");
    LetExp e = (LetExp) getFirstFunctionExpr(m);
    VarOrFieldDecl decl = e.getVar();
    VarUse u = (VarUse) e.getExp();
    assertEquals(decl, u.getDecl());
}
Also used : VarOrFieldDecl(org.abs_models.frontend.ast.VarOrFieldDecl) LetExp(org.abs_models.frontend.ast.LetExp) Model(org.abs_models.frontend.ast.Model) VarUse(org.abs_models.frontend.ast.VarUse) FrontendTest(org.abs_models.frontend.FrontendTest) Test(org.junit.Test)

Aggregations

VarUse (org.abs_models.frontend.ast.VarUse)18 FrontendTest (org.abs_models.frontend.FrontendTest)9 Test (org.junit.Test)9 LetExp (org.abs_models.frontend.ast.LetExp)8 Model (org.abs_models.frontend.ast.Model)8 VarOrFieldDecl (org.abs_models.frontend.ast.VarOrFieldDecl)7 DataTypeUse (org.abs_models.frontend.ast.DataTypeUse)3 MainBlock (org.abs_models.frontend.ast.MainBlock)3 ParamDecl (org.abs_models.frontend.ast.ParamDecl)3 ParametricDataTypeUse (org.abs_models.frontend.ast.ParametricDataTypeUse)3 Block (org.abs_models.frontend.ast.Block)2 FnApp (org.abs_models.frontend.ast.FnApp)2 GetExp (org.abs_models.frontend.ast.GetExp)2 List (org.abs_models.frontend.ast.List)2 MethodSig (org.abs_models.frontend.ast.MethodSig)2 NegExp (org.abs_models.frontend.ast.NegExp)2 PatternVarDecl (org.abs_models.frontend.ast.PatternVarDecl)2 PureExp (org.abs_models.frontend.ast.PureExp)2 TypeUse (org.abs_models.frontend.ast.TypeUse)2 VarDecl (org.abs_models.frontend.ast.VarDecl)2