expression-analyzerjava 公式解析 表達(dá)式解析
基于有限自動機(jī)和LL(1)分析法實(shí)現(xiàn)的公式解析器,使用java語言開發(fā),具備以下功能:
1) 實(shí)現(xiàn)了算術(shù)和邏輯表達(dá)式的解析,可使用單條或多條語句,表達(dá)式中可使用注釋;
2) 支持多種數(shù)據(jù)類型,包括數(shù)值、布爾、字符串和日期;
3) 支持變量定義,表達(dá)式解析前和解析后能夠設(shè)置和取得變量的值;
4) 支持函數(shù)運(yùn)算,除默認(rèn)的系統(tǒng)函數(shù)外,用戶可使用自定義函數(shù);
5) 實(shí)現(xiàn)了對if-else分支結(jié)構(gòu)的解析;
6) 能夠?qū)φZ句中出現(xiàn)的詞法錯誤和語法錯誤給出提示并定位。
簡單使用示例,具體參見downloads中的文檔:
Expression expression = new Expression("a +1;");//創(chuàng)建表達(dá)式
expression.initVariable("a", 1);//設(shè)置變量值
Valuable result = expression.reParseAndEvaluate(); //執(zhí)行,返回結(jié)果
取得數(shù)值結(jié)果可調(diào)用:
result.getNumberValue(),返回BigDecimal,結(jié)果為2
評論
圖片
表情
