1 module nxt.ada_defs;
2 
3 /// Logical Operators
4 enum operatorsLogical = ["and", "or", "xor"];
5 
6 /// Relational Operators
7 enum operatorsRelational = ["/=", "=", "<", "<=", ">", ">="];
8 
9 /// Binary Adding Operators
10 enum operatorsBinaryAdding = ["+", "-", "&"];
11 
12 /// Unary Adding Operators
13 enum operatorsUnaryAdding = ["+", "-"];
14 
15 /// Multiplying Operators
16 enum operatorsMultiplying = ["*", "/", "mod", "rem"];
17 
18 /// Parens
19 enum operatorsParens = ["(", ")", "[", "]", "{", "}"];
20 
21 /// Assignment
22 enum operatorsAssignment = [":="];
23 
24 /// Other Operators
25 enum operatorsOther = ["**", "not", "abs", "in",
26 					   ".", ",", ";", "..",
27 					   "<>",
28 					   "<<",
29 					   ">>"];
30 
31 /// Operators
32 enum operators = (operatorsLogical
33 				  ~ operatorsRelational
34 				  ~ operatorsBinaryAdding
35 				  ~ operatorsUnaryAdding
36 				  ~ operatorsMultiplying
37 				  ~ operatorsParens
38 				  ~ operatorsAssignment
39 				  ~ operatorsOther
40 	);
41 
42 /// Kewords Ada 83
43 enum keywords83 = [ "abort", "else", "new", "return", "abs", "elsif", "not", "reverse",
44 					"end", "null", "accept", "entry", "select", "access", "exception", "of", "separate",
45 					"exit", "or", "subtype", "all", "others", "and", "for", "out", "array",
46 					"function", "task", "at", "package", "terminate", "generic", "pragma", "then", "begin", "goto", "private",
47 					"type", "body", "procedure", "if", "case", "in", "use", "constant", "is", "raise",
48 					"range", "when", "declare", "limited", "record", "while", "delay", "loop", "rem", "with", "delta", "renames",
49 					"digits", "mod", "xor", "do", ];
50 
51 /// New Kewords in Ada 95
52 enum keywordsNew95 = ["abstract", "aliased", "tagged", "protected", "until", "requeue"];
53 
54 /// New Kewords in Ada 2005
55 enum keywordsNew2005 = ["synchronized", "overriding", "interface"];
56 
57 /// New Kewords in Ada 2012
58 enum keywordsNew2012 = ["some"];
59 
60 /// Kewords in Ada 2012
61 enum keywords2012 = (keywords83 ~ keywordsNew95 ~ keywordsNew2005 ~ keywordsNew2012);