?? lr0item.java
字號:
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * This file is part of SableCC. * * See the file "LICENSE" for copyright information and the * * terms and conditions for copying, distribution and * * modification of SableCC. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */package org.sablecc.sablecc;import java.util.*;final class LR0Item implements Cloneable, Comparable{ final int production; final int position; LR0Item(int production, int position) { this.production = production; this.position = position; } public int compareTo(Object object) { LR0Item item = (LR0Item) object; int result = production - item.production; if(result == 0) { result = position - item.position; } return result; } public Object clone() { return new LR0Item(production, position); } public boolean equals(Object obj) { if((obj == null) || (obj.getClass() != this.getClass())) { return false; } LR0Item item = (LR0Item) obj; return (item.production == production) && (item.position == position); } public int hashCode() { return (production * 13) ^ (position * 17); } public String toString() { StringBuffer result = new StringBuffer(); String prodStr = (Production.production(production)).toString(); int pos = 0; StringTokenizer list = new StringTokenizer(prodStr, "= "); // we know that there is at least one token (lhs) result.append(list.nextToken()); result.append(" ="); while(list.hasMoreElements()) { String tmp = list.nextToken(); if(pos == position) { result.append(" * "); result.append(tmp); } else { result.append(" "); result.append(tmp); } pos++; } if(pos == position) { result.append(" *"); } return "[ " + result + " ]"; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -