public static Ptg createPtg(byte[] data,
int offset) {
byte id = data[ offset + 0 ];
Ptg retval = null;
System.out.println("PTG = " + Integer.toHexString(id) + " (" + id
+ ")");
switch (id)
{
case AddPtg.sid :
retval = new AddPtg(data, offset);
break;
case SubtractPtg.sid :
retval = new SubtractPtg(data, offset);
break;
case IntPtg.sid :
retval = new IntPtg(data, offset);
break;
case DividePtg.sid :
retval = new DividePtg(data, offset);
break;
case MultiplyPtg.sid :
retval = new MultiplyPtg(data, offset);
break;
case PowerPtg.sid :
retval = new PowerPtg(data, offset);
break;
case AreaPtg.sid :
retval = new AreaPtg(data, offset);
break;
case MemErrPtg.sid :
retval = new MemErrPtg(data, offset);
break;
case AttrPtg.sid :
retval = new AttrPtg(data, offset);
break;
case ValueReferencePtg.sid :
retval = new ValueReferencePtg(data, offset);
break;
case ParenthesisPtg.sid :
retval = new ParenthesisPtg(data, offset);
break;
case ValueVariableFunctionPtg.sid :
retval = new ValueVariableFunctionPtg(data, offset);
break;
case NamePtg.sid :
retval = new NamePtg(data, offset);
break;
case ExpPtg.sid :
retval = new ExpPtg(data, offset);
break;
default :
// retval = new UnknownPtg();
throw new RuntimeException("Unknown PTG = "
+ Integer.toHexString(( int ) id)
+ " (" + ( int ) id + ")");
}
return retval;
}
|