public boolean statement(Table table) throws IOException { // <statement> -> <statementPRIME> | <variable> = <expr> ;
		
		error = skipErrors(union(FIRST_statement, FOLLOW_statement));

		if (lookahead.belongsTo(FIRST_statement_RHS1)) {
			
			boolean c1 = statementPRIME(table);
			
			if (c1)
				pw.println("<statement> -> <statementPRIME>");

			else
				error = false;

		}

		else if (lookahead.belongsTo(FIRST_statement_RHS2)) {

			boolean c1 = variable(table); 
			
			boolean c2 = match("DEF"), c3 = expr(table), c4 = match("SEMICOLON");
			
			if (c1 && c2 && c3 && c4) {
				
				/* MOON CODE INCOMPLETE
				
				if(firstOperand.charAt(0) == 'r' && secondOperand.charAt(0) == 'r') {
					
					table.getMoonCalls().add("\t" + lastOp + " r3,r1,r2");
					table.getMoonCalls().add("t\tdw 0");
					table.getMoonCalls().add("\tsw t(r0),r3");
					
				}
					
				
				else {
					
					if (firstOperand.charAt(0) == 'r' && !(secondOperand.charAt(0) == 'r'))
						table.getMoonCalls().add("\t" + lastOp + "i r2,r1," + secondOperand);
					if(!(firstOperand.charAt(0) == 'r' && secondOperand.charAt(0) == 'r'))
						table.getMoonCalls().add("\t" + lastOp + "i r2," + firstOperand + ",r1");
					
					table.getMoonCalls().add("t\tdw 0");
					table.getMoonCalls().add("\tsw t(r0),r2");
					
				}
				
				table.getMoonCalls().add("\tlw r1,t(r0)");
				table.getMoonCalls().add("\tsw " + nextStoreAddress + "(r0),r1");
				
				*/
				
				pw.println("<statement> -> <variable> = <expr> ;");
			}
			else
				error = false;
			
		}
		
		else
			error = false;

		return error;
		
	}