comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/typesystem/GuardParser.java @ 8240:33e08aca06ff

Codegen API change. Simplified definition of guards.
author Christian Humer <christian.humer@gmail.com>
date Fri, 01 Mar 2013 18:04:23 +0100
parents 39d4a79568b6
children 703c09f8640c
comparison
equal deleted inserted replaced
8239:8fa2eed07f81 8240:33e08aca06ff
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 29
30 import com.oracle.truffle.api.codegen.*;
31 import com.oracle.truffle.codegen.processor.*; 30 import com.oracle.truffle.codegen.processor.*;
32 import com.oracle.truffle.codegen.processor.template.*; 31 import com.oracle.truffle.codegen.processor.template.*;
33 import com.oracle.truffle.codegen.processor.template.ParameterSpec.Cardinality; 32 import com.oracle.truffle.codegen.processor.template.ParameterSpec.Cardinality;
34 33
35 public class GuardParser extends TemplateMethodParser<Template, GuardData> { 34 public class GuardParser extends TemplateMethodParser<Template, GuardData> {
37 private final TypeSystemData typeSystem; 36 private final TypeSystemData typeSystem;
38 37
39 public GuardParser(ProcessorContext context, Template template, TypeSystemData typeSystem) { 38 public GuardParser(ProcessorContext context, Template template, TypeSystemData typeSystem) {
40 super(context, template); 39 super(context, template);
41 this.typeSystem = typeSystem; 40 this.typeSystem = typeSystem;
41 setEmitErrors(false);
42 setParseNullOnError(false);
42 } 43 }
43 44
44 @Override 45 @Override
45 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { 46 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) {
46 List<ParameterSpec> specs = new ArrayList<>(); 47 List<ParameterSpec> specs = new ArrayList<>();
49 return new MethodSpec(returnTypeSpec, specs); 50 return new MethodSpec(returnTypeSpec, specs);
50 } 51 }
51 52
52 @Override 53 @Override
53 public boolean isParsable(ExecutableElement method) { 54 public boolean isParsable(ExecutableElement method) {
54 return Utils.findAnnotationMirror(getContext().getEnvironment(), method, getAnnotationType()) != null; 55 return true;
55 } 56 }
56 57
57 @Override 58 @Override
58 public GuardData create(TemplateMethod method) { 59 public GuardData create(TemplateMethod method) {
59 return new GuardData(method, template); 60 return new GuardData(method, template);
60 } 61 }
61 62
62 @Override 63 @Override
63 public Class<? extends Annotation> getAnnotationType() { 64 public Class<? extends Annotation> getAnnotationType() {
64 return GuardCheck.class; 65 return null;
65 } 66 }
66 67
67 } 68 }