Skip to content

Quick Start

This document introduces how to use FSScript in Java, including compiling strings into Exp expression objects and executing them.

Maven Dependency

xml
<dependency>
    <groupId>com.foggyframework</groupId>
    <artifactId>foggy-fsscript</artifactId>
    <version>${foggy.version}</version>
</dependency>

Minimal Example

java
import com.foggyframework.fsscript.DefaultExpEvaluator;
import com.foggyframework.fsscript.parser.ExpParser;
import com.foggyframework.fsscript.parser.spi.Exp;

public class QuickStart {
    public static void main(String[] args) {
        // 1. Create parser
        ExpParser parser = new ExpParser();

        // 2. Compile script string to Exp object
        Exp exp = parser.compileEl("let x = 10; return x * 2;");

        // 3. Create evaluator
        DefaultExpEvaluator evaluator = DefaultExpEvaluator.newInstance();

        // 4. Execute and get result
        Object result = exp.evalResult(evaluator);

        System.out.println(result);  // Output: 20
    }
}

Core Classes

ExpParser - Expression Parser

java
public class ExpParser {
    // Compile expression language script (recommended)
    public Exp compileEl(String str) throws CompileException;

    // Compile script (includes template string parsing)
    public Exp compile(String str) throws CompileException;
}

Exp - Expression Interface

java
public interface Exp {
    // Execute expression and return raw value
    Object evalValue(ExpEvaluator ee);

    // Execute expression and return unwrapped result (recommended)
    default Object evalResult(ExpEvaluator ee);
}

DefaultExpEvaluator - Default Evaluator

java
public class DefaultExpEvaluator implements ExpEvaluator {
    // Create new instance
    public static DefaultExpEvaluator newInstance();

    // Create instance with Spring context
    public static DefaultExpEvaluator newInstance(ApplicationContext appCtx);

    // Get variable value
    public Object getVar(String name);

    // Set variable value
    public Object setVar(String name, Object value);
}