public boolean factorPRIME(Record call, Table tempTable, Table table) throws IOException { // <factorPRIME> -> ( <aParams> ) | EPSILON
		
		error = skipErrors(union(FIRST_factorPRIME, FOLLOW_factorPRIME));

		//MISSING MOON CODE
		if (lookahead.belongsTo(FIRST_factorPRIME_RHS1)) {
			
			call.setStructure("function");
			
			boolean c1 = match("OPAREN"), c2 = aParams(call, table), c3 = match("CPAREN");
			
			tempTable.find(call);
			
			if (c1 && c2 && c3)
				pw.println("<factorPRIME> -> ( <aParams> )");

			else
				error = false;

		}

		else if (lookahead.belongsTo(FOLLOW_factorPRIME)) {
			
			if(!(tempTable.find(call) == null)) {
				
				/* MOON CODE INCOMPLETE
				
				if(firstOperand.equals(" ")) {
					firstOperand = "r1";
					table.getMoonCalls().add("\tlw r1," + call.getAddress() + "(r0)");
				}
				else if(firstOperand.charAt(0) == 'r') {
					secondOperand = "r2";
					table.getMoonCalls().add("\tlw r2," + call.getAddress() + "(r0)");
				}
				else {
					secondOperand = "r1";
					table.getMoonCalls().add("\tlw r2," + call.getAddress() + "(r0)");
				}
				
				*/
				
			}
			
			pw.println("<factorPRIME> -> EPSILON");
			
		}
		else
			error = false;

		return error;
		
	}