aviatorscript: motor de procesamiento de expresiones en jvm

   La semana pasada, accidentalmente pensé en una pregunta. En el lenguaje Python, puede ingresar Python directamente en la línea de comando para ingresar al modo interactivo y luego puede escribir expresiones. Al igual que el script de shell en Linux, ingresamos el comando y puedes verlo directamente resultado. En el lenguaje JavaScript, el nodo también proporciona un entorno de ejecución interactivo de respuesta.

    El aviatorscript presentado hoy es un motor de procesamiento de expresiones sobre jvm. Con la ayuda de la máquina virtual java, se pueden escribir scripts relevantes. Se pueden escribir expresiones en estos scripts y, cuando se ejecutan, son como una evaluación de expresiones.

    dirección de aviatorscript: https://github.com/killme2008/aviatorscript

    Puede descargarlo directamente a su computadora local y luego ejecutarlo, como se muestra a continuación:

 

    Después de descargar aviatorscript, es posible que se informe un error al ejecutarlo bajo la línea de comando cmd. Necesitamos cambiar a la línea de comando msys. Utilizo el entorno git bash en mi máquina. git gui debe instalarse localmente. Viene con git bash. Si no desea instalar git bash, puede instalar msys o cygwin directamente.

    Utilizado en proyectos java:

<dependency>
    <groupId>com.googlecode.aviator</groupId>
    <artifactId>aviator</artifactId>
    <version>5.3.3</version>
</dependency>

    Código de muestra:

package com.xxx.expr;

import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.Expression;

import java.io.IOException;

import java.util.HashMap;
import java.util.Map;

public class AviatorExample {
    public static void main(String[] args) {
        String expr = "x + y";
        Map<String, Object> params = new HashMap<>();
        params.put("x" , 10L);
        params.put("y", 20L);
        Long result = (Long) AviatorEvaluator.compile(expr).execute(params);
        System.out.println(result);

        String avPath = "bin/hello.av";
        try {
            Expression expression = AviatorEvaluator.getInstance().compileScript(avPath);
            expression.execute();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

    hola.por

let a = 1;
let b = 2;
p(a+b);
let c = tuple(1, 2, 3, 4, 5);
let sum = reduce(c, +, 0);
p("sum = " + sum);

let date = new java.util.Date();
p(date);

    resultado de la operación:

 

    La sintaxis de aviatorscript es similar a Python y algo similar a JavaScript. 

Supongo que te gusta

Origin blog.csdn.net/feinifi/article/details/131217327
Recomendado
Clasificación