language: Add expression literals

Add expression literals, so you can set properties of type
Gtk.Expression.
This commit is contained in:
James Westman 2024-12-24 12:54:23 -06:00
parent a6d57cebec
commit ffb125a725
No known key found for this signature in database
GPG key ID: CE2DBA0ADB654EA6
27 changed files with 263 additions and 11 deletions

View file

@ -205,6 +205,8 @@ class XmlOutput(OutputFormat):
xml.put_text(self._object_id(value, value.ident))
elif isinstance(value, TypeLiteral):
xml.put_text(value.type_name.glib_type_name)
elif isinstance(value, ExprLiteral):
self._emit_expression(value.expression, xml)
else:
if isinstance(value.value, float) and value.value == int(value.value):
xml.put_text(int(value.value))
@ -245,6 +247,9 @@ class XmlOutput(OutputFormat):
raise CompilerBugError()
def _emit_literal_expr(self, expr: LiteralExpr, xml: XmlEmitter):
if expr.is_this:
return
if expr.is_object:
xml.start_tag("constant")
else: