Atitit dsl exer v3 qb3 新特性
/atiplat_cms/src/com/attilax/dsl/DslParser.java
V3 支持typeed参数,与简化的notyp参数
V2 支持静态参数
V1 初步实现,动态参数简化参数only
1. 利用块来区分作用范围的语言,其本质上就是可扩展的,因为不同类型的新块可以加入并嵌入到相应的现有块之中。
XML很容易解析,但是作为一种自定义数据格式其可读性却太差了
关于DSL文法最后再强调一点,一个复杂的文本DSL应该是可以使用BNF(或者EBNF)以形式文法的形式进行定义的。如果你的语言无法用形式文法表达出来,那么它的分析将会非常困难甚至是不可能的。下面几节会介绍更多关于分析与BNF的内容
3 非文本DSL
除了内部和外部DSL,业界还有一种正在增长的趋势,即倾向于发展更丰富的领域建模手段。DSL是领域的一种表示形式,但其定义中并没有硬性规定这种表现形式或语言必须是文本形式的。
很多领域问题可以通过电子表格、图形化模型等丰富的制品形式更好地展现给领域用户;
在基于文本的脚本中,领域逻辑常散落在曲折交错的语法结构里,不经意地增加了复杂性;
领域专家操作起形象化的模型总是比操作源代码更自如。
public Object parseV3(String args) {
// TODO Auto-generated method stub com.attilax.encry.RSACoder.main(['fixseed','c:/0k/pri.txt','c:/0k/pub.txt'])
System.out.println("..start");
//@SuppressWarnings("unchecked")
// com.attilax.ioc.IocFacV3_iocx_iocutil.getBean(com.attilax.order.RechargeOrderService.class).insert('20161024_16926254',5,1528)
//com.attilax.ioc.IocFacV3_iocx_iocutil.getBean(com.attilax.order.RechargeOrderService.class).insert('20161024_172851950':s,5:i,888:i)
List<Token> tokens = new JavaTokener(args).getTokensV4();
Expression buildAst = new AstBuilderSmpVer().buildAstV2(tokens);
Object rzt = new AstParser().parse(buildAst);
System.out.println(rzt);
System.out.println("...finish");
return rzt;
}作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend