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

📄 symbol.java

📁 用Java实现的编译器。把源代码编译成SPARC汇编程序
💻 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 + -