Felix Roos 0b5d905120 fix: adaptive highlighting
- transpiler now uses m function with globalOffset
- patternifyAST now accepts global offset
- patternifyAST now calls .withLoc with global leaf location
- .withLoc replaces .withLocation + .withMiniLocation
- simple locs (offsets) are now used everywhere
- some tests fail, seems some haps have reordered...
- wip: Repl still uses hardcoded updateMiniLocations
- todo: find way to call updateMiniLocations dynamically
2023-07-03 05:15:32 +02:00
..
2023-07-03 05:15:32 +02:00
2023-02-01 16:29:18 +01:00
2023-07-03 05:15:32 +02:00
2023-01-28 23:12:00 +01:00

@strudel.cycles/transpiler

This package contains a JS code transpiler with the following features:

  • add locations of mini notation strings (double quoted or backticked) for highlighting
  • converts pseudo note variables to note strings
  • adds return statement to the last expression

Install

npm i @strudel.cycles/transpiler

Use

import { transpiler } from '@strudel.cycles/core';
import { evaluate } from '@strudel.cycles/core';

transpiler('note("c3 [e3,g3]")', { wrapAsync: false, addReturn: false, simpleLocs: true });
/* mini('c3 [e3,g3]').withMiniLocation(7,17) */

evaluate(note('c3 [e3,g3]'), transpiler); // returns pattern of above code