34 #include "macros.h" |
34 #include "macros.h" |
35 #include "stringClass.h" |
35 #include "stringClass.h" |
36 |
36 |
37 static const std::nullptr_t null = nullptr; |
37 static const std::nullptr_t null = nullptr; |
38 |
38 |
39 // ============================================================================= |
39 // _________________________________________________________________________________________________ |
40 // |
40 // |
41 named_enum DataType : char |
41 named_enum DataType : char |
42 { |
42 { |
43 TYPE_Unknown, |
43 TYPE_Unknown, |
44 TYPE_Void, |
44 TYPE_Void, |
45 TYPE_Int, |
45 TYPE_Int, |
46 TYPE_String, |
46 TYPE_String, |
47 TYPE_Bool, |
47 TYPE_Bool, |
48 }; |
48 }; |
49 |
49 |
50 // ============================================================================= |
50 // _________________________________________________________________________________________________ |
51 // |
51 // |
52 struct ByteMark |
52 struct ByteMark |
53 { |
53 { |
54 String name; |
54 String name; |
55 int pos; |
55 int pos; |
56 }; |
56 }; |
57 |
57 |
58 // ============================================================================= |
58 // _________________________________________________________________________________________________ |
59 // |
59 // |
60 struct MarkReference |
60 struct MarkReference |
61 { |
61 { |
62 ByteMark* target; |
62 ByteMark* target; |
63 int pos; |
63 int pos; |
64 }; |
64 }; |
65 |
65 |
66 // ============================================================================= |
66 // _________________________________________________________________________________________________ |
67 // |
67 // |
68 // Get absolute value of @a |
68 // Get absolute value of @a |
69 // |
69 // |
70 template<class T> inline T abs (T a) |
70 template<class T> inline T abs (T a) |
71 { |
71 { |