一個輕量級的類java語法規則引擎,作爲一個嵌入式規則引擎在業務系統中使用。讓業務規則定義簡便而不失靈活。讓業務人員就可以定義業務規則。支持標準的JAVA語法,還可以支持自定義操作符號、操作符號重載、函數定義、宏定義、數據延遲加載等
public static void main(String[] args) throws Exception{
String express = "10 * 10 + 1 + 2 * 3 + 5 * 2";
ExpressRunner runner = new ExpressRunner();
Object r = runner.execute(express,null, null, false,false);
System.out.println("表達式計算:" + express + " = " + r);
}
/**
* 執行一段文本
* @param expressString 程序文本
* @param context 執行上下文
* @param errorList 輸出的錯誤信息List
* @param isCache 是否使用Cache中的指令集
* @param isTrace 是否輸出詳細的執行指令信息
* @return
* @throws Exception
*/
runner.execute(express,null, null, false,false);
執行結果:表達式計算:10 * 10 + 1 + 2 * 3 + 5 * 2 = 117
通過ExpressRunner構造函數可以打印執行信息 ExpressRunner runner = new ExpressRunner(false,true);
再次執行控制檯打印:
可以把QLExpress的執行總結爲以下過程:
1.單詞分解
2.語法類型分解
3.分析語法
4.生成指令
5.執行指令
摘文
https://blog.csdn.net/express_wind
感謝博主分享,學無止境