diff --git a/workflow-engine-server/pom.xml b/workflow-engine-server/pom.xml index 934ed9487..f2d0c0098 100644 --- a/workflow-engine-server/pom.xml +++ b/workflow-engine-server/pom.xml @@ -142,6 +142,11 @@ cn.axzo riven-api + + com.googlecode.aviator + aviator + 5.4.3 + diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/Main.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/Main.java new file mode 100644 index 000000000..1f6b3da0a --- /dev/null +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/Main.java @@ -0,0 +1,25 @@ +package cn.axzo.workflow.server; + +import com.googlecode.aviator.AviatorEvaluator; +import com.googlecode.aviator.AviatorEvaluatorInstance; +import com.googlecode.aviator.EvalMode; +import com.googlecode.aviator.Expression; +import com.googlecode.aviator.Options; + +import java.util.List; + +/** + * TODO + * + * @author wangli + * @since 2024-11-28 10:06 + */ +public class Main { + public static void main(String[] args) throws Exception { + AviatorEvaluatorInstance engine = AviatorEvaluator.newInstance(EvalMode.ASM); + engine.setOption(Options.TRACE_EVAL, false); + + Expression exp = engine.compile(" for i in range(0,10) { p(i);}"); + exp.execute(); + } +} diff --git a/workflow-engine-server/src/main/resources/examples/basic.av b/workflow-engine-server/src/main/resources/examples/basic.av new file mode 100644 index 000000000..845d2e75a --- /dev/null +++ b/workflow-engine-server/src/main/resources/examples/basic.av @@ -0,0 +1,10 @@ +let a = 99; +let b = 0xFF; +let c = -99; + +println(a + b); +println(a / b); +println(a - b + c); +println(a + b * c); +println(a - (b - c)); +println(a / b * b + a % b); \ No newline at end of file diff --git a/workflow-engine-server/src/main/resources/examples/hello.av b/workflow-engine-server/src/main/resources/examples/hello.av new file mode 100644 index 000000000..1bbe1f175 --- /dev/null +++ b/workflow-engine-server/src/main/resources/examples/hello.av @@ -0,0 +1 @@ +println("hello,AviatorScript!"); \ No newline at end of file diff --git a/workflow-engine-server/src/main/resources/examples/use.av b/workflow-engine-server/src/main/resources/examples/use.av new file mode 100644 index 000000000..03559bf3d --- /dev/null +++ b/workflow-engine-server/src/main/resources/examples/use.av @@ -0,0 +1,18 @@ +## examples/use.av + +use java.util.*; + +let list = new ArrayList(10); + +seq.add(list, 1); +seq.add(list, 2); + +p("list[0]=#{list[0]}"); +p("list[1]=#{list[1]}"); + +let set = new HashSet(); +seq.add(set, "a"); +seq.add(set, "a"); + +p("set type is: " + type(set)); +p("set is: #{set}");