-{%- macro enum_def(enum_init, enum) %}
- {{enum_init}} = {
-{%- set next_value = 0 %}
+{%- macro enum_def(enum_name, enum, module) -%}
+ {{enum_name}} = {};
+
+{%- set prev_enum = 0 %}
{%- for field in enum.fields %}
{%- if field.value %}
-{%- set next_value = field.value|int %}
+ {{enum_name}}.{{field.name}} = {{field.value|expression_to_text(module)}};
+{%- elif loop.first %}
+ {{enum_name}}.{{field.name}} = 0;
+{%- else %}
+ {{enum_name}}.{{field.name}} = {{enum_name}}.{{enum.fields[loop.index0 - 1].name}} + 1;
{%- endif %}
- {{field.name}}: {{next_value}},
-{%- set next_value = next_value + 1 %}
{%- endfor %}
- };
{%- endmacro %}