Skip to content

Commit

Permalink
Add inclusion of the user specific header during run-time
Browse files Browse the repository at this point in the history
  • Loading branch information
miranha committed Dec 22, 2016
1 parent 1a655bf commit ff81edd
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 0 deletions.
Expand Up @@ -21,6 +21,7 @@
import org.overture.codegen.trans.patterns.PatternVarPrefixes;
import org.overture.codegen.vdm2c.CGen;
import org.overture.codegen.vdm2c.VarPrefixManager;
import org.overture.codegen.vdm2c.distribution.transformations.AddIncludesTrans;
import org.overture.codegen.vdm2c.distribution.transformations.CallFuncMacroExpTrans;
import org.overture.codegen.vdm2c.distribution.transformations.DistTransTest;
import org.overture.codegen.vdm2c.distribution.transformations.GenerateClassDispatchTrans;
Expand Down Expand Up @@ -85,6 +86,8 @@ public List<DepthFirstAnalysisAdaptor> consAnalyses()
transformations.add(new GenerateDepObjId(transAssistant));
transformations.add(new GenerateDMTrans(transAssistant));
transformations.add(new GenerateClassDispatchTrans(transAssistant));
transformations.add(new AddIncludesTrans(transAssistant));

return transformations;
}

Expand Down
@@ -0,0 +1,93 @@
package org.overture.codegen.vdm2c.distribution.transformations;

import java.util.LinkedList;
import java.util.List;
import java.util.Set;

import org.overture.cgc.extast.analysis.DepthFirstAnalysisCAdaptor;
import org.overture.codegen.ir.SExpIR;
import org.overture.codegen.ir.SStmIR;
import org.overture.codegen.ir.STypeIR;
import org.overture.codegen.ir.analysis.AnalysisException;
import org.overture.codegen.ir.declarations.ADefaultClassDeclIR;
import org.overture.codegen.ir.declarations.AFormalParamLocalParamIR;
import org.overture.codegen.ir.declarations.AMethodDeclIR;
import org.overture.codegen.ir.declarations.AVarDeclIR;
import org.overture.codegen.ir.expressions.AApplyExpIR;
import org.overture.codegen.ir.expressions.AEqualsBinaryExpIR;
import org.overture.codegen.ir.expressions.AIdentifierVarExpIR;
import org.overture.codegen.ir.expressions.AIntLiteralExpIR;
import org.overture.codegen.ir.expressions.AOrBoolBinaryExpIR;
import org.overture.codegen.ir.patterns.AIdentifierPatternIR;
import org.overture.codegen.ir.statements.ABlockStmIR;
import org.overture.codegen.ir.statements.AExpStmIR;
import org.overture.codegen.ir.statements.AIfStmIR;
import org.overture.codegen.ir.statements.AReturnStmIR;
import org.overture.codegen.ir.types.AExternalTypeIR;
import org.overture.codegen.ir.types.AIntNumericBasicTypeIR;
import org.overture.codegen.ir.types.AMethodTypeIR;
import org.overture.codegen.ir.types.ANatNumericBasicTypeIR;
import org.overture.codegen.trans.assistants.TransAssistantIR;
import org.overture.codegen.vdm2c.ast.CGenClonableString;
import org.overture.codegen.vdm2c.distribution.SystemArchitectureAnalysis;
import org.overture.codegen.vdm2c.extast.declarations.AClassHeaderDeclIR;
import org.overture.codegen.vdm2c.extast.expressions.AMacroApplyExpIR;
import org.overture.codegen.vdm2c.extast.statements.ALocalVariableDeclarationStmIR;

public class AddIncludesTrans extends DepthFirstAnalysisCAdaptor
{

public AddIncludesTrans(TransAssistantIR transformationAssistant)
{
}

@Override
public void caseAClassHeaderDeclIR(AClassHeaderDeclIR node)
throws AnalysisException
{
System.out.println();


List<CGenClonableString> includes = (List<CGenClonableString>) node.getIncludes();

CGenClonableString std_arge = new CGenClonableString("distCall");
includes.add(std_arge);
// node.getIncludes().add(std_arge);



// includes.add(std_arge);

// node.setin

}

@Override
public void caseADefaultClassDeclIR(ADefaultClassDeclIR node)
throws AnalysisException
{
ADefaultClassDeclIR cl = node;

// System.out.println("Dist transformation, method name: " + node.getName());

if(node.getTag()!=null){

String cpu = cl.getTag().toString();

AClassHeaderDeclIR header = node.getAncestor(AClassHeaderDeclIR.class);

List<CGenClonableString> includes = (List<CGenClonableString>) header.getIncludes();

CGenClonableString std_arge = new CGenClonableString("distCall");
includes.add(std_arge);

header.setIncludes(includes);

//header.getIncludes()


}
}


}

0 comments on commit ff81edd

Please sign in to comment.