code: public Scope withParent(Scope parent) {
          if (parent == null) {
              this.parent = getRootScope();
          } else {
              this.parent = parent;
          }
  
          return this;
      }
docs: Specifies the parent scope for this scope.
  <p>
  If a scope cannot resolve a variable, it tries to resolve it using its parent scope. This permits to
  share a certain set of variables.
  
  @param parent the parent scope to use. If <tt>null</tt>, the common root scope is used which defines a bunch of
  constants (e and pi).
  @return the instance itself for fluent method calls