Numworks Epsilon  1.4.1
Graphing Calculator Operating System
parenthesis.cpp
Go to the documentation of this file.
1 extern "C" {
2 #include <assert.h>
3 #include <stdlib.h>
4 }
5 #include <poincare/parenthesis.h>
7 
8 namespace Poincare {
9 
10 
12  return Type::Parenthesis;
13 }
14 
16  Parenthesis * o = new Parenthesis(m_operands, true);
17  return o;
18 }
19 
20 int Parenthesis::polynomialDegree(char symbolName) const {
21  return operand(0)->polynomialDegree(symbolName);
22 }
23 
24 ExpressionLayout * Parenthesis::privateCreateLayout(PrintFloat::Mode floatDisplayMode, ComplexFormat complexFormat) const {
25  assert(floatDisplayMode != PrintFloat::Mode::Default);
26  assert(complexFormat != ComplexFormat::Default);
27  return new ParenthesisLayout(operand(0)->createLayout(floatDisplayMode, complexFormat));
28 }
29 
30 Expression * Parenthesis::shallowReduce(Context& context, AngleUnit angleUnit) {
31  Expression * e = Expression::shallowReduce(context, angleUnit);
32  if (e != this) {
33  return e;
34  }
35  return replaceWith(editableOperand(0), true);
36 }
37 
38 template<typename T>
39 Expression * Parenthesis::templatedApproximate(Context& context, AngleUnit angleUnit) const {
40  return operand(0)->approximate<T>(context, angleUnit);
41 }
42 
43 }
int polynomialDegree(char symbolName) const override
Definition: parenthesis.cpp:20
#define assert(e)
Definition: assert.h:9
Expression * replaceWith(Expression *newOperand, bool deleteAfterReplace=true)
Definition: expression.cpp:85
Expression * approximate(Context &context, AngleUnit angleUnit=AngleUnit::Default) const
Definition: expression.cpp:338
#define T(x)
Definition: events.cpp:26
Expression * editableOperand(int i)
Definition: expression.h:176
Expression * clone() const override
Definition: parenthesis.cpp:15
const Expression * m_operands[T]
ExpressionLayout * createLayout(PrintFloat::Mode floatDisplayMode=PrintFloat::Mode::Default, ComplexFormat complexFormat=ComplexFormat::Default) const
Definition: expression.cpp:244
friend class Parenthesis
Definition: expression.h:63
const Expression * operand(int i) const
Definition: expression.cpp:78
Type type() const override
Definition: parenthesis.cpp:11
virtual int polynomialDegree(char symbolName) const
Definition: expression.cpp:202