+2008-02-29 Jürg Billeter <j@bitron.ch>
+
+ * vala/parser.y, vala/valacodecontext.vala, vala/valaenumvalue.vala:
+ use source_reference for enum values
+
2008-02-29 Jürg Billeter <j@bitron.ch>
* vapi/packages/gtk+-2.0/: fix gtk_menu_popup binding
;
enum_member_declaration
- : opt_attributes identifier
+ : comment opt_attributes identifier
{
- ValaEnumValue *ev = vala_code_context_create_enum_value (context, $2);
- g_free ($2);
+ ValaSourceReference *src;
+ ValaEnumValue *ev;
+
+ src = src_com(@3, $1);
+ ev = vala_code_context_create_enum_value (context, $3, src);
+ g_free ($3);
vala_enum_add_value (VALA_ENUM (symbol_stack->data), ev);
g_object_unref (ev);
}
- | opt_attributes identifier ASSIGN expression
+ | comment opt_attributes identifier ASSIGN expression
{
- ValaEnumValue *ev = vala_code_context_create_enum_value_with_value (context, $2, $4);
- g_free ($2);
- g_object_unref ($4);
+ ValaSourceReference *src;
+ ValaEnumValue *ev;
+
+ src = src_com(@3, $1);
+ ev = vala_code_context_create_enum_value_with_value (context, $3, $5, src);
+ g_free ($3);
+ g_object_unref ($5);
vala_enum_add_value (VALA_ENUM (symbol_stack->data), ev);
g_object_unref (ev);
}
return node;
}
- public EnumValue! create_enum_value (string! name) {
- var node = new EnumValue (name);
+ public EnumValue! create_enum_value (string! name, SourceReference source_reference = null) {
+ var node = new EnumValue (name, source_reference);
node.code_binding = codegen.create_enum_value_binding (node);
return node;
}
- public EnumValue! create_enum_value_with_value (string! name, Expression value) {
- var node = new EnumValue.with_value (name, value);
+ public EnumValue! create_enum_value_with_value (string! name, Expression value, SourceReference source_reference = null) {
+ var node = new EnumValue.with_value (name, value, source_reference);
node.code_binding = codegen.create_enum_value_binding (node);
return node;
}
* @param name enum value name
* @return newly created enum value
*/
- public EnumValue (construct string! name) {
+ public EnumValue (construct string! name, SourceReference source_reference = null) {
+ this.source_reference = source_reference;
}
/**
* @param value numerical representation
* @return newly created enum value
*/
- public EnumValue.with_value (construct string! name, construct Expression value) {
+ public EnumValue.with_value (construct string! name, construct Expression value, SourceReference source_reference = null) {
+ this.source_reference = source_reference;
}
public override void accept (CodeVisitor! visitor) {