mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
language: Rename expression classes
Rename the expression classes to match the documentation.
This commit is contained in:
parent
ef39b5d7db
commit
9e82a2fb2a
5 changed files with 23 additions and 23 deletions
|
@ -7,8 +7,8 @@ from .expression import (
|
|||
CastExpr,
|
||||
ClosureArg,
|
||||
ClosureExpr,
|
||||
Expr,
|
||||
ExprChain,
|
||||
ExprBase,
|
||||
Expression,
|
||||
LiteralExpr,
|
||||
LookupOp,
|
||||
)
|
||||
|
|
|
@ -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"]:
|
||||
|
|
|
@ -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)),
|
||||
]
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue