原文如下: 
oDD.AddTbl('PPRSBOM', 871, '', '产品工序子件档', '', '');
oDD.AddFld('PPRSBOM', 0, 'ERI', 'ERI', 'C', 16, 'ERI', 'RUC');
oDD.AddFld('PPRSBOM', 1, 'MASTERI', 'MASTERI', 'C', 16, 'ERI', 'RUC');
oDD.AddFld('PPRSBOM', 2, 'PRODERI', 'PRODERI', 'C', 16, 'ERI', 'RUC');
oDD.AddFld('PPRSBOM', 3, 'MPROD', '成品编号', 'C', 20, 'PRODCODE', 'SXC');
oDD.AddFld('PPRSBOM', 4, 'PRSNO', '制程编号', 'C', 4, 'PRSNO', 'SXC');
oDD.AddFld('PPRSBOM', 5, 'SERIAL', '序号', 'N', 2, '', 'SXC');
相信大家都能理解,用来建表的一段脚本,我现在要自己解析这段脚本,将每段文字保存成一个对象public class DescLine{
private String helper;//主体
private String action;//行为
private String[] parameter;参数数组
}处理后字段如下:
第一行:
helper: oDD;
action:ADDTbl;
parameter: 'PPRSBOM'[0],871[1], '产品工序子件档'[2],''[3];
其余行:
helper: oDD;
action:AddFld;
parameter: 'PPRSBOM'[0],0[1], 'ERI'[2],'C'[3],16[4]希望大家能给我思路,或提供一些开源类包分析。附件是源脚本文件

解决方案 »

  1.   

    这个感觉不太难吧。
    把每行读出,
    然后先按(分割,
    前面的一段再按.分割
    后面的一段按,分割。
    不行吗?
      

  2.   


    我已经写的简单实现。但脚本中有许多干扰因素。最好是语法分析器的解决思路
    还是谢谢
      

  3.   

    如果这些都是规则的话,二楼的就帮你解决了
    你所谓的干扰因素是什么?
    其实用简单方法就可以了