comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java @ 18771:15fe16c45d64

Truffle-DSL: changed specialization class naming scheme to use method name. This usually leads to shorter specialization class names.
author Christian Humer <christian.humer@gmail.com>
date Mon, 05 Jan 2015 01:31:07 +0100
parents a720bf2e2f43
children 674c8a6d5e6c
comparison
equal deleted inserted replaced
18770:2c669386b5d0 18771:15fe16c45d64
50 50
51 public class NodeGenFactory { 51 public class NodeGenFactory {
52 52
53 private static final String FRAME_VALUE = "frameValue"; 53 private static final String FRAME_VALUE = "frameValue";
54 54
55 private static final String NAME_SUFFIX = "_";
56
55 private final ProcessorContext context; 57 private final ProcessorContext context;
56 private final NodeData node; 58 private final NodeData node;
57 private final TypeSystemData typeSystem; 59 private final TypeSystemData typeSystem;
58 private final TypeData genericType; 60 private final TypeData genericType;
59 private final DSLOptions options; 61 private final DSLOptions options;
81 public static TypeMirror nodeType(NodeData node) { 83 public static TypeMirror nodeType(NodeData node) {
82 return new GeneratedTypeMirror(ElementUtils.getPackageName(node.getTemplateType()), nodeTypeName(node)); 84 return new GeneratedTypeMirror(ElementUtils.getPackageName(node.getTemplateType()), nodeTypeName(node));
83 } 85 }
84 86
85 private static String specializationTypeName(SpecializationData specialization) { 87 private static String specializationTypeName(SpecializationData specialization) {
86 return specialization.getId() + "Node"; 88 return specialization.getId() + "Node_";
87 } 89 }
88 90
89 private static TypeMirror specializationType(SpecializationData specialization) { 91 private static TypeMirror specializationType(SpecializationData specialization) {
90 return new GeneratedTypeMirror(ElementUtils.getPackageName(specialization.getNode().getTemplateType()) + "." + nodeTypeName(specialization.getNode()), specializationTypeName(specialization)); 92 return new GeneratedTypeMirror(ElementUtils.getPackageName(specialization.getNode().getTemplateType()) + "." + nodeTypeName(specialization.getNode()), specializationTypeName(specialization));
91 } 93 }
92 94
93 private static String polymorphicTypeProfileFieldName(NodeExecutionData execution) { 95 private static String polymorphicTypeProfileFieldName(NodeExecutionData execution) {
94 return execution.getName() + "Type_"; 96 return execution.getName() + "Type" + NAME_SUFFIX;
95 } 97 }
96 98
97 private static String nodeFieldName(NodeExecutionData execution) { 99 private static String nodeFieldName(NodeExecutionData execution) {
98 return execution.getName() + "_"; 100 return execution.getName() + NAME_SUFFIX;
99 } 101 }
100 102
101 private static String specializationStartFieldName() { 103 private static String specializationStartFieldName() {
102 return "specialization_"; 104 return "specialization" + NAME_SUFFIX;
103 } 105 }
104 106
105 private static String excludedFieldName(SpecializationData specialization) { 107 private static String excludedFieldName(SpecializationData specialization) {
106 return "exclude" + specialization.getId() + "_"; 108 return "exclude" + specialization.getId() + NAME_SUFFIX;
107 } 109 }
108 110
109 private static String executeChildMethodName(NodeExecutionData execution, TypeData type) { 111 private static String executeChildMethodName(NodeExecutionData execution, TypeData type) {
110 return "execute" + ElementUtils.firstLetterUpperCase(execution.getName()) + (type.isGeneric() ? "" : getTypeId(type.getBoxedType())) + "_"; 112 return "execute" + ElementUtils.firstLetterUpperCase(execution.getName()) + (type.isGeneric() ? "" : getTypeId(type.getBoxedType())) + NAME_SUFFIX;
111 } 113 }
112 114
113 private static CodeTree accessParent(String name) { 115 private static CodeTree accessParent(String name) {
114 if (name == null) { 116 if (name == null) {
115 return CodeTreeBuilder.singleString("root"); 117 return CodeTreeBuilder.singleString("root");
307 } 309 }
308 310
309 // create specialization 311 // create specialization
310 312
311 private CodeTypeElement createBaseSpecialization(CodeTypeElement parentClass) { 313 private CodeTypeElement createBaseSpecialization(CodeTypeElement parentClass) {
312 CodeTypeElement clazz = createClass(node, null, modifiers(PRIVATE, STATIC, ABSTRACT), "BaseNode", TypeSystemNodeFactory.nodeType(typeSystem)); 314 CodeTypeElement clazz = createClass(node, null, modifiers(PRIVATE, ABSTRACT, STATIC), "BaseNode_", TypeSystemNodeFactory.nodeType(typeSystem));
313 315
314 clazz.addOptional(createSpecializationConstructor(clazz, null, null)); 316 clazz.addOptional(createSpecializationConstructor(clazz, null, null));
315 clazz.add(new CodeVariableElement(modifiers(PROTECTED, FINAL), nodeType(node), "root")); 317 clazz.add(new CodeVariableElement(modifiers(PROTECTED, FINAL), nodeType(node), "root"));
316 318
317 clazz.addOptional(createUnsupported()); 319 clazz.addOptional(createUnsupported());