factor = parseHashMapReference(p);
factor = parseUnary(p);
	private ExpressionTreeNode parseTerm(Preprocessor p)		throws IOException, MapyrusException	{		ExpressionTreeNode term, factor;		int op;		term = parseHashMapReference(p);		while (true)		{			op = p.readNonSpace();			if (op == '*' || op == '/' || op == 'x' || op == '%')			{				int opType;				if (op == '*')					opType = MULTIPLY_OPERATION;				else if (op == '/')					opType = DIVIDE_OPERATION;				else if (op == '%')					opType = MODULO_OPERATION;				else					opType = REPEAT_OPERATION;				factor = parseHashMapReference(p);				term = new ExpressionTreeNode(term, opType, factor);			}			else			{				p.unread(op);				break;			}		}		return(term);	}