whole_func_string: function(expr, context) {
        if(expr.type === "SymbolNode" && expr.name === context.variable.name) {
          return new OperatorNode('*', 'multiply', [
            new OperatorNode('/', 'divide', [
              new ConstantNode(1),
              new ConstantNode(2)
            ]),
            new OperatorNode('^', 'pow', [
              expr.clone(),
              new ConstantNode(2)
            ])
          ]);
        }
      }
func_code_string: function(expr, context) {
        if(expr.type === "SymbolNode" && expr.name === context.variable.name) {
          return new OperatorNode('*', 'multiply', [
            new OperatorNode('/', 'divide', [
              new ConstantNode(1),
              new ConstantNode(2)
            ]),
            new OperatorNode('^', 'pow', [
              expr.clone(),
              new ConstantNode(2)
            ])
          ]);
        }
      }
func_documentation_string: integral(x, x) = 1/2*x^2