takomusic 1.2.0 → 1.3.1

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.
Files changed (61) hide show
  1. package/dist/__tests__/checker.test.js +9 -6
  2. package/dist/__tests__/checker.test.js.map +1 -1
  3. package/dist/checker/checker.d.ts +2 -0
  4. package/dist/checker/checker.d.ts.map +1 -1
  5. package/dist/checker/checker.js +125 -7
  6. package/dist/checker/checker.js.map +1 -1
  7. package/dist/cli/commands/build.js +37 -7
  8. package/dist/cli/commands/build.js.map +1 -1
  9. package/dist/cli/commands/import.d.ts.map +1 -1
  10. package/dist/cli/commands/import.js +7 -0
  11. package/dist/cli/commands/import.js.map +1 -1
  12. package/dist/cli/commands/render.d.ts.map +1 -1
  13. package/dist/cli/commands/render.js +34 -2
  14. package/dist/cli/commands/render.js.map +1 -1
  15. package/dist/compiler/compiler.d.ts.map +1 -1
  16. package/dist/compiler/compiler.js +87 -15
  17. package/dist/compiler/compiler.js.map +1 -1
  18. package/dist/config/config.d.ts.map +1 -1
  19. package/dist/config/config.js +7 -1
  20. package/dist/config/config.js.map +1 -1
  21. package/dist/formatter/formatter.d.ts +1 -0
  22. package/dist/formatter/formatter.d.ts.map +1 -1
  23. package/dist/formatter/formatter.js +78 -8
  24. package/dist/formatter/formatter.js.map +1 -1
  25. package/dist/generators/midi.js +2 -1
  26. package/dist/generators/midi.js.map +1 -1
  27. package/dist/generators/musicxml.d.ts.map +1 -1
  28. package/dist/generators/musicxml.js +36 -24
  29. package/dist/generators/musicxml.js.map +1 -1
  30. package/dist/importers/musicxml.d.ts.map +1 -1
  31. package/dist/importers/musicxml.js +26 -10
  32. package/dist/importers/musicxml.js.map +1 -1
  33. package/dist/interpreter/builtins/midi.d.ts.map +1 -1
  34. package/dist/interpreter/builtins/midi.js +23 -0
  35. package/dist/interpreter/builtins/midi.js.map +1 -1
  36. package/dist/interpreter/interpreter.d.ts +2 -0
  37. package/dist/interpreter/interpreter.d.ts.map +1 -1
  38. package/dist/interpreter/interpreter.js +199 -29
  39. package/dist/interpreter/interpreter.js.map +1 -1
  40. package/dist/interpreter/runtime.d.ts +2 -1
  41. package/dist/interpreter/runtime.d.ts.map +1 -1
  42. package/dist/interpreter/runtime.js +6 -2
  43. package/dist/interpreter/runtime.js.map +1 -1
  44. package/dist/interpreter/scope.d.ts.map +1 -1
  45. package/dist/interpreter/scope.js +5 -4
  46. package/dist/interpreter/scope.js.map +1 -1
  47. package/dist/lexer/lexer.d.ts +4 -0
  48. package/dist/lexer/lexer.d.ts.map +1 -1
  49. package/dist/lexer/lexer.js +215 -14
  50. package/dist/lexer/lexer.js.map +1 -1
  51. package/dist/parser/parser.d.ts +19 -0
  52. package/dist/parser/parser.d.ts.map +1 -1
  53. package/dist/parser/parser.js +437 -30
  54. package/dist/parser/parser.js.map +1 -1
  55. package/dist/types/ast.d.ts +34 -3
  56. package/dist/types/ast.d.ts.map +1 -1
  57. package/dist/types/token.d.ts +25 -0
  58. package/dist/types/token.d.ts.map +1 -1
  59. package/dist/types/token.js +33 -0
  60. package/dist/types/token.js.map +1 -1
  61. package/package.json +1 -1
@@ -25,6 +25,7 @@ export interface DurValue {
25
25
  type: 'dur';
26
26
  numerator: number;
27
27
  denominator: number;
28
+ dots: number;
28
29
  }
29
30
  export interface TimeValue {
30
31
  type: 'time';
@@ -54,7 +55,7 @@ export declare function makeFloat(value: number): FloatValue;
54
55
  export declare function makeString(value: string): StringValue;
55
56
  export declare function makeBool(value: boolean): BoolValue;
56
57
  export declare function makePitch(midi: number): PitchValue;
57
- export declare function makeDur(numerator: number, denominator: number): DurValue;
58
+ export declare function makeDur(numerator: number, denominator: number, dots?: number): DurValue;
58
59
  export declare function makeTime(bar: number, beat: number, sub: number): TimeValue;
59
60
  export declare function makeArray(elements: RuntimeValue[]): ArrayValue;
60
61
  export declare function makeObject(properties?: Map<string, RuntimeValue>): ObjectValue;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/interpreter/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/interpreter/runtime.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,14 @@ export function makeBool(value) {
12
12
  return { type: 'bool', value };
13
13
  }
14
14
  export function makePitch(midi) {
15
+ // Validate MIDI value is in valid range 0-127
16
+ if (midi < 0 || midi > 127) {
17
+ throw new Error(`Pitch out of range: MIDI value ${midi} (must be 0-127)`);
18
+ }
15
19
  return { type: 'pitch', midi };
16
20
  }
17
- export function makeDur(numerator, denominator) {
18
- return { type: 'dur', numerator, denominator };
21
+ export function makeDur(numerator, denominator, dots = 0) {
22
+ return { type: 'dur', numerator, denominator, dots };
19
23
  }
20
24
  export function makeTime(bar, beat, sub) {
21
25
  return { type: 'time', bar, beat, sub };
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/interpreter/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/interpreter/runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/interpreter/scope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,GAAE,KAAK,GAAG,IAAW;IAIvC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOpD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOlD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAW/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAK9C,OAAO,CAAC,eAAe;IAUvB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAIvC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAUrD,WAAW,IAAI,KAAK;CAGrB"}
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/interpreter/scope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,GAAE,KAAK,GAAG,IAAW;IAIvC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOpD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOlD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAW/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAK9C,OAAO,CAAC,eAAe;IAUvB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAIvC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAUrD,WAAW,IAAI,KAAK;CAGrB"}
@@ -1,4 +1,5 @@
1
1
  // Scope management for MFS interpreter
2
+ import { MFError } from '../errors.js';
2
3
  export class Scope {
3
4
  variables = new Map();
4
5
  procs = new Map();
@@ -8,23 +9,23 @@ export class Scope {
8
9
  }
9
10
  defineConst(name, value) {
10
11
  if (this.variables.has(name)) {
11
- throw new Error(`Variable '${name}' is already defined`);
12
+ throw new MFError('RUNTIME', `Variable '${name}' is already defined`);
12
13
  }
13
14
  this.variables.set(name, { value, mutable: false });
14
15
  }
15
16
  defineLet(name, value) {
16
17
  if (this.variables.has(name)) {
17
- throw new Error(`Variable '${name}' is already defined`);
18
+ throw new MFError('RUNTIME', `Variable '${name}' is already defined`);
18
19
  }
19
20
  this.variables.set(name, { value, mutable: true });
20
21
  }
21
22
  assign(name, value) {
22
23
  const variable = this.resolveVariable(name);
23
24
  if (!variable) {
24
- throw new Error(`Undefined variable '${name}'`);
25
+ throw new MFError('E400', `Undefined variable '${name}'`);
25
26
  }
26
27
  if (!variable.mutable) {
27
- throw new Error(`Cannot reassign constant '${name}'`);
28
+ throw new MFError('RUNTIME', `Cannot reassign constant '${name}'`);
28
29
  }
29
30
  variable.value = value;
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/interpreter/scope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAUvC,MAAM,OAAO,KAAK;IACR,SAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;IAC7C,KAAK,GAAiC,IAAI,GAAG,EAAE,CAAC;IAChD,MAAM,CAAe;IAE7B,YAAY,SAAuB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,KAAmB;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,sBAAsB,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,KAAmB;QACzC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,sBAAsB,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,KAAmB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC;QACxD,CAAC;QACD,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,QAAQ,EAAE,KAAK,CAAC;IACzB,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,IAAqB;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/interpreter/scope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAIvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAOvC,MAAM,OAAO,KAAK;IACR,SAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;IAC7C,KAAK,GAAiC,IAAI,GAAG,EAAE,CAAC;IAChD,MAAM,CAAe;IAE7B,YAAY,SAAuB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,KAAmB;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,aAAa,IAAI,sBAAsB,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,KAAmB;QACzC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,aAAa,IAAI,sBAAsB,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,KAAmB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,uBAAuB,IAAI,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,6BAA6B,IAAI,GAAG,CAAC,CAAC;QACrE,CAAC;QACD,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,QAAQ,EAAE,KAAK,CAAC;IACzB,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,IAAqB;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -5,10 +5,14 @@ export declare class Lexer {
5
5
  private line;
6
6
  private column;
7
7
  private filePath?;
8
+ private templateStack;
9
+ private inTemplateExpr;
8
10
  constructor(source: string, filePath?: string);
9
11
  tokenize(): Token[];
10
12
  private nextToken;
11
13
  private readString;
14
+ private readTemplateStart;
15
+ private readTemplateMiddle;
12
16
  private readNumberOrTimeLiteral;
13
17
  private readTimeLiteral;
14
18
  private readDurLiteral;
@@ -1 +1 @@
1
- {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAiC,MAAM,mBAAmB,CAAC;AAGzE,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK7C,QAAQ,IAAI,KAAK,EAAE;IAiBnB,OAAO,CAAC,SAAS;IA6BjB,OAAO,CAAC,UAAU;IAoClB,OAAO,CAAC,uBAAuB;IAsC/B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAsDpB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,YAAY;IA0GpB,OAAO,CAAC,yBAAyB;IAqCjC,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAiC,MAAM,mBAAmB,CAAC;AAGzE,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,cAAc,CAAkB;gBAE5B,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK7C,QAAQ,IAAI,KAAK,EAAE;IAiBnB,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,UAAU;IAoClB,OAAO,CAAC,iBAAiB;IAkDzB,OAAO,CAAC,kBAAkB;IAkD1B,OAAO,CAAC,uBAAuB;IAsC/B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAmEpB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,YAAY;IAiKpB,OAAO,CAAC,yBAAyB;IA6CjC,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,SAAS;CAGlB"}
@@ -7,6 +7,8 @@ export class Lexer {
7
7
  line = 1;
8
8
  column = 1;
9
9
  filePath;
10
+ templateStack = 0; // Track nested template literals
11
+ inTemplateExpr = false; // Are we inside ${...}?
10
12
  constructor(source, filePath) {
11
13
  this.source = source;
12
14
  this.filePath = filePath;
@@ -28,6 +30,10 @@ export class Lexer {
28
30
  nextToken() {
29
31
  const pos = this.currentPosition();
30
32
  const char = this.peek();
33
+ // Template literal
34
+ if (char === '`') {
35
+ return this.readTemplateStart();
36
+ }
31
37
  // String literal
32
38
  if (char === '"') {
33
39
  return this.readString();
@@ -92,6 +98,120 @@ export class Lexer {
92
98
  this.advance(); // consume closing quote
93
99
  return { type: TokenType.STRING, value, position: pos };
94
100
  }
101
+ readTemplateStart() {
102
+ const pos = this.currentPosition();
103
+ this.advance(); // consume opening backtick
104
+ let value = '';
105
+ while (!this.isAtEnd()) {
106
+ const char = this.peek();
107
+ if (char === '`') {
108
+ // End of template, no interpolation
109
+ this.advance();
110
+ return { type: TokenType.TEMPLATE_STRING, value, position: pos };
111
+ }
112
+ if (char === '$' && this.peekNext() === '{') {
113
+ // Start of interpolation
114
+ this.advance(); // consume $
115
+ this.advance(); // consume {
116
+ this.templateStack++;
117
+ this.inTemplateExpr = true;
118
+ return { type: TokenType.TEMPLATE_HEAD, value, position: pos };
119
+ }
120
+ if (char === '\\') {
121
+ // Escape sequence
122
+ this.advance();
123
+ if (!this.isAtEnd()) {
124
+ const escaped = this.advance();
125
+ switch (escaped) {
126
+ case 'n':
127
+ value += '\n';
128
+ break;
129
+ case 't':
130
+ value += '\t';
131
+ break;
132
+ case 'r':
133
+ value += '\r';
134
+ break;
135
+ case '\\':
136
+ value += '\\';
137
+ break;
138
+ case '`':
139
+ value += '`';
140
+ break;
141
+ case '$':
142
+ value += '$';
143
+ break;
144
+ default: value += escaped;
145
+ }
146
+ }
147
+ }
148
+ else {
149
+ if (char === '\n') {
150
+ this.line++;
151
+ this.column = 1;
152
+ }
153
+ value += this.advance();
154
+ }
155
+ }
156
+ throw new MFError('SYNTAX', 'Unterminated template literal', pos, this.filePath);
157
+ }
158
+ readTemplateMiddle(pos) {
159
+ // We're at the closing } of a template expression
160
+ // Continue reading template content
161
+ let value = '';
162
+ while (!this.isAtEnd()) {
163
+ const char = this.peek();
164
+ if (char === '`') {
165
+ // End of template
166
+ this.advance();
167
+ this.templateStack--;
168
+ this.inTemplateExpr = this.templateStack > 0;
169
+ return { type: TokenType.TEMPLATE_TAIL, value, position: pos };
170
+ }
171
+ if (char === '$' && this.peekNext() === '{') {
172
+ // Another interpolation
173
+ this.advance(); // consume $
174
+ this.advance(); // consume {
175
+ return { type: TokenType.TEMPLATE_MIDDLE, value, position: pos };
176
+ }
177
+ if (char === '\\') {
178
+ // Escape sequence
179
+ this.advance();
180
+ if (!this.isAtEnd()) {
181
+ const escaped = this.advance();
182
+ switch (escaped) {
183
+ case 'n':
184
+ value += '\n';
185
+ break;
186
+ case 't':
187
+ value += '\t';
188
+ break;
189
+ case 'r':
190
+ value += '\r';
191
+ break;
192
+ case '\\':
193
+ value += '\\';
194
+ break;
195
+ case '`':
196
+ value += '`';
197
+ break;
198
+ case '$':
199
+ value += '$';
200
+ break;
201
+ default: value += escaped;
202
+ }
203
+ }
204
+ }
205
+ else {
206
+ if (char === '\n') {
207
+ this.line++;
208
+ this.column = 1;
209
+ }
210
+ value += this.advance();
211
+ }
212
+ }
213
+ throw new MFError('SYNTAX', 'Unterminated template literal', pos, this.filePath);
214
+ }
95
215
  readNumberOrTimeLiteral() {
96
216
  const pos = this.currentPosition();
97
217
  const start = this.position;
@@ -147,6 +267,10 @@ export class Lexer {
147
267
  while (this.isDigit(this.peek())) {
148
268
  this.advance();
149
269
  }
270
+ // Read optional dots for dotted notes (1/4., 1/4..)
271
+ while (this.peek() === '.') {
272
+ this.advance();
273
+ }
150
274
  const value = this.source.slice(start, this.position);
151
275
  return { type: TokenType.DUR, value, position: pos };
152
276
  }
@@ -164,11 +288,26 @@ export class Lexer {
164
288
  return null;
165
289
  }
166
290
  this.advance();
167
- // Check for sharp or flat
291
+ // Check for accidentals (supports single and double sharps/flats)
168
292
  const accidental = this.peek();
169
- if (accidental === '#' || accidental === 'b') {
293
+ if (accidental === '#') {
294
+ this.advance();
295
+ // Check for double sharp (##)
296
+ if (this.peek() === '#') {
297
+ this.advance();
298
+ }
299
+ }
300
+ else if (accidental === 'x') {
301
+ // 'x' notation for double sharp (Cx = C##)
170
302
  this.advance();
171
303
  }
304
+ else if (accidental === 'b') {
305
+ this.advance();
306
+ // Check for double flat (bb)
307
+ if (this.peek() === 'b') {
308
+ this.advance();
309
+ }
310
+ }
172
311
  // Must have octave number
173
312
  if (!this.isDigit(this.peek()) && this.peek() !== '-') {
174
313
  // Not a pitch, backtrack
@@ -238,11 +377,21 @@ export class Lexer {
238
377
  return { type: TokenType.SLASHEQ, value: '/=', position: pos };
239
378
  }
240
379
  return { type: TokenType.SLASH, value: '/', position: pos };
241
- case '%': return { type: TokenType.PERCENT, value: '%', position: pos };
380
+ case '%':
381
+ if (this.peek() === '=') {
382
+ this.advance();
383
+ return { type: TokenType.PERCENTEQ, value: '%=', position: pos };
384
+ }
385
+ return { type: TokenType.PERCENT, value: '%', position: pos };
242
386
  case '(': return { type: TokenType.LPAREN, value: '(', position: pos };
243
387
  case ')': return { type: TokenType.RPAREN, value: ')', position: pos };
244
388
  case '{': return { type: TokenType.LBRACE, value: '{', position: pos };
245
- case '}': return { type: TokenType.RBRACE, value: '}', position: pos };
389
+ case '}':
390
+ // Check if we're closing a template expression
391
+ if (this.inTemplateExpr) {
392
+ return this.readTemplateMiddle(pos);
393
+ }
394
+ return { type: TokenType.RBRACE, value: '}', position: pos };
246
395
  case '[': return { type: TokenType.LBRACKET, value: '[', position: pos };
247
396
  case ']': return { type: TokenType.RBRACKET, value: ']', position: pos };
248
397
  case ',': return { type: TokenType.COMMA, value: ',', position: pos };
@@ -269,25 +418,57 @@ export class Lexer {
269
418
  this.advance();
270
419
  return { type: TokenType.LTEQ, value: '<=', position: pos };
271
420
  }
421
+ if (this.peek() === '<') {
422
+ this.advance();
423
+ if (this.peek() === '=') {
424
+ this.advance();
425
+ return { type: TokenType.SHLEQ, value: '<<=', position: pos };
426
+ }
427
+ return { type: TokenType.SHL, value: '<<', position: pos };
428
+ }
272
429
  return { type: TokenType.LT, value: '<', position: pos };
273
430
  case '>':
274
431
  if (this.peek() === '=') {
275
432
  this.advance();
276
433
  return { type: TokenType.GTEQ, value: '>=', position: pos };
277
434
  }
435
+ if (this.peek() === '>') {
436
+ this.advance();
437
+ if (this.peek() === '=') {
438
+ this.advance();
439
+ return { type: TokenType.SHREQ, value: '>>=', position: pos };
440
+ }
441
+ return { type: TokenType.SHR, value: '>>', position: pos };
442
+ }
278
443
  return { type: TokenType.GT, value: '>', position: pos };
279
444
  case '&':
280
445
  if (this.peek() === '&') {
281
446
  this.advance();
282
447
  return { type: TokenType.AND, value: '&&', position: pos };
283
448
  }
284
- throw new MFError('SYNTAX', `Unexpected character: ${char}`, pos, this.filePath);
449
+ if (this.peek() === '=') {
450
+ this.advance();
451
+ return { type: TokenType.BITANDEQ, value: '&=', position: pos };
452
+ }
453
+ return { type: TokenType.BITAND, value: '&', position: pos };
285
454
  case '|':
286
455
  if (this.peek() === '|') {
287
456
  this.advance();
288
457
  return { type: TokenType.OR, value: '||', position: pos };
289
458
  }
290
- throw new MFError('SYNTAX', `Unexpected character: ${char}`, pos, this.filePath);
459
+ if (this.peek() === '=') {
460
+ this.advance();
461
+ return { type: TokenType.BITOREQ, value: '|=', position: pos };
462
+ }
463
+ return { type: TokenType.BITOR, value: '|', position: pos };
464
+ case '^':
465
+ if (this.peek() === '=') {
466
+ this.advance();
467
+ return { type: TokenType.BITXOREQ, value: '^=', position: pos };
468
+ }
469
+ return { type: TokenType.BITXOR, value: '^', position: pos };
470
+ case '~':
471
+ return { type: TokenType.BITNOT, value: '~', position: pos };
291
472
  case '.':
292
473
  if (this.peek() === '.') {
293
474
  this.advance();
@@ -302,6 +483,16 @@ export class Lexer {
302
483
  return { type: TokenType.DOTDOT, value: '..', position: pos };
303
484
  }
304
485
  return { type: TokenType.DOT, value: '.', position: pos };
486
+ case '?':
487
+ if (this.peek() === '.') {
488
+ this.advance();
489
+ return { type: TokenType.QUESTIONDOT, value: '?.', position: pos };
490
+ }
491
+ if (this.peek() === '?') {
492
+ this.advance();
493
+ return { type: TokenType.NULLISH, value: '??', position: pos };
494
+ }
495
+ return { type: TokenType.QUESTION, value: '?', position: pos };
305
496
  default:
306
497
  throw new MFError('SYNTAX', `Unexpected character: ${char}`, pos, this.filePath);
307
498
  }
@@ -324,20 +515,30 @@ export class Lexer {
324
515
  }
325
516
  }
326
517
  else if (char === '/' && this.peekNext() === '*') {
327
- // Block comment
518
+ // Block comment with nesting support
328
519
  this.advance(); // consume /
329
520
  this.advance(); // consume *
330
- while (!this.isAtEnd()) {
331
- if (this.peek() === '*' && this.peekNext() === '/') {
521
+ let depth = 1;
522
+ while (!this.isAtEnd() && depth > 0) {
523
+ if (this.peek() === '/' && this.peekNext() === '*') {
524
+ // Nested block comment start
332
525
  this.advance();
333
526
  this.advance();
334
- break;
527
+ depth++;
335
528
  }
336
- if (this.peek() === '\n') {
337
- this.line++;
338
- this.column = 1;
529
+ else if (this.peek() === '*' && this.peekNext() === '/') {
530
+ // Block comment end
531
+ this.advance();
532
+ this.advance();
533
+ depth--;
534
+ }
535
+ else {
536
+ if (this.peek() === '\n') {
537
+ this.line++;
538
+ this.column = 1;
539
+ }
540
+ this.advance();
339
541
  }
340
- this.advance();
341
542
  }
342
543
  }
343
544
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,20 @@
1
1
  import { Token } from '../types/token.js';
2
2
  import { Program } from '../types/ast.js';
3
+ import { MFError } from '../errors.js';
3
4
  export declare class Parser {
4
5
  private tokens;
5
6
  private current;
6
7
  private filePath?;
8
+ private errors;
9
+ private panicMode;
7
10
  constructor(tokens: Token[], filePath?: string);
8
11
  parse(): Program;
12
+ parseWithErrors(): {
13
+ program: Program;
14
+ errors: MFError[];
15
+ };
16
+ private synchronize;
17
+ getErrors(): MFError[];
9
18
  private parseStatement;
10
19
  private parseImport;
11
20
  private parseExport;
@@ -15,6 +24,7 @@ export declare class Parser {
15
24
  private parseIf;
16
25
  private parseFor;
17
26
  private parseWhile;
27
+ private parseMatch;
18
28
  private parseReturn;
19
29
  private parseBreak;
20
30
  private parseContinue;
@@ -22,11 +32,18 @@ export declare class Parser {
22
32
  private parseBlock;
23
33
  private parseAssignmentOrExpression;
24
34
  private checkCompoundAssign;
35
+ private getCompoundAssignOp;
25
36
  private parseExpression;
37
+ private parseConditional;
26
38
  private parseOr;
39
+ private parseNullish;
27
40
  private parseAnd;
41
+ private parseBitOr;
42
+ private parseBitXor;
43
+ private parseBitAnd;
28
44
  private parseEquality;
29
45
  private parseComparison;
46
+ private parseShift;
30
47
  private parseAdditive;
31
48
  private parseMultiplicative;
32
49
  private parseUnary;
@@ -41,9 +58,11 @@ export declare class Parser {
41
58
  private parseTimeLiteral;
42
59
  private parseArrayLiteral;
43
60
  private parseObjectLiteral;
61
+ private parseTemplateLiteral;
44
62
  private peek;
45
63
  private peekAhead;
46
64
  private advance;
65
+ private previous;
47
66
  private check;
48
67
  private checkAhead;
49
68
  private checkIdent;
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,OAAO,EAwCR,MAAM,iBAAiB,CAAC;AAGzB,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK9C,KAAK,IAAI,OAAO;IAchB,OAAO,CAAC,cAAc;IAsDtB,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,SAAS;IAoCjB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,OAAO;IAwBf,OAAO,CAAC,QAAQ;IAyDhB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,2BAA2B;IAsGnC,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,SAAS;IAoCjB,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,YAAY;IAmGpB,OAAO,CAAC,iBAAiB;IA4DzB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,KAAK;CAId"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,OAAO,EA2CR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK9C,KAAK,IAAI,OAAO;IAehB,eAAe,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,CAAA;KAAE;IA2B1D,OAAO,CAAC,WAAW;IAkCnB,SAAS,IAAI,OAAO,EAAE;IAItB,OAAO,CAAC,cAAc;IA0DtB,OAAO,CAAC,WAAW;IA6CnB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,SAAS;IA+CjB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,OAAO;IA6Bf,OAAO,CAAC,QAAQ;IAyDhB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,UAAU;IAyClB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,2BAA2B;IAsGnC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,SAAS;IAyEjB,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,YAAY;IAiHpB,OAAO,CAAC,iBAAiB;IA4DzB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IA4CzB,OAAO,CAAC,UAAU;IA8ClB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,oBAAoB;IAsD5B,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,KAAK;CAId"}