comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/typesystem/GuardParser.java @ 8245:703c09f8640c

Implemented support for @NodeClass annotation to support builtins.
author Christian Humer <christian.humer@gmail.com>
date Wed, 06 Mar 2013 18:32:33 +0100
parents 33e08aca06ff
children a80bf36c6a1e
comparison
equal deleted inserted replaced
8244:10d37f893471 8245:703c09f8640c
24 24
25 import java.lang.annotation.*; 25 import java.lang.annotation.*;
26 import java.util.*; 26 import java.util.*;
27 27
28 import javax.lang.model.element.*; 28 import javax.lang.model.element.*;
29 import javax.lang.model.type.*;
29 30
30 import com.oracle.truffle.codegen.processor.*; 31 import com.oracle.truffle.codegen.processor.*;
31 import com.oracle.truffle.codegen.processor.template.*; 32 import com.oracle.truffle.codegen.processor.template.*;
32 import com.oracle.truffle.codegen.processor.template.ParameterSpec.Cardinality; 33 import com.oracle.truffle.codegen.processor.template.ParameterSpec.Cardinality;
33 34
45 @Override 46 @Override
46 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { 47 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) {
47 List<ParameterSpec> specs = new ArrayList<>(); 48 List<ParameterSpec> specs = new ArrayList<>();
48 specs.add(new ParameterSpec("valueN", typeSystem, false, Cardinality.MULTIPLE)); 49 specs.add(new ParameterSpec("valueN", typeSystem, false, Cardinality.MULTIPLE));
49 ParameterSpec returnTypeSpec = new ParameterSpec("returnType", getContext().getType(boolean.class), false); 50 ParameterSpec returnTypeSpec = new ParameterSpec("returnType", getContext().getType(boolean.class), false);
50 return new MethodSpec(returnTypeSpec, specs); 51 return new MethodSpec(Collections.<TypeMirror> emptyList(), returnTypeSpec, specs);
51 } 52 }
52 53
53 @Override 54 @Override
54 public boolean isParsable(ExecutableElement method) { 55 public boolean isParsable(ExecutableElement method) {
55 return true; 56 return true;
56 } 57 }
57 58
58 @Override 59 @Override
59 public GuardData create(TemplateMethod method) { 60 public GuardData create(TemplateMethod method) {
60 return new GuardData(method, template); 61 return new GuardData(method);
61 } 62 }
62 63
63 @Override 64 @Override
64 public Class<? extends Annotation> getAnnotationType() { 65 public Class<? extends Annotation> getAnnotationType() {
65 return null; 66 return null;