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,
ClosureArg,
ClosureExpr,
Expr,
ExprChain,
ExprBase,
Expression,
LiteralExpr,
LookupOp,
)

View file

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

View file

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

View file

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