TypeScript evaluator for Forge expressions with browser-compatible UMD bundle
npm install forge-expr-evaluatorA TypeScript library for evaluating Forge language expressions with a browser-compatible UMD bundle.
``bash`
npm install forge-expr-evaluator
html
`$3
`javascript
const { ForgeExprEvaluatorUtil } = require('forge-expr-evaluator');const evaluator = new ForgeExprEvaluatorUtil(datum, sourceCode);
const result = evaluator.evaluateExpression("some Board", 0);
console.log(result);
`$3
`typescript
import { ForgeExprEvaluatorUtil, DatumParsed } from 'forge-expr-evaluator';const datum: DatumParsed = {
parsed: {
instances: [/ your data /],
bitwidth: 4
},
data: "... "
};
const sourceCode =
;const evaluator = new ForgeExprEvaluatorUtil(datum, sourceCode);
const result = evaluator.evaluateExpression("some Board", 0);
`API
$3
#### Constructor
`typescript
new ForgeExprEvaluatorUtil(datum: DatumParsed, sourceCode: string)
`#### Methods
`typescript
evaluateExpression(expression: string, instanceIndex?: number): EvaluationResult
`$3
- DatumParsed: Data structure containing Forge model instances
- EvaluationResult: Result of expression evaluation (value or error)
- EvalResult: Successful evaluation result (string | number | boolean | Tuple[])Features
- ✅ Browser-compatible UMD bundle (~688 KiB)
- ✅ TypeScript support with full type definitions
- ✅ Evaluates Forge expressions against model data
- ✅ No external dependencies in the bundle
- ✅ Works with Sterling/Alloy data formats
Development
`bash
Install dependencies
npm installBuild the bundle
npm run buildRun tests
npm testServe demo locally
npm run serve
``MIT
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if needed
5. Submit a pull request
_Note_: The evaluator makes use of a Forge parser built using ANTLR; this is largely taken from
the parser developed by Siddhartha Prasad
with some minor modifications to the grammar.