language: Rename expression classes

Rename the expression classes to match the documentation.
This commit is contained in:
James Westman 2023-04-09 14:46:29 -05:00
parent ef39b5d7db
commit 9e82a2fb2a
5 changed files with 23 additions and 23 deletions

View file

@ -7,8 +7,8 @@ from .expression import (
CastExpr, CastExpr,
ClosureArg, ClosureArg,
ClosureExpr, ClosureExpr,
Expr, ExprBase,
ExprChain, Expression,
LiteralExpr, LiteralExpr,
LookupOp, LookupOp,
) )

View file

@ -20,19 +20,19 @@
from dataclasses import dataclass from dataclasses import dataclass
from .common import * from .common import *
from .expression import ExprChain, LookupOp, LiteralExpr from .expression import Expression, LookupOp, LiteralExpr
from .contexts import ValueTypeCtx from .contexts import ValueTypeCtx
class Binding(AstNode): class Binding(AstNode):
grammar = [ grammar = [
Keyword("bind"), Keyword("bind"),
ExprChain, Expression,
] ]
@property @property
def expression(self) -> ExprChain: def expression(self) -> Expression:
return self.children[ExprChain][0] return self.children[Expression][0]
@property @property
def simple_binding(self) -> T.Optional["SimpleBinding"]: def simple_binding(self) -> T.Optional["SimpleBinding"]:

View file

@ -27,7 +27,7 @@ from .gtkbuilder_template import Template
expr = Sequence() expr = Sequence()
class Expr(AstNode): class ExprBase(AstNode):
@context(ValueTypeCtx) @context(ValueTypeCtx)
def value_type(self) -> ValueTypeCtx: def value_type(self) -> ValueTypeCtx:
if rhs := self.rhs: if rhs := self.rhs:
@ -44,8 +44,8 @@ class Expr(AstNode):
return True return True
@property @property
def rhs(self) -> T.Optional["Expr"]: def rhs(self) -> T.Optional["ExprBase"]:
if isinstance(self.parent, ExprChain): if isinstance(self.parent, Expression):
children = list(self.parent.children) children = list(self.parent.children)
if children.index(self) + 1 < len(children): if children.index(self) + 1 < len(children):
return children[children.index(self) + 1] return children[children.index(self) + 1]
@ -55,11 +55,11 @@ class Expr(AstNode):
return None return None
class ExprChain(Expr): class Expression(ExprBase):
grammar = expr grammar = expr
@property @property
def last(self) -> Expr: def last(self) -> ExprBase:
return self.children[-1] return self.children[-1]
@property @property
@ -71,14 +71,14 @@ class ExprChain(Expr):
return self.last.type_complete return self.last.type_complete
class InfixExpr(Expr): class InfixExpr(ExprBase):
@property @property
def lhs(self): def lhs(self):
children = list(self.parent_by_type(ExprChain).children) children = list(self.parent_by_type(Expression).children)
return children[children.index(self) - 1] return children[children.index(self) - 1]
class LiteralExpr(Expr): class LiteralExpr(ExprBase):
grammar = LITERAL grammar = LITERAL
@property @property
@ -208,18 +208,18 @@ class CastExpr(InfixExpr):
class ClosureArg(AstNode): class ClosureArg(AstNode):
grammar = ExprChain grammar = Expression
@property @property
def expr(self) -> ExprChain: def expr(self) -> Expression:
return self.children[ExprChain][0] return self.children[Expression][0]
@context(ValueTypeCtx) @context(ValueTypeCtx)
def value_type(self) -> ValueTypeCtx: def value_type(self) -> ValueTypeCtx:
return ValueTypeCtx(None) return ValueTypeCtx(None)
class ClosureExpr(Expr): class ClosureExpr(ExprBase):
grammar = [ grammar = [
Optional(["$", UseLiteral("extern", True)]), Optional(["$", UseLiteral("extern", True)]),
UseIdent("name"), UseIdent("name"),
@ -257,6 +257,6 @@ class ClosureExpr(Expr):
expr.children = [ expr.children = [
AnyOf(ClosureExpr, LiteralExpr, ["(", ExprChain, ")"]), AnyOf(ClosureExpr, LiteralExpr, ["(", Expression, ")"]),
ZeroOrMore(AnyOf(LookupOp, CastExpr)), ZeroOrMore(AnyOf(LookupOp, CastExpr)),
] ]

View file

@ -19,7 +19,7 @@
from dataclasses import dataclass from dataclasses import dataclass
from .expression import ExprChain from .expression import Expression
from .gobject_object import Object from .gobject_object import Object
from .gtkbuilder_template import Template from .gtkbuilder_template import Template
from .values import Value, ObjectValue from .values import Value, ObjectValue

View file

@ -211,15 +211,15 @@ class XmlOutput(OutputFormat):
else: else:
raise CompilerBugError() raise CompilerBugError()
def _emit_expression(self, expression: ExprChain, xml: XmlEmitter): def _emit_expression(self, expression: Expression, xml: XmlEmitter):
self._emit_expression_part(expression.last, xml) self._emit_expression_part(expression.last, xml)
def _emit_expression_part(self, expression: Expr, xml: XmlEmitter): def _emit_expression_part(self, expression: ExprBase, xml: XmlEmitter):
if isinstance(expression, LiteralExpr): if isinstance(expression, LiteralExpr):
self._emit_literal_expr(expression, xml) self._emit_literal_expr(expression, xml)
elif isinstance(expression, LookupOp): elif isinstance(expression, LookupOp):
self._emit_lookup_op(expression, xml) self._emit_lookup_op(expression, xml)
elif isinstance(expression, ExprChain): elif isinstance(expression, Expression):
self._emit_expression(expression, xml) self._emit_expression(expression, xml)
elif isinstance(expression, CastExpr): elif isinstance(expression, CastExpr):
self._emit_cast_expr(expression, xml) self._emit_cast_expr(expression, xml)