source: proto/pablo/src/compiler/lang/pabloS/Builtins.java @ 2757

Last change on this file since 2757 was 2757, checked in by ksherdy, 6 years ago

Renamed package from pablo to pabloS.

File size: 1.8 KB
Line 
1package compiler.lang.pabloS;
2
3import java.util.ArrayList;
4import java.util.List;
5
6public enum Builtins {
7
8    ADVANCE(Carry.One, "Advance", 1),
9    SCANTOFIRST(Carry.One, "ScanToFirst", 1),
10    SCANTHRU(Carry.One, "ScanThru", 2),
11    SCANTO(Carry.One, "ScanTo", 2),
12    ADVANCETHENSCANTHRU(Carry.One, "AdvanceThenScanThru", 2),
13    ADVANCETHENSCANTO(Carry.One, "AdvanceThenScanTo", 2),
14    SPANUPTO(Carry.One, "SpanUpTo", 2),
15    INCLUSIVESPAN(Carry.One, "InclusiveSpan", 2),
16    EXCLUSIVESPAN(Carry.One, "ExclusiveSpan", 2),   
17
18    ADVANCE32(Carry.N, "Advance32", 1),
19    ADVANCEN(Carry.N, "Advance", 2),
20
21    ATEOF(Carry.None, "atEOF", 1),
22    INFILE(Carry.None, "inFile", 1), 
23    ASSERTZERO(Carry.None, "assert_0", 2),     
24    EOFMASK(Carry.None, "EOF_mask", 0), // deprecated
25       
26    PRINTBITBLOCK(Carry.None, "PrintBitBlock", 1),
27    ASSERTBITBLOCKALIGN(Carry.None, "AssertBitBlockAlign", 1);
28   
29    public enum Carry{One, N, None};   
30   
31    private final Carry type;
32        private final String pabloName;
33        private final int argCount;
34       
35        private Builtins(Carry type, String pabloName, int argCount) {
36                this.type = type;
37                this.pabloName = pabloName;
38                this.argCount = argCount;
39        }
40       
41        public String pabloName() { return this.pabloName; }
42        public int argCount() { return this.argCount; }
43
44        public static List<Builtins> carryOneOperations () {
45               
46                ArrayList<Builtins> carryN = new ArrayList<Builtins>();
47               
48                for (Builtins operation : Builtins.values()) { 
49                        if (Carry.One == operation.type) {
50                                carryN.add(operation);
51                        }
52                }
53               
54                return carryN;
55        }       
56       
57        public static List<Builtins> carryNOperations () {
58               
59                ArrayList<Builtins> carryN = new ArrayList<Builtins>();
60               
61                for (Builtins operation : Builtins.values()) { 
62                        if (Carry.N == operation.type) {
63                                carryN.add(operation);
64                        }
65                }
66               
67                return carryN;
68        }
69       
70}
Note: See TracBrowser for help on using the repository browser.