Skip to content

Commit

Permalink
pydusa: exposed variable expression
Browse files Browse the repository at this point in the history
  • Loading branch information
gg committed Dec 2, 2016
1 parent ce206eb commit 64f3e1c
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion src/tools/pydusa/py_expression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ void PydusaExpression(py::module& rMod)
;

// symbolic expression class inherited from base expression class

auto const& rSymbolicExpressionClass = py::class_<SymbolicExpression, SymbolicExpression::SPType>(rMod, "SymbolicExpression", py::base<Expression>())
.def("__str__", &SymbolicExpression::ToString)
.def_property_readonly("type", &SymbolicExpression::GetType)
Expand All @@ -115,6 +115,14 @@ void PydusaExpression(py::module& rMod)
.def_property_readonly("expression", &SymbolicExpression::GetExpression)
;

// variable expression class inherited from base expression class

auto const& rVariableExpressionClass = py::class_<VariableExpression, VariableExpression::SPType>(rMod, "VariableExpression", py::base<Expression>())
.def("__str__", &VariableExpression::ToString)
.def_property_readonly("type", &VariableExpression::GetAction)
.def_property_readonly("name", &VariableExpression::GetName)
;

// operation expression class inherited from base expression class

auto const& rOperationExpressionClass = py::class_<OperationExpression, OperationExpression::SPType>(rMod, "OperationExpression", py::base<Expression>())
Expand Down Expand Up @@ -150,6 +158,7 @@ void PydusaExpression(py::module& rMod)
.def("expr_make_bin_op", &Expr::MakeBinOp)
.def("expr_make_assign", &Expr::MakeAssign)
.def("expr_make_sym", &Expr::MakeSym)
.def("expr_make_var", &Expr::MakeVar)
;

// exposing enumerations
Expand Down Expand Up @@ -207,6 +216,13 @@ void PydusaExpression(py::module& rMod)
.value("SYM_UNDEFINED", SymbolicExpression::Undefined)
;

py::enum_<VariableExpression::ActionType>(rVariableExpressionClass, "Type")
.value("VAR_UNKNOWN", VariableExpression::Unknown)
.value("VAR_ALLOC", VariableExpression::Alloc)
.value("VAR_FREE", VariableExpression::Free)
.value("VAR_USE", VariableExpression::Use)
;

py::class_<ExpressionVisitor>(rMod, "ExpressionVisitor");

py::class_<NormalizeIdentifier>(rMod, "NormalizeIdentifier", py::base<ExpressionVisitor>())
Expand Down

0 comments on commit 64f3e1c

Please sign in to comment.