Op[A_,op_]:=Block[{e,cad,i,n},
e[i_,m_]:=IdentityMatrix[m][[i]];
cad=ToString[Hold[op]];
pi=StringPosition[cad,"="][[1,1]];
i=ToExpression[StringTake[cad,{7,pi-1}]];
cadexp=StringTake[cad,{pi+1,StringLength[cad]-1}];
cadexp=StringReplace[cadexp,Table["F"<>ToString[j]->"e["<>ToString[j]<>",n]",{j,1,9}]];
cadexp=StringReplace[cadexp,Table["f"<>ToString[j]->"e["<>ToString[j]<>",n]",{j,1,9}]];
cadexp=StringReplace[cadexp,Table["c"<>ToString[j]->"e["<>ToString[j]<>",n]",{j,1,9}]];
cadexp=StringReplace[cadexp,Table["C"<>ToString[j]->"e["<>ToString[j]<>",n]",{j,1,9}]];
If[StringTake[cad,{6}]=="F" || StringTake[cad,{6}]=="f",
n=Dimensions[A][[1]];
exp=ToExpression[cadexp];
c=IdentityMatrix[n];c[[i]]=exp;
c.A
,
If[StringTake[cad,{6}]=="c" || StringTake[cad,{6}]=="C",
n=Dimensions[A][[2]];
exp=ToExpression[cadexp];
c=IdentityMatrix[n];c[[i]]=exp;
A.Transpose[c]
]]
];
Attributes[Op]={HoldRest};
OpEl[A_,opl_]:=(
ca=ToString[Hold[opl]];
ca=StringReplace[ca,{"Hold[{"->"","}]"->""," = "->"=",", "->","}];
ca=StringSplit[ca,","];
ci=0;
pA=A;
For[ci=1,ci<=Length[ca],ci++,
pA=Op[pA,Evaluate[ca[[ci]]]];
];
MatrixForm[pA]
);
Attributes[OpEl]={HoldRest};

OpEl[(({{1, 2, 2, 3, 2, 1}, {1, 2, 0, 2, 1, 0}, {1, 2, 1, 1, 0, 1}, {1, 1, 0, 1, 1, 2}})),{F2=F2-f1,F3=F3-F1,f4=f4-f1}]