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

📄 symbol.java

📁 tiger run time supporting files
💻 JAVA
字号:
package java_cup.runtime;/** * Defines the Symbol class, which is used to represent all terminals * and nonterminals while parsing.  The lexer should pass CUP Symbols  * and CUP returns a Symbol. * * @version last updated: 7/3/96 * @author  Frank Flannery *//******************************************************************************* * Class Symbol what the parser expects to receive from the lexer. the token is * identified as follows: sym: the symbol type parse_state: the parse state. * value: is the lexical value of type Object left : is the left position in the * original input file right: is the right position in the original input file ******************************************************************************/public class Symbol {	/***************************************************************************	 * Constructor for l,r values	 **************************************************************************/	public Symbol(int id, int l, int r, Object o) {		this(id);		left = l;		right = r;		value = o;	}	/***************************************************************************	 * Constructor for no l,r values	 **************************************************************************/	public Symbol(int id, Object o) {		this(id, -1, -1, o);	}	/***************************************************************************	 * Constructor for no value	 **************************************************************************/	public Symbol(int id, int l, int r) {		this(id, l, r, null);	}	/***************************************************************************	 * Constructor for no value or l,r	 **************************************************************************/	public Symbol(int sym_num) {		this(sym_num, -1);		left = -1;		right = -1;		value = null;	}	/***************************************************************************	 * Constructor to give a start state	 **************************************************************************/	Symbol(int sym_num, int state) {		sym = sym_num;		parse_state = state;	}	/* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */	/** The symbol number of the terminal or non terminal being represented */	public int sym;	/* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */	/**	 * The parse state to be recorded on the parse stack with this symbol. This	 * field is for the convenience of the parser and shouldn't be modified	 * except by the parser.	 */	public int parse_state;	/**	 * This allows us to catch some errors caused by scanners recycling symbols.	 * For the use of the parser only. [CSA, 23-Jul-1999]	 */	boolean used_by_parser = false;	/***************************************************************************	 * The data passed to parser	 **************************************************************************/	public int left, right;	public Object value;	/***************************************************************************	 * Printing this token out. (Override for pretty-print).	 **************************************************************************/	public String toString() {		return "#" + sym;	}}

⌨️ 快捷键说明

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