1 /*
2 * #%L
3 * prolobjectlink-jpi
4 * %%
5 * Copyright (C) 2019 Prolobjectlink Project
6 * %%
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 * copies of the Software, and to permit persons to whom the Software is
12 * furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in
15 * all copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 * THE SOFTWARE.
24 * #L%
25 */
26 package io.github.prolobjectlink.prolog;
27
28 /**
29 * Contains all PrologTerm types constants
30 *
31 * @author Jose Zalacain
32 * @since 1.0
33 */
34 public final class PrologTermType {
35
36 // constant for prolog variables
37
38 /**
39 * Variable type constant
40 */
41 public static final int VARIABLE_TYPE = 0x100;
42
43 // constants for prolog numbers
44
45 /**
46 * Integer type constant
47 */
48 public static final int INTEGER_TYPE = 0x200;
49
50 /**
51 * Long type constant
52 */
53 public static final int LONG_TYPE = 0x201;
54
55 /**
56 * Float type constant
57 */
58 public static final int FLOAT_TYPE = 0x202;
59
60 /**
61 * Double type constant
62 */
63 public static final int DOUBLE_TYPE = 0x203;
64
65 // constant for prolog atoms
66
67 /**
68 * Atom type constant
69 */
70 public static final int ATOM_TYPE = 0x300;
71
72 /**
73 * Nil type constant
74 */
75 public static final int NIL_TYPE = 0x301;
76
77 /**
78 * False type constant
79 */
80 public static final int FALSE_TYPE = 0x302;
81
82 /**
83 * True type constant
84 */
85 public static final int TRUE_TYPE = 0x303;
86
87 /**
88 * Cut type constant
89 */
90 public static final int CUT_TYPE = 0x304;
91
92 /**
93 * Fail type constant
94 */
95 public static final int FAIL_TYPE = 0x305;
96
97 // constant for special objects
98
99 /**
100 * Object type constant
101 */
102 public static final int OBJECT_TYPE = 0x400;
103
104 /**
105 * Stream type constant
106 */
107 public static final int STREAM_TYPE = 0x401;
108
109 // constants for prolog list and prolog structure
110
111 /**
112 * List type constant
113 */
114 public static final int LIST_TYPE = 0x501;
115
116 /**
117 * Structure type constant
118 */
119 public static final int STRUCTURE_TYPE = 0x502;
120
121 /**
122 * Map Entry type constant
123 */
124 public static final int MAP_ENTRY_TYPE = 0x503;
125
126 /**
127 * Map type constant
128 */
129 public static final int MAP_TYPE = 0x504;
130
131 /**
132 * Interface type constant
133 */
134 public static final int MIXIN_TYPE = 0x505;
135
136 /**
137 * Class type constant
138 */
139 public static final int CLASS_TYPE = 0x506;
140
141 /**
142 * Namespace type constant
143 */
144 public static final int NAMESPACE_TYPE = 0x507;
145
146 /**
147 * Field type constant
148 */
149 public static final int FIELD_TYPE = 0x508;
150
151 /**
152 * Method type constant
153 */
154 public static final int METHOD_TYPE = 0x509;
155
156 /**
157 * Result type constant
158 */
159 public static final int RESULT_TYPE = 0x50A;
160
161 /**
162 * Parameter type constant
163 */
164 public static final int PARAMETER_TYPE = 0x50B;
165
166 private PrologTermType() {
167 }
168
169 }