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);