From: Jürg Billeter Date: Wed, 22 Nov 2006 10:07:38 +0000 (+0000) Subject: support enum members with values X-Git-Tag: VALA_0_0_6~27 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f5a378d66d02e7e161fdbb905a0c5bb32497e5e3;p=thirdparty%2Fvala.git support enum members with values 2006-11-22 Jürg Billeter * vala/parser.y, vala/valacodegenerator.vala: support enum members with values svn path=/trunk/; revision=180 --- diff --git a/vala/ChangeLog b/vala/ChangeLog index b84bc15b7..b28b3ed0b 100644 --- a/vala/ChangeLog +++ b/vala/ChangeLog @@ -1,3 +1,8 @@ +2006-11-22 Jürg Billeter + + * vala/parser.y, vala/valacodegenerator.vala: support enum members with + values + 2006-11-22 Jürg Billeter * vapi/glib-2.0.vala: add direct_hash and direct_equal diff --git a/vala/vala/parser.y b/vala/vala/parser.y index d19518c89..f4fee4583 100644 --- a/vala/vala/parser.y +++ b/vala/vala/parser.y @@ -2784,8 +2784,9 @@ enum_member_declaration } | opt_attributes IDENTIFIER ASSIGN expression { - $$ = vala_enum_value_new ($2); + $$ = vala_enum_value_new_with_value ($2, $4); g_free ($2); + g_object_unref ($4); } ; diff --git a/vala/vala/valacodegenerator.vala b/vala/vala/valacodegenerator.vala index b781f874d..57bd29812 100644 --- a/vala/vala/valacodegenerator.vala +++ b/vala/vala/valacodegenerator.vala @@ -911,7 +911,14 @@ public class Vala.CodeGenerator : CodeVisitor { } public override void visit_enum_value (EnumValue! ev) { - cenum.add_value (ev.get_cname (), null); + string val; + if (ev.value is LiteralExpression) { + var lit = ((LiteralExpression) ev.value).literal; + if (lit is IntegerLiteral) { + val = ((IntegerLiteral) lit).value; + } + } + cenum.add_value (ev.get_cname (), val); } public override void visit_end_callback (Callback! cb) {