| 86 }; |
86 }; |
| 87 |
87 |
| 88 // Mark types |
88 // Mark types |
| 89 enum marktype_e |
89 enum marktype_e |
| 90 { |
90 { |
| 91 MARKTYPE_LABEL, |
91 e_label_mark, |
| 92 MARKTYPE_IF, |
92 e_if_mark, |
| 93 MARKTYPE_INTERNAL, // internal structures |
93 e_internal_mark, // internal structures |
| 94 }; |
94 }; |
| 95 |
95 |
| 96 // Block types |
96 // Block types |
| 97 enum scopetype_e |
97 enum scopetype_e |
| 98 { |
98 { |
| 99 SCOPETYPE_UNKNOWN, |
99 e_unknown_scope, |
| 100 SCOPETYPE_IF, |
100 e_if_scope, |
| 101 SCOPETYPE_WHILE, |
101 e_while_scope, |
| 102 SCOPETYPE_FOR, |
102 e_for_scope, |
| 103 SCOPETYPE_DO, |
103 e_do_scope, |
| 104 SCOPETYPE_SWITCH, |
104 e_switch_scope, |
| 105 SCOPETYPE_ELSE, |
105 e_else_scope, |
| 106 }; |
106 }; |
| 107 |
107 |
| 108 // ============================================================================ |
108 // ============================================================================ |
| 109 // Meta-data about blocks |
109 // Meta-data about blocks |
| 110 struct ScopeInfo |
110 struct ScopeInfo |