Code Search for Developers
 
 
  

BooleanMesh.java from gzz at Krugle


Show BooleanMesh.java syntax highlighted

/*   
BooleanMesh.java
 *    
 *    Copyright (c) 2000-2001 Ted Nelson and Tuomas Lukka
 *    Copyright (c) 2000-2001 Benjamin Fallenstein
 *
 *    This file is part of Gzz.
 *    
 *    Gzz is free software; you can redistribute it and/or modify it under
 *    the terms of the GNU Lesser General Public License as published by
 *    the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *    
 *    Gzz is distributed in the hope that it will be useful, but WITHOUT
 *    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 *    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
 *    Public License for more details.
 *    
 *    You should have received a copy of the GNU Lesser General
 *    Public License along with Gzz; if not, write to the Free
 *    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *    
 *
 */
/*
 * Written by Kimmo Wideroos
 */

package org.gzigzag.module;
import org.gzigzag.*;
import java.util.*;

public abstract class BooleanMesh {
    public static boolean dbg = false;
    static void p(String s) { if(dbg) System.out.println(s); }
    static void pa(String s) { System.out.println(s); }

    static String d_1 = "d.1"; static String d_2 = "d.2";
    static public ZZCell bStructure = null;
    static public Hashtable bOperators = new Hashtable();

    /*
    */
    public BooleanMesh(ZZCell bs) { 
        bStructure = bs; 
        bOperators.put("AND", new boolean[][]{{false, false}, {false, true}});
        bOperators.put("OR", new boolean[][]{{false, true}, {true, true}});
        bOperators.put("XOR", new boolean[][]{{false, true}, {true, false}});
    }
    
    public boolean evaluate(ZZCell nhc) { return evaluate(bStructure, nhc); }
    
    private boolean evaluate(ZZCell bElem, ZZCell nhc) {
	String bt = bElem.getText();
        p("belem:"+bt+" c:"+nhc.getText());
	ZZCell arg1, arg2;
        int i = 0, j = 0;
	if(bOperators.containsKey(bt)) {
	    // add exception handling here!
	    arg1 = bElem.s(d_1); arg2 = bElem.s(d_2);
            p("arg1:"+arg1.getText());
            p("arg2:"+arg2.getText());
            if(evaluate(arg1, nhc)) i = 1; 
            if(evaluate(arg2, nhc)) j = 1;
            p("i:"+i+" j:"+j);
            boolean retv = ((boolean[][])bOperators.get(bt))[i][j];
            p("RETV: "+retv);
            return retv;
	} else {
	    // compare bElem (=categoryname) and c
            p("TEST! "+nhc.getText()+" =?= "+bElem.getText());
	    return testBelonging(nhc, bElem);
	}
    }

    public abstract boolean testBelonging(ZZCell c, ZZCell category);

}
    







See more files for this project here

gzz

An implementation of Ted Nelson's ZZstructure. ZZstructure is a new type of programming platform for structured data.

Project homepage: http://savannah.nongnu.org/projects/gzz
Programming language(s): C++,Java,Python
License: lgpl21

  AwtCursor.java
  AwtLink.java
  AwtLink.zob
  AwtMetrics.java
  AwtMetrics.zob
  AwtMetricsFC.java
  AwtMetricsFC2.java
  AwtMetricsNormal.java
  AwtNileView.java
  AwtNote.java
  AwtNote.zob
  AwtUtil.java
  AwtView1.java
  Awtool.java
  Awtool.zob
  BooleanMesh.java
  README
  TODO
  ZObCellRepr.java