Beispiel #1
0
  public final boolean unify(final JIPCons params, Hashtable varsTbl) {
    JIPTerm output = params.getNth(1);
    JIPTerm term = params.getNth(2);

    // check if input is a variable
    if (output instanceof JIPVariable) {
      // try to extract the term
      if (!((JIPVariable) output).isBounded()) {
        throw new JIPInstantiationException(1);
      } else {
        // extracts the term
        output = ((JIPVariable) output).getValue();
      }
    }

    // Get the stream
    StreamInfo sinfo = JIPio.getOutputStreamInfo(output, false);

    //        String mode = sinfo.getProperties().getProperty("mode");
    //        if(!(mode.equals("mode(write)") || mode.equals("mode(append)")))
    //        	throw new JIPPermissionException("output", "stream", sinfo.getAlias());
    //        if(!sinfo.getProperties().getProperty("type").equals("type(text)"))
    //        	throw new JIPPermissionException("output", "binary_stream", sinfo.getAlias());

    OutputStream writer = JIPio.getOutputStream(sinfo.getHandle(), getJIPEngine());

    try {
      writer.write(term.toString(getJIPEngine()).getBytes(getJIPEngine().getEncoding()));
      writer.flush();
    } catch (IOException ex) {
      throw new JIPRuntimeException(JIPio.ERR_IOEXCEPTION, ex.getMessage());
    }

    return true;
  }
Beispiel #2
0
    public JIPList getSingletonVariables() {
      Hashtable<String, Variable> svar = m_parser.getSingletonVariables();

      JIPList singletonVars = null;

      //        	Hashtable<String, JIPVariable> sjvar = new Hashtable<String, JIPVariable>();

      for (String key : svar.keySet()) {
        Variable var = svar.get(key);
        if (!var.isAnonymous())
          singletonVars =
              JIPList.create(
                  JIPFunctor.create(
                      "=",
                      JIPCons.create(
                          JIPAtom.create(var.getName()),
                          JIPCons.create(new JIPVariable(var), null))),
                  singletonVars);

        //        		sjvar.put(key, new JIPVariable(var));
      }
      if (singletonVars == null) return JIPList.NIL;
      else return singletonVars; // .reverse();
    }