takomusic 1.3.0 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/build.js +44 -9
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/import.js +7 -0
- package/dist/cli/commands/import.js.map +1 -1
- package/dist/cli/commands/render.d.ts.map +1 -1
- package/dist/cli/commands/render.js +34 -2
- package/dist/cli/commands/render.js.map +1 -1
- package/dist/compiler/compiler.d.ts.map +1 -1
- package/dist/compiler/compiler.js +62 -5
- package/dist/compiler/compiler.js.map +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +62 -2
- package/dist/config/config.js.map +1 -1
- package/dist/generators/midi.js +27 -2
- package/dist/generators/midi.js.map +1 -1
- package/dist/generators/musicxml.d.ts.map +1 -1
- package/dist/generators/musicxml.js +50 -36
- package/dist/generators/musicxml.js.map +1 -1
- package/dist/importers/musicxml.d.ts.map +1 -1
- package/dist/importers/musicxml.js +52 -22
- package/dist/importers/musicxml.js.map +1 -1
- package/dist/interpreter/builtins/midi.d.ts.map +1 -1
- package/dist/interpreter/builtins/midi.js +23 -0
- package/dist/interpreter/builtins/midi.js.map +1 -1
- package/dist/interpreter/interpreter.d.ts +2 -0
- package/dist/interpreter/interpreter.d.ts.map +1 -1
- package/dist/interpreter/interpreter.js +68 -19
- package/dist/interpreter/interpreter.js.map +1 -1
- package/dist/interpreter/runtime.d.ts +8 -0
- package/dist/interpreter/runtime.d.ts.map +1 -1
- package/dist/interpreter/runtime.js +31 -0
- package/dist/interpreter/runtime.js.map +1 -1
- package/dist/interpreter/scope.d.ts.map +1 -1
- package/dist/interpreter/scope.js +5 -4
- package/dist/interpreter/scope.js.map +1 -1
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +61 -13
- package/dist/parser/parser.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midi.js","sourceRoot":"","sources":["../../../src/interpreter/builtins/midi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"midi.js","sourceRoot":"","sources":["../../../src/interpreter/builtins/midi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/interpreter/interpreter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,OAAO,EAGP,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,MAAM,EAqSP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/interpreter/interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Interpreter for MFS language
|
|
2
|
-
import { makeInt, makeFloat, makeString, makeBool, makePitch, makeDur, makeTime, makeArray, makeObject, makeFunction, makeNull, toNumber, isTruthy, toString, } from './runtime.js';
|
|
2
|
+
import { makeInt, makeFloat, makeString, makeBool, makePitch, makeDur, makeTime, makeArray, makeObject, makeFunction, makeNull, toNumber, isTruthy, toString, deepClone, } from './runtime.js';
|
|
3
3
|
import { Scope } from './scope.js';
|
|
4
4
|
import { createError, MFError } from '../errors.js';
|
|
5
5
|
import * as coreBuiltins from './builtins/core.js';
|
|
@@ -72,6 +72,8 @@ export class Interpreter {
|
|
|
72
72
|
currentTrack = null;
|
|
73
73
|
trackStarted = false;
|
|
74
74
|
callStack = new Map();
|
|
75
|
+
callDepth = 0;
|
|
76
|
+
static MAX_CALL_DEPTH = 1000;
|
|
75
77
|
forIterationCount = 0;
|
|
76
78
|
filePath;
|
|
77
79
|
constructor(filePath) {
|
|
@@ -600,19 +602,33 @@ export class Interpreter {
|
|
|
600
602
|
}
|
|
601
603
|
}
|
|
602
604
|
evaluateBinary(op, leftExpr, rightExpr) {
|
|
603
|
-
|
|
604
|
-
const right = this.evaluate(rightExpr);
|
|
605
|
-
// Short-circuit evaluation for logical operators
|
|
605
|
+
// Short-circuit evaluation for logical operators - evaluate right side only if needed
|
|
606
606
|
if (op === '&&') {
|
|
607
|
-
|
|
607
|
+
const left = this.evaluate(leftExpr);
|
|
608
|
+
if (!isTruthy(left)) {
|
|
609
|
+
return makeBool(false);
|
|
610
|
+
}
|
|
611
|
+
const right = this.evaluate(rightExpr);
|
|
612
|
+
return makeBool(isTruthy(right));
|
|
608
613
|
}
|
|
609
614
|
if (op === '||') {
|
|
610
|
-
|
|
615
|
+
const left = this.evaluate(leftExpr);
|
|
616
|
+
if (isTruthy(left)) {
|
|
617
|
+
return makeBool(true);
|
|
618
|
+
}
|
|
619
|
+
const right = this.evaluate(rightExpr);
|
|
620
|
+
return makeBool(isTruthy(right));
|
|
611
621
|
}
|
|
612
|
-
// Nullish coalescing: return left if not null
|
|
622
|
+
// Nullish coalescing: return left if not null, else evaluate right
|
|
613
623
|
if (op === '??') {
|
|
614
|
-
|
|
624
|
+
const left = this.evaluate(leftExpr);
|
|
625
|
+
if (left.type !== 'null') {
|
|
626
|
+
return left;
|
|
627
|
+
}
|
|
628
|
+
return this.evaluate(rightExpr);
|
|
615
629
|
}
|
|
630
|
+
const left = this.evaluate(leftExpr);
|
|
631
|
+
const right = this.evaluate(rightExpr);
|
|
616
632
|
// Comparison operators
|
|
617
633
|
if (op === '==' || op === '!=') {
|
|
618
634
|
const equal = this.valuesEqual(left, right);
|
|
@@ -685,15 +701,21 @@ export class Interpreter {
|
|
|
685
701
|
if (op === '/') {
|
|
686
702
|
// Dur / Int
|
|
687
703
|
if (left.type === 'dur' && right.type === 'int') {
|
|
704
|
+
if (right.value === 0) {
|
|
705
|
+
throw createError('E400', 'Division by zero', leftExpr.position, this.filePath);
|
|
706
|
+
}
|
|
688
707
|
const den = left.denominator * right.value;
|
|
689
708
|
const gcd = this.gcd(left.numerator, den);
|
|
709
|
+
if (gcd === 0) {
|
|
710
|
+
throw createError('E400', 'Division by zero in duration calculation', leftExpr.position, this.filePath);
|
|
711
|
+
}
|
|
690
712
|
return makeDur(left.numerator / gcd, den / gcd);
|
|
691
713
|
}
|
|
692
714
|
// Numeric
|
|
693
715
|
const l = toNumber(left);
|
|
694
716
|
const r = toNumber(right);
|
|
695
717
|
if (r === 0) {
|
|
696
|
-
throw
|
|
718
|
+
throw createError('E400', 'Division by zero', rightExpr.position, this.filePath);
|
|
697
719
|
}
|
|
698
720
|
// Division always returns float unless both are int and divide evenly
|
|
699
721
|
if (left.type === 'int' && right.type === 'int' && l % r === 0) {
|
|
@@ -705,7 +727,7 @@ export class Interpreter {
|
|
|
705
727
|
const l = toNumber(left);
|
|
706
728
|
const r = toNumber(right);
|
|
707
729
|
if (r === 0) {
|
|
708
|
-
throw
|
|
730
|
+
throw createError('E400', 'Modulo by zero', rightExpr.position, this.filePath);
|
|
709
731
|
}
|
|
710
732
|
if (left.type === 'int' && right.type === 'int') {
|
|
711
733
|
return makeInt(l % r);
|
|
@@ -738,7 +760,7 @@ export class Interpreter {
|
|
|
738
760
|
const r = Math.trunc(toNumber(right));
|
|
739
761
|
return makeInt(l >> r);
|
|
740
762
|
}
|
|
741
|
-
throw
|
|
763
|
+
throw createError('E400', `Unknown binary operator: ${op}`, leftExpr.position, this.filePath);
|
|
742
764
|
}
|
|
743
765
|
evaluateUnary(op, operandExpr) {
|
|
744
766
|
const operand = this.evaluate(operandExpr);
|
|
@@ -753,7 +775,7 @@ export class Interpreter {
|
|
|
753
775
|
const n = Math.trunc(toNumber(operand));
|
|
754
776
|
return makeInt(~n);
|
|
755
777
|
}
|
|
756
|
-
throw
|
|
778
|
+
throw createError('E400', `Unknown unary operator: ${op}`, operandExpr.position, this.filePath);
|
|
757
779
|
}
|
|
758
780
|
evaluateCall(calleeExpr, args, position) {
|
|
759
781
|
// Helper to expand arguments (handle spread)
|
|
@@ -848,6 +870,9 @@ export class Interpreter {
|
|
|
848
870
|
if (pitch.midi < 0 || pitch.midi > 127) {
|
|
849
871
|
throw createError('E110', `Pitch ${pitch.midi} out of range 0..127`, position, this.filePath);
|
|
850
872
|
}
|
|
873
|
+
if (vel.value < 0 || vel.value > 127) {
|
|
874
|
+
throw createError('E110', `Velocity ${vel.value} out of range 0..127`, position, this.filePath);
|
|
875
|
+
}
|
|
851
876
|
const event = {
|
|
852
877
|
type: 'note',
|
|
853
878
|
tick: tick.value,
|
|
@@ -1018,15 +1043,22 @@ export class Interpreter {
|
|
|
1018
1043
|
// Array utilities
|
|
1019
1044
|
case 'fill': {
|
|
1020
1045
|
// fill(size, value) - create array of size filled with value
|
|
1046
|
+
// Each element is a deep clone to avoid shared references
|
|
1021
1047
|
if (args.length !== 2) {
|
|
1022
1048
|
throw createError('E400', 'fill() requires 2 arguments', position, this.filePath);
|
|
1023
1049
|
}
|
|
1024
1050
|
const size = Math.floor(toNumber(this.evaluate(args[0])));
|
|
1051
|
+
if (size < 0) {
|
|
1052
|
+
throw createError('E400', 'fill() size must be non-negative', position, this.filePath);
|
|
1053
|
+
}
|
|
1054
|
+
if (size > 1000000) {
|
|
1055
|
+
throw createError('E401', 'fill() size exceeds maximum (1000000)', position, this.filePath);
|
|
1056
|
+
}
|
|
1025
1057
|
const value = this.evaluate(args[1]);
|
|
1026
1058
|
const elements = [];
|
|
1027
1059
|
for (let i = 0; i < size; i++) {
|
|
1028
|
-
// Deep
|
|
1029
|
-
elements.push(value);
|
|
1060
|
+
// Deep clone to avoid shared references for arrays/objects
|
|
1061
|
+
elements.push(deepClone(value));
|
|
1030
1062
|
}
|
|
1031
1063
|
return makeArray(elements);
|
|
1032
1064
|
}
|
|
@@ -1087,7 +1119,8 @@ export class Interpreter {
|
|
|
1087
1119
|
if (arr.elements.length === 0) {
|
|
1088
1120
|
return makeNull();
|
|
1089
1121
|
}
|
|
1090
|
-
|
|
1122
|
+
const popped = arr.elements.pop();
|
|
1123
|
+
return popped ?? makeNull();
|
|
1091
1124
|
}
|
|
1092
1125
|
case 'concat': {
|
|
1093
1126
|
// concat(arr1, arr2) - returns new array
|
|
@@ -1428,15 +1461,17 @@ export class Interpreter {
|
|
|
1428
1461
|
throw createError('E400', 'substr() requires at least 2 arguments', position, this.filePath);
|
|
1429
1462
|
}
|
|
1430
1463
|
const str = this.evaluate(args[0]);
|
|
1431
|
-
const
|
|
1432
|
-
const length = args.length > 2 ? toNumber(this.evaluate(args[2])) : undefined;
|
|
1464
|
+
const startIdx = Math.floor(toNumber(this.evaluate(args[1])));
|
|
1465
|
+
const length = args.length > 2 ? Math.floor(toNumber(this.evaluate(args[2]))) : undefined;
|
|
1433
1466
|
if (str.type !== 'string') {
|
|
1434
1467
|
throw createError('E400', 'substr() first argument must be a string', position, this.filePath);
|
|
1435
1468
|
}
|
|
1469
|
+
// Handle negative start index (from end of string)
|
|
1470
|
+
const actualStart = startIdx < 0 ? Math.max(0, str.value.length + startIdx) : startIdx;
|
|
1436
1471
|
if (length !== undefined) {
|
|
1437
|
-
return makeString(str.value.
|
|
1472
|
+
return makeString(str.value.substring(actualStart, actualStart + length));
|
|
1438
1473
|
}
|
|
1439
|
-
return makeString(str.value.
|
|
1474
|
+
return makeString(str.value.substring(actualStart));
|
|
1440
1475
|
}
|
|
1441
1476
|
case 'indexOf': {
|
|
1442
1477
|
// indexOf(str, search) - returns index or -1
|
|
@@ -1697,6 +1732,12 @@ export class Interpreter {
|
|
|
1697
1732
|
if (step === 0) {
|
|
1698
1733
|
throw createError('E400', 'range() step cannot be 0', position, this.filePath);
|
|
1699
1734
|
}
|
|
1735
|
+
// Check iteration limit to prevent memory exhaustion
|
|
1736
|
+
const maxRangeSize = 1000000; // 1 million elements max
|
|
1737
|
+
const expectedSize = Math.abs(Math.ceil((end - start) / step));
|
|
1738
|
+
if (expectedSize > maxRangeSize) {
|
|
1739
|
+
throw createError('E401', `range() would create ${expectedSize} elements, exceeding limit of ${maxRangeSize}`, position, this.filePath);
|
|
1740
|
+
}
|
|
1700
1741
|
const result = [];
|
|
1701
1742
|
if (step > 0) {
|
|
1702
1743
|
for (let i = start; i < end; i += step) {
|
|
@@ -2486,6 +2527,12 @@ export class Interpreter {
|
|
|
2486
2527
|
}
|
|
2487
2528
|
// Call a FunctionValue (arrow function or first-class function)
|
|
2488
2529
|
callFunctionValue(fn, evalArgs, position) {
|
|
2530
|
+
// Check recursion depth to prevent stack overflow
|
|
2531
|
+
this.callDepth++;
|
|
2532
|
+
if (this.callDepth > Interpreter.MAX_CALL_DEPTH) {
|
|
2533
|
+
this.callDepth--;
|
|
2534
|
+
throw createError('E401', `Maximum call depth exceeded (${Interpreter.MAX_CALL_DEPTH})`, position, this.filePath);
|
|
2535
|
+
}
|
|
2489
2536
|
// Create new scope chained to closure scope (not current scope!)
|
|
2490
2537
|
const callScope = fn.closure.createChild();
|
|
2491
2538
|
// Bind parameters (with default value support)
|
|
@@ -2531,10 +2578,12 @@ export class Interpreter {
|
|
|
2531
2578
|
}
|
|
2532
2579
|
else {
|
|
2533
2580
|
this.scope = oldScope;
|
|
2581
|
+
this.callDepth--;
|
|
2534
2582
|
throw e;
|
|
2535
2583
|
}
|
|
2536
2584
|
}
|
|
2537
2585
|
this.scope = oldScope;
|
|
2586
|
+
this.callDepth--;
|
|
2538
2587
|
return result;
|
|
2539
2588
|
}
|
|
2540
2589
|
// Articulation functions
|