blob: c25db77bef6133aa13d81a65362e23dd3835ff78 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package org.eclipse.etrice.generator.c.gen;
import org.eclipse.etrice.core.room.PrimitiveType;
import org.eclipse.etrice.core.room.VarDecl;
import org.eclipse.etrice.generator.generic.AbstractLanguageGenerator;
public class CLanguageGenerator extends AbstractLanguageGenerator {
public String[] getArglistAndTypedData(VarDecl data) {
if (data==null)
return new String[] {"", "", ""};
String typeName = data.getRefType().getType().getName();
String castTypeName = typeName+"*";
boolean byVal = false;
if (data.getRefType().getType() instanceof PrimitiveType) {
typeName = ((PrimitiveType)data.getRefType().getType()).getTargetName();
String ct = ((PrimitiveType)data.getRefType().getType()).getCastName();
byVal = true;
if (ct!=null && !ct.isEmpty())
castTypeName = ct;
}
else {
typeName = typeName+"*";
}
String typedData = typeName+" "+data.getName() + " = "+(byVal? "*":"")+"(("+castTypeName+") generic_data);\n";
String dataArg = ", "+data.getName();
String typedArgList = ", "+typeName+" "+data.getName();
return new String[]{dataArg, typedData, typedArgList};
}
}
|