source: proto/s2k/trunk/framework/src/toolchain/s2k/lang/paramBuiltin/S2KParamBuiltins.java @ 4106

Last change on this file since 4106 was 4106, checked in by ksherdy, 4 years ago

Refactored support for sk s2k functions.

File size: 2.2 KB
Line 
1package toolchain.s2k.lang.paramBuiltin;
2
3//import static toolchain.s2k.lang.signatures.SignatureShorthand.sig_V_V;
4
5import java.util.HashMap;
6import java.util.Map;
7// import static toolchain.s2k.lang.signatures.SignatureShorthand.sig_S_S;
8
9import toolchain.s2k.lang.paramBuiltin.S2KParamBuiltin;
10
11public enum S2KParamBuiltins implements S2KParamBuiltin {
12
13    HSTRM_PACKH(               "packh"), //,    sig_S_S()  );
14    HSTRM_PACKL(               "packl"), //,    sig_S_S()  );   
15    NULL_BUILTIN(              "NULL"); //,    sig_V_V()  );
16   
17    private final String name;
18    //private final FunctionSignature signature;
19
20    private S2KParamBuiltins(String name) { //, FunctionSignature signature) {
21        this.name = name;
22        // this.signature = signature;
23    }
24
25    /////////////////////////////////////////////////////////////////
26    // forName(String)  mechanism
27    /////////////////////////////////////////////////////////////////
28    static private Map<String, S2KParamBuiltins> builtinForName = new HashMap<String, S2KParamBuiltins>();
29    static {
30        for(S2KParamBuiltins builtin: values()) {
31            builtinForName.put(builtin.fullyQualifiedName(), builtin);
32        }
33    }
34
35    static public boolean isS2KParamBuiltins(String fullyQualifiedName) {
36        return forName(fullyQualifiedName) != NULL_BUILTIN;
37    }
38   
39    static public S2KParamBuiltins forName(String fullyQualifiedName) {
40        if(builtinForName.containsKey(fullyQualifiedName)) {
41            return builtinForName.get(fullyQualifiedName);
42        }
43        return NULL_BUILTIN;
44    }
45   
46    /////////////////////////////////////////////////////////////////
47    // queries
48    /////////////////////////////////////////////////////////////////
49    public String fullyQualifiedName () { return packageName() + "." + this.baseName() ;}
50    public String packageName() { return  this.name().toLowerCase().split("_")[0]; }
51    public String baseName() { return this.name; }
52//    public FunctionSignature getSignature() { return signature; }
53
54
55   
56        @Override
57        public String infoString() {
58                // TODO Auto-generated method stub
59                return null;
60        }
61
62        @Override
63        public S2KParamBuiltin getConcreteBuiltin() {
64                // TODO Auto-generated method stub
65                return null;
66        }
67
68}
Note: See TracBrowser for help on using the repository browser.