Skip to content

Expression Resolver

Expression Resolver.

ExprResolver

Bases: Object

Expression Resolver.

Maximum Parser Example

Basics:

>>> import ucdp as u
>>> idents = u.Idents([
...     u.Signal(u.UintType(16), 'uint_s'),
...     u.Signal(u.SintType(16), 'sint_s'),
... ])
>>> parser = u.ExprParser(namespace=idents)
>>> expr = parser.parse('uint_s') * parser.const(2)
>>> expr
Op(Signal(UintType(16), 'uint_s'), '*', ConstExpr(IntegerType(default=2)))

>>> resolver = u.ExprResolver(namespace=idents)
>>> resolver.resolve(expr)
'uint_s * 0x2'
>>> resolver.resolve(expr, brackets=True)
'(uint_s * 0x2)'

__call__

__call__(expr, brackets=False)

Resolve.

Parameters:

Name Type Description Default
expr Expr

Expression

required
brackets bool

Use brackets if necessary for topmost expr.

False

resolve

resolve(expr, brackets=False)

Resolve.

Parameters:

Name Type Description Default
expr Expr | Note

Expression

required
brackets bool

Use brackets if necessary for topmost expr.

False

resolve_slice

resolve_slice(slice_)

Resolve Slice.

resolve_value

resolve_value(type_, value=None)

Resolve Value.