My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Lite1_1  

Phase-Design
Updated Oct 1, 2009 by jind...@gmail.com

#Lite 1.1重构计划.

Lite1.1重构计划

  • 逆波兰式=> 运算树
  • 一种尝试吧,原先的逆波兰式解析不但有延迟计算的麻烦,而且做代码翻译的时候还不实用
    • 从够后运算树表现形式如下:
    •  * EL		=>[OP_TYPE,arg1<EL>,arg2<EL>|null,param?]
       *  		=>[VALUE_TYPE,param?]
       * 
       * OP_TYPE	=>LITE_OP_TOKENS(....)
       * VALUE_TYPE	=>LITE_VALUE_TOKEN(VALUE_CONSTANTS,VALUE_VAR,VALUE_NEW_LIST,VALUE_NEW_MAP)
    • 新标准下 VALUE_LAZY 值类型已不再需要。
  • 增加二级运算符优先级定义
  • 原先的算符优先级因为只有一级,而且还是相邻的不能自行扩充级别,新定义的标准会预留更多的扩充空间。
    • 重构后的OPID分配方式如下:
    •  * 运算符编号说明:
       * 0<<12         | 0<<8        | 0<<6    | 0<<2   |0
       * 1111          1111          11        1111     11      
       * 二级优先级     二级组内序号   参数标志   优先级  组内序号
       * 
       * 参数标志 说明:
       * 00 一位操作符
       * 01 两位操作符
       * 10 保留标志(三位操作符?)
       * 11 保留标志(零位/四位操作符?)
  • 新增两种invoke 运算符实现
  • 原先的方法调用都必须构造一个list 作为参数,整个函数调用在java实现中成本较高。
    • OP_INVOKE_STATIC_PARAM
    • OP_INVOKE_ONE_PARAM

Sign in to add a comment
Powered by Google Project Hosting