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

📄 parser.java

📁 Tiger语言编译器
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			FunctionDec RESULT = null;
			int e1left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 7)).left;
			int e1right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 7)).right;
			String e1 = (String) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 7)).value;
			int e2left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 5)).left;
			int e2right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 5)).right;
			FieldList e2 = (FieldList) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 5)).value;
			int e5left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 2)).left;
			int e5right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 2)).right;
			String e5 = (String) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 2)).value;
			int e4left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).left;
			int e4right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).right;
			Exp e4 = (Exp) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).value;
			RESULT = new FunctionDec(e1left, sym(e1), e2, new NameTy(e5left,
					sym(e5)), e4, null);
			CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(
					8/* function_declaration */,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 8)).left,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right, RESULT);
		}
			return CUP$parser$result;

			/* . . . . . . . . . . . . . . . . . . . . */
		case 50: // function_declaration ::= FUNCTION ID LPAREN type_fields
					// RPAREN EQ expr
		{
			FunctionDec RESULT = null;
			int e1left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 5)).left;
			int e1right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 5)).right;
			String e1 = (String) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 5)).value;
			int e2left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 3)).left;
			int e2right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 3)).right;
			FieldList e2 = (FieldList) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 3)).value;
			int e3left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).left;
			int e3right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).right;
			Exp e3 = (Exp) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).value;
			RESULT = new FunctionDec(e1left, sym(e1), e2, null, e3, null);
			CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(
					8/* function_declaration */,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 6)).left,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right, RESULT);
		}
			return CUP$parser$result;

			/* . . . . . . . . . . . . . . . . . . . . */
		case 49: // declaration ::= function_declaration
		{
			Dec RESULT = null;
			int eleft = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).left;
			int eright = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).right;
			FunctionDec e = (FunctionDec) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).value;
			RESULT = e;
			CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(
					6/* declaration */,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right, RESULT);
		}
			return CUP$parser$result;

			/* . . . . . . . . . . . . . . . . . . . . */
		case 48: // declaration ::= variable_declaration
		{
			Dec RESULT = null;
			int eleft = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).left;
			int eright = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).right;
			VarDec e = (VarDec) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).value;
			RESULT = e;
			CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(
					6/* declaration */,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right, RESULT);
		}
			return CUP$parser$result;

			/* . . . . . . . . . . . . . . . . . . . . */
		case 47: // declaration ::= type_declaration
		{
			Dec RESULT = null;
			int eleft = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).left;
			int eright = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).right;
			TypeDec e = (TypeDec) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).value;
			RESULT = e;
			CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(
					6/* declaration */,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right, RESULT);
		}
			return CUP$parser$result;

			/* . . . . . . . . . . . . . . . . . . . . */
		case 46: // declaration_list ::= declaration declaration_list
		{
			DecList RESULT = null;
			int e1left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 1)).left;
			int e1right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 1)).right;
			Dec e1 = (Dec) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 1)).value;
			int e2left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).left;
			int e2right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).right;
			DecList e2 = (DecList) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).value;

			if (e1 instanceof TypeDec && e2.head instanceof TypeDec) {
				((TypeDec) e1).next = (TypeDec) e2.head;
				e2.head = (TypeDec) e1;
				RESULT = e2;
			} else {
				if (e1 instanceof FunctionDec && e2.head instanceof FunctionDec) {
					((FunctionDec) e1).next = (FunctionDec) e2.head;
					e2.head = (FunctionDec) e1;
					RESULT = e2;
				} else
					RESULT = new DecList(e1, e2);
			}

			CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(
					7/* declaration_list */,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).left,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right, RESULT);
		}
			return CUP$parser$result;

			/* . . . . . . . . . . . . . . . . . . . . */
		case 45: // declaration_list ::= declaration
		{
			DecList RESULT = null;
			int eleft = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).left;
			int eright = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).right;
			Dec e = (Dec) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 0)).value;
			RESULT = new DecList(e, null);
			CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(
					7/* declaration_list */,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right, RESULT);
		}
			return CUP$parser$result;

			/* . . . . . . . . . . . . . . . . . . . . */
		case 44: // lvalue ::= lvalue LBRACK expr RBRACK
		{
			Var RESULT = null;
			int e1left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 3)).left;
			int e1right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 3)).right;
			Var e1 = (Var) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 3)).value;
			int e2left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 1)).left;
			int e2right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 1)).right;
			Exp e2 = (Exp) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 1)).value;
			RESULT = new SubscriptVar(e1left, e1, e2);
			CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(
					11/* lvalue */,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 3)).left,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right, RESULT);
		}
			return CUP$parser$result;

			/* . . . . . . . . . . . . . . . . . . . . */
		case 43: // lvalue ::= ID LBRACK expr RBRACK
		{
			Var RESULT = null;
			int idleft = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 3)).left;
			int idright = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 3)).right;
			String id = (String) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 3)).value;
			int eleft = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 1)).left;
			int eright = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 1)).right;
			Exp e = (Exp) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 1)).value;
			RESULT = new SubscriptVar(idleft, new SimpleVar(idleft, sym(id)), e);
			CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(
					11/* lvalue */,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 3)).left,
					((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right, RESULT);
		}
			return CUP$parser$result;

			/* . . . . . . . . . . . . . . . . . . . . */
		case 42: // lvalue ::= lvalue DOT ID
		{
			Var RESULT = null;
			int e1left = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top - 2)).left;
			int e1right = ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack
					.elementAt(CUP$parser$top 

⌨️ 快捷键说明

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