⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treebuild.java

📁 wekaUT是 university texas austin 开发的基于weka的半指导学习(semi supervised learning)的分类器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    m_st.ordinaryChar('/');    m_st.ordinaryChar('*');    m_st.quoteChar('"');    m_st.whitespaceChars(';',';');    m_st.ordinaryChar('=');  }  /**   * This is the alternative syntax for the tokenizer.   */  private void alterSyntax() {    m_st.resetSyntax();    m_st.wordChars('\u0000', '\u00ff');    m_st.slashStarComments(false);    m_st.slashSlashComments(false);    m_st.ordinaryChar('\n');    m_st.ordinaryChar('\r');  }  /**   * This will parse the next token out of the stream and check for certain    * conditions.   *   * @param r The error string to print out if something goes wrong.   */  private void nextToken(String r) {    int t = 0;    try {      t = m_st.nextToken();    } catch(IOException e) {    }        if (t == m_st.TT_EOF) {      System.out.println("eof , " + r);    }    else if (t == m_st.TT_NUMBER) {      System.out.println("got a number , " + r);    }  }    /**   * Parses the top of the dotty stream that has the graph information.   *   */  private void graph() {    boolean flag = true;    String s;    //expect digraph    int t;    nextToken("expected 'digraph'");        if (m_st.sval.equalsIgnoreCase("digraph")) {      m_digraph = true;    }    else {      System.out.println("expected 'digraph'");    }        nextToken("expected a Graph Name");    if (m_st.sval != null) {      m_graphName = m_st.sval;    }    else {      System.out.println("expected a Graph Name");    }        nextToken("expected '{'");        if (m_st.ttype == '{') {      stmtList();    }    else {      System.out.println("expected '{'");    }  }  /**   * This is one of the states, this one is where new items can be defined    * or the structure can end.   *   */  private void stmtList() {    boolean flag = true;    String s;    int t;    while(flag) {      nextToken("expects a STMT_LIST item or '}'");      if (m_st.ttype == '}') {	flag = false;      }      else if (m_st.sval.equalsIgnoreCase("graph") ||	       m_st.sval.equalsIgnoreCase("node") ||	       m_st.sval.equalsIgnoreCase("edge")) {	m_st.pushBack();	attrStmt();      }      else if (m_st.sval != null) {	nodeId(m_st.sval,0);      }      else {	System.out.println("expects a STMT_LIST item or '}'");      }    }  }  /**   * This will deal specifically with a new object such as graph , node , edge.   *   */  private void attrStmt() {        nextToken("expected 'graph' or 'node' or 'edge'");        if (m_st.sval.equalsIgnoreCase("graph")) {      nextToken("expected a '['");      if (m_st.ttype == '[') {	attrList(m_grObj);      }      else {	System.out.println("expected a '['");      }    }    else if (m_st.sval.equalsIgnoreCase("node")) {      nextToken("expected a '['");      if (m_st.ttype == '[') {	attrList(m_noObj);      }      else {	System.out.println("expected a '['");      }    }    else if (m_st.sval.equalsIgnoreCase("edge")) {      nextToken("expected a '['");      if (m_st.ttype == '[') {	attrList(m_edObj);      }      else {	System.out.println("expected a '['");      }          }    else {      System.out.println("expected 'graph' or 'node' or 'edge'");     }  }  /**   * Generates a new InfoObject with the specified name and either does    * further processing if applicable   * Otherwise it is an edge and will deal with that.   *   * @param s The ID string.   * @param t Not sure!.   */  private void nodeId(String s,int t) {        nextToken("error occurred in node_id");    if (m_st.ttype == '}') {      //creates a node if t is zero      if (t == 0) {	m_nodes.addElement(new InfoObject(s));      }      m_st.pushBack();    }    else if (m_st.ttype == '-') {      nextToken("error occurred checking for an edge");      if (m_st.ttype == '>') {	edgeStmt(s);      }      else {	System.out.println("error occurred checking for an edge");      }    }    else if (m_st.ttype == '[') {      //creates a node if t is zero and sends it to attr      if (t == 0) {	m_nodes.addElement(new InfoObject(s));	attrList((InfoObject)m_nodes.lastElement());      }      else {	attrList((InfoObject)m_edges.lastElement());      }    }    else if (m_st.sval != null) {      //creates a node if t is zero      if (t == 0) {	m_nodes.addElement(new InfoObject(s));      }      m_st.pushBack();    }    else {      System.out.println("error occurred in node_id");    }  }  /**   * This will get the target of the edge.   *   * @param i The source of the edge.   */  private void edgeStmt(String i) {    nextToken("error getting target of edge");        if (m_st.sval != null) {      m_edges.addElement(new InfoObject("an edge ,no id"));      ((InfoObject)m_edges.lastElement()).m_source = i;      ((InfoObject)m_edges.lastElement()).m_target = m_st.sval;      nodeId(m_st.sval,1);    }    else {      System.out.println("error getting target of edge");    }  }  /**   * This will parse all the items in the attrib list for an object.   *   * @param a The object that the attribs apply to.   */  private void attrList(InfoObject a) {    boolean flag = true;        while (flag) {      nextToken("error in attr_list");      //System.out.println(st.sval);      if (m_st.ttype == ']') {	flag = false;      }      else if (m_st.sval.equalsIgnoreCase("color")) {	nextToken("error getting color");	if (m_st.ttype == '=') {	  nextToken("error getting color");	  if (m_st.sval != null) {	    a.m_color = m_st.sval;	  }	  else {	    System.out.println("error getting color");	  }	}	else {	  System.out.println("error getting color");	}      }      else if (m_st.sval.equalsIgnoreCase("fontcolor")) {	nextToken("error getting font color");	if (m_st.ttype == '=') {	  nextToken("error getting font color");	  if (m_st.sval != null) {	    a.m_fontColor = m_st.sval;	  }	  else {	    System.out.println("error getting font color");	  }	}	else {	  System.out.println("error getting font color");	}      }      else if (m_st.sval.equalsIgnoreCase("fontsize")) {	nextToken("error getting font size");	if (m_st.ttype == '=') {	  nextToken("error getting font size");	  if (m_st.sval != null) {	    a.m_fontSize = m_st.sval;	  }	  else {	    System.out.println("error getting font size");	  }	}	else {	  System.out.println("error getting font size");	}      }      else if (m_st.sval.equalsIgnoreCase("label")) {	nextToken("error getting label");	if (m_st.ttype == '=') {	  nextToken("error getting label");	  if (m_st.sval != null) {	    a.m_label = m_st.sval;	  }	  else {	    System.out.println("error getting label");	  }	}	else {	  System.out.println("error getting label");	}      }      else if (m_st.sval.equalsIgnoreCase("shape")) {	nextToken("error getting shape");	if (m_st.ttype == '=') {	  nextToken("error getting shape");	  if (m_st.sval != null) {	    a.m_shape = m_st.sval;	  }	  else {	    System.out.println("error getting shape");	  }	}	else {	  System.out.println("error getting shape");	}      }      else if (m_st.sval.equalsIgnoreCase("style")) {	nextToken("error getting style");	if (m_st.ttype == '=') {	  nextToken("error getting style");	  if (m_st.sval != null) {	    a.m_style = m_st.sval;	  }	  else {	    System.out.println("error getting style");	  }	}	else {	  System.out.println("error getting style");	}      }      else if (m_st.sval.equalsIgnoreCase("data")) {	nextToken("error getting data");	if (m_st.ttype == '=') {	  //data has a special data string that can have anything	  //this is delimited by a single comma on an otherwise empty line	  alterSyntax();	  a.m_data = new String("");	  	  while (true) {	    nextToken("error getting data");	    if (m_st.sval != null && a.m_data 		!= null && m_st.sval.equals(",")) {	      break;	    }	    else if (m_st.sval != null) {	      a.m_data = a.m_data.concat(m_st.sval);	    }	    else if (m_st.ttype == '\r') {	      a.m_data = a.m_data.concat("\r");	    }	    else if (m_st.ttype == '\n') {	      a.m_data = a.m_data.concat("\n");	    }	    else {	      System.out.println("error getting data");	    }	  }	  setSyntax();	}	else {	  System.out.println("error getting data");	}      }    }  }  //special class for use in creating the tree  /**   * This is an internal class used to keep track of the info for the objects    * before they are    * actually created.   */  private class InfoObject {    /** The ID string for th object. */    public String m_id;    /** The color name for the object. */    public String m_color;    /** The font color for the object. not in use. */    public String m_fontColor;    /** The fontsize for the object. not in use. */    public String m_fontSize;    /** The label for the object. */    public String m_label;    /** The shape name of for the object. */    public String m_shape;    /** The backstyle name for the object. */    public String m_style;    /** The source ID of the object. */    public String m_source;    /** The target ID of the object. */    public String m_target;    /** The data for this object. */    public String m_data;    /**     * This will construct a new InfoObject with the specified ID string.     */    public InfoObject(String i) {      m_id = i;      m_color = null;      m_fontColor = null;      m_fontSize = null;      m_label = null;      m_shape = null;      m_style = null;      m_source = null;      m_target = null;      m_data = null;    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -