notations 0.0.48 → 0.0.51

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 (113) hide show
  1. package/lib/cjs/beats.d.ts +36 -71
  2. package/lib/cjs/beats.js +225 -432
  3. package/lib/cjs/beats.js.map +1 -1
  4. package/lib/cjs/beatutils.d.ts +3 -0
  5. package/lib/cjs/beatutils.js +64 -0
  6. package/lib/cjs/beatutils.js.map +1 -0
  7. package/lib/cjs/beatview.d.ts +18 -0
  8. package/lib/cjs/beatview.js +62 -0
  9. package/lib/cjs/beatview.js.map +1 -0
  10. package/lib/cjs/carnatic/LineView.d.ts +2 -7
  11. package/lib/cjs/carnatic/LineView.js +13 -31
  12. package/lib/cjs/carnatic/LineView.js.map +1 -1
  13. package/lib/cjs/carnatic/NotationView.d.ts +9 -7
  14. package/lib/cjs/carnatic/NotationView.js +90 -153
  15. package/lib/cjs/carnatic/NotationView.js.map +1 -1
  16. package/lib/cjs/carnatic/atomviews.js +149 -287
  17. package/lib/cjs/carnatic/atomviews.js.map +1 -1
  18. package/lib/cjs/carnatic/beatviews.d.ts +18 -10
  19. package/lib/cjs/carnatic/beatviews.js +59 -91
  20. package/lib/cjs/carnatic/beatviews.js.map +1 -1
  21. package/lib/cjs/carnatic/embelishments.d.ts +1 -1
  22. package/lib/cjs/carnatic/embelishments.js +189 -283
  23. package/lib/cjs/carnatic/embelishments.js.map +1 -1
  24. package/lib/cjs/carnatic/gamakas.js +15 -47
  25. package/lib/cjs/carnatic/gamakas.js.map +1 -1
  26. package/lib/cjs/commands.js +111 -271
  27. package/lib/cjs/commands.js.map +1 -1
  28. package/lib/cjs/core.d.ts +6 -1
  29. package/lib/cjs/core.js +288 -493
  30. package/lib/cjs/core.js.map +1 -1
  31. package/lib/cjs/cycle.js +175 -367
  32. package/lib/cjs/cycle.js.map +1 -1
  33. package/lib/cjs/entity.js +48 -102
  34. package/lib/cjs/entity.js.map +1 -1
  35. package/lib/cjs/grids.d.ts +124 -1
  36. package/lib/cjs/grids.js +546 -6
  37. package/lib/cjs/grids.js.map +1 -1
  38. package/lib/cjs/iterators.js +96 -234
  39. package/lib/cjs/iterators.js.map +1 -1
  40. package/lib/cjs/layouts.d.ts +1 -1
  41. package/lib/cjs/layouts.js +62 -98
  42. package/lib/cjs/layouts.js.map +1 -1
  43. package/lib/cjs/loader.d.ts +2 -2
  44. package/lib/cjs/loader.js +23 -123
  45. package/lib/cjs/loader.js.map +1 -1
  46. package/lib/cjs/notation.d.ts +0 -3
  47. package/lib/cjs/notation.js +139 -241
  48. package/lib/cjs/notation.js.map +1 -1
  49. package/lib/cjs/parser.d.ts +2 -0
  50. package/lib/cjs/parser.js +222 -219
  51. package/lib/cjs/parser.js.map +1 -1
  52. package/lib/cjs/shapes.js +149 -283
  53. package/lib/cjs/shapes.js.map +1 -1
  54. package/lib/cjs/utils.d.ts +8 -0
  55. package/lib/cjs/utils.js +60 -55
  56. package/lib/cjs/utils.js.map +1 -1
  57. package/lib/esm/beats.d.ts +36 -71
  58. package/lib/esm/beats.js +218 -430
  59. package/lib/esm/beats.js.map +1 -1
  60. package/lib/esm/beatutils.d.ts +3 -0
  61. package/lib/esm/beatutils.js +37 -0
  62. package/lib/esm/beatutils.js.map +1 -0
  63. package/lib/esm/beatview.d.ts +18 -0
  64. package/lib/esm/beatview.js +35 -0
  65. package/lib/esm/beatview.js.map +1 -0
  66. package/lib/esm/carnatic/LineView.d.ts +2 -7
  67. package/lib/esm/carnatic/LineView.js +12 -31
  68. package/lib/esm/carnatic/LineView.js.map +1 -1
  69. package/lib/esm/carnatic/NotationView.d.ts +9 -7
  70. package/lib/esm/carnatic/NotationView.js +88 -152
  71. package/lib/esm/carnatic/NotationView.js.map +1 -1
  72. package/lib/esm/carnatic/atomviews.js +144 -284
  73. package/lib/esm/carnatic/atomviews.js.map +1 -1
  74. package/lib/esm/carnatic/beatviews.d.ts +18 -10
  75. package/lib/esm/carnatic/beatviews.js +53 -87
  76. package/lib/esm/carnatic/beatviews.js.map +1 -1
  77. package/lib/esm/carnatic/embelishments.d.ts +1 -1
  78. package/lib/esm/carnatic/embelishments.js +187 -296
  79. package/lib/esm/carnatic/embelishments.js.map +1 -1
  80. package/lib/esm/carnatic/gamakas.js +14 -48
  81. package/lib/esm/carnatic/gamakas.js.map +1 -1
  82. package/lib/esm/commands.js +100 -271
  83. package/lib/esm/commands.js.map +1 -1
  84. package/lib/esm/core.d.ts +6 -1
  85. package/lib/esm/core.js +286 -502
  86. package/lib/esm/core.js.map +1 -1
  87. package/lib/esm/cycle.js +172 -367
  88. package/lib/esm/cycle.js.map +1 -1
  89. package/lib/esm/entity.js +48 -104
  90. package/lib/esm/entity.js.map +1 -1
  91. package/lib/esm/grids.d.ts +124 -1
  92. package/lib/esm/grids.js +515 -5
  93. package/lib/esm/grids.js.map +1 -1
  94. package/lib/esm/iterators.js +93 -235
  95. package/lib/esm/iterators.js.map +1 -1
  96. package/lib/esm/layouts.d.ts +1 -1
  97. package/lib/esm/layouts.js +60 -97
  98. package/lib/esm/layouts.js.map +1 -1
  99. package/lib/esm/loader.d.ts +2 -2
  100. package/lib/esm/loader.js +20 -120
  101. package/lib/esm/loader.js.map +1 -1
  102. package/lib/esm/notation.d.ts +0 -3
  103. package/lib/esm/notation.js +135 -242
  104. package/lib/esm/notation.js.map +1 -1
  105. package/lib/esm/parser.d.ts +2 -0
  106. package/lib/esm/parser.js +216 -214
  107. package/lib/esm/parser.js.map +1 -1
  108. package/lib/esm/shapes.js +148 -288
  109. package/lib/esm/shapes.js.map +1 -1
  110. package/lib/esm/utils.d.ts +8 -0
  111. package/lib/esm/utils.js +55 -51
  112. package/lib/esm/utils.js.map +1 -1
  113. package/package.json +2 -1
package/lib/cjs/parser.js CHANGED
@@ -1,8 +1,4 @@
1
1
  "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
3
  if (k2 === undefined) k2 = k;
8
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -26,95 +22,172 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
22
  __setModuleDefault(result, mod);
27
23
  return result;
28
24
  };
29
- var __read = (this && this.__read) || function (o, n) {
30
- var m = typeof Symbol === "function" && o[Symbol.iterator];
31
- if (!m) return o;
32
- var i = m.call(o), r, ar = [], e;
33
- try {
34
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
35
- }
36
- catch (error) { e = { error: error }; }
37
- finally {
38
- try {
39
- if (r && !r.done && (m = i["return"])) m.call(i);
40
- }
41
- finally { if (e) throw e.error; }
42
- }
43
- return ar;
44
- };
45
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
46
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
47
- if (ar || !(i in from)) {
48
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
49
- ar[i] = from[i];
50
- }
51
- }
52
- return to.concat(ar || Array.prototype.slice.call(from));
53
- };
54
25
  Object.defineProperty(exports, "__esModule", { value: true });
55
26
  exports.Parser = void 0;
56
- var TSU = __importStar(require("@panyam/tsutils"));
57
- var G = __importStar(require("galore"));
58
- var TLEX = __importStar(require("tlex"));
59
- var core_1 = require("./core");
60
- var commands_1 = require("./commands");
61
- var carnatic = __importStar(require("./carnatic"));
62
- var ONE = TSU.Num.Fraction.ONE;
63
- var TWO = ONE.timesNum(2);
64
- var _a = __read(G.newParser(String.raw(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n %define IdentChar /[^%!@&^|[]={}()+-,;~: \t\f\r\n\v\\.]/\n\n %token BSLASH \"\\\"\n %token OPEN_SQ \"[\"\n %token CLOSE_SQ \"]\"\n %token EQUALS \"=\"\n %token OPEN_PAREN \"(\"\n %token CLOSE_PAREN \")\"\n %token OPEN_BRACE \"{\"\n %token CLOSE_BRACE \"}\"\n %token SLASH \"/\"\n %token STAR \"*\"\n %token CARET \"^\"\n // %skip \"-\"\n %token COMMA \",\"\n %token SEMI_COLON \";\"\n %token COLON \":\"\n\n %token SINGLE_LINE_RAW_STRING />(.*)$/m { toSingleLineRawString }\n %token MULTI_LINE_RAW_STRING /r(#{0,})\"/ { toMultiLineRawString }\n\n %token EMBELISHMENT /~[^s]*/ { toEmbelishment }\n %token NUMBER /-?d+/ { toNumber }\n %token BOOLEAN /true|false/ { toBoolean }\n %token POST_MARKER /<<\"(([^\"\\\n]|\\.|\\\n)*)\"/ { toMarker }\n %token POST_MARKER /<<'(([^'\\\n]|\\.|\\\n)*)'/ { toMarker }\n %token PRE_MARKER /\"(([^\"\\\n]|\\.|\\\n)*)\">>/ { toMarker }\n %token PRE_MARKER /'(([^'\\\n]|\\.|\\\n)*)'>>/ { toMarker }\n %token STRING /\"([^\"\\\n]|\\.|\\\n)*\"/ { toString }\n %token STRING /'([^'\\\n]|\\.|\\\n)*'/ { toString }\n %token DOTS_IDENT /(.+)({IdentChar}+)/ { toOctavedNote }\n %token IDENT_DOTS /({IdentChar}+)(.+)/ { toOctavedNote }\n %token IDENT_COLON /{IdentChar}+:/ { toRoleSelector }\n %token IDENT /{IdentChar}+/\n %token BSLASH_IDENT /\\{IDENT}/ { toCommandName }\n %token BSLASH_NUMBER /\\{NUMBER}/\n %token HYPHEN /-/\n %skip /[ \t\n\f\r]+/\n %skip_flex \"//.*$\"\n %skip //*.*?*//\n\n Elements -> Elements Command Atoms { appendCommand } \n | Elements RoleSelector Atoms { appendRoleSelector } \n | Elements Embedding Atoms { insertEmbedding }\n | Atoms { appendAtoms }\n ;\n\n Embedding -> SINGLE_LINE_RAW_STRING | MULTI_LINE_RAW_STRING ;\n\n Command -> BSLASH_IDENT CommandParams ? { newCommand } ;\n CommandParams -> OPEN_PAREN ParamList ? CLOSE_PAREN { $2 } ;\n\n ParamList -> ParamList COMMA Param { concatParamList } ;\n ParamList -> Param { newParamList };\n Param -> ParamValue { newParam } ;\n Param -> ParamKey EQUALS ParamValue { newParam } ;\n ParamKey -> IDENT ;\n ParamValue -> ( STRING | Fraction | NUMBER | BOOLEAN ) ;\n\n RoleSelector -> IDENT_COLON ;\n\n Atoms -> Atoms Atom { concatAtoms } ;\n Atoms -> { newArray } ;\n\n Atom -> Leaf ;\n Atom -> Duration Leaf { applyDuration } ;\n Leaf -> Space | Lit | Group | Rest | Marker ;\n Rest -> HYPHEN { newRest };\n Marker -> PRE_MARKER\n | POST_MARKER\n ;\n\n Space -> COMMA { newSpace } \n | SEMI_COLON { newDoubleSpace } \n | UNDER_SCORE { newSilentSpace } \n ;\n\n /* - An alternative representation to support both pre and post embelishment operators. */\n Lit -> Lit POST_EMB { litWithPostEmb }\n | PreEmbLit\n ;\n\n PreEmbLit -> LitToken \n | LitToken CARET NUMBER { litWithCaret }\n | LitToken CARET STAR { litWithCaret }\n | PRE_EMB PreEmbLit { litWithPreEmb }\n ;\n \n LitToken -> DOTS_IDENT { litToAtom }\n | IDENT { litToAtom }\n | IDENT_DOTS { litToAtom }\n | STRING { litToAtom }\n ;\n\n Group -> OPEN_SQ Atoms CLOSE_SQ { newGroup };\n\n Duration -> Fraction | NUMBER;\n Fraction -> NUMBER SLASH NUMBER { newFraction } ;\n "], ["\n %define IdentChar /[^%!@&\\^|\\[\\]={}()+\\-,;~: \\t\\f\\r\\n\\v\\\\\\.]/\n\n %token BSLASH \"\\\\\"\n %token OPEN_SQ \"[\"\n %token CLOSE_SQ \"]\"\n %token EQUALS \"=\"\n %token OPEN_PAREN \"(\"\n %token CLOSE_PAREN \")\"\n %token OPEN_BRACE \"{\"\n %token CLOSE_BRACE \"}\"\n %token SLASH \"/\"\n %token STAR \"*\"\n %token CARET \"^\"\n // %skip \"-\"\n %token COMMA \",\"\n %token SEMI_COLON \";\"\n %token COLON \":\"\n\n %token SINGLE_LINE_RAW_STRING />(.*)$/m { toSingleLineRawString }\n %token MULTI_LINE_RAW_STRING /r(#{0,})\"/ { toMultiLineRawString }\n\n %token EMBELISHMENT /~[^\\s]*/ { toEmbelishment }\n %token NUMBER /-?\\d+/ { toNumber }\n %token BOOLEAN /true|false/ { toBoolean }\n %token POST_MARKER /<<\"(([^\"\\\\\\n]|\\\\.|\\\\\\n)*)\"/ { toMarker }\n %token POST_MARKER /<<'(([^'\\\\\\n]|\\\\.|\\\\\\n)*)'/ { toMarker }\n %token PRE_MARKER /\"(([^\"\\\\\\n]|\\\\.|\\\\\\n)*)\">>/ { toMarker }\n %token PRE_MARKER /'(([^'\\\\\\n]|\\\\.|\\\\\\n)*)'>>/ { toMarker }\n %token STRING /\"([^\"\\\\\\n]|\\\\.|\\\\\\n)*\"/ { toString }\n %token STRING /'([^'\\\\\\n]|\\\\.|\\\\\\n)*'/ { toString }\n %token DOTS_IDENT /(\\.+)({IdentChar}+)/ { toOctavedNote }\n %token IDENT_DOTS /({IdentChar}+)(\\.+)/ { toOctavedNote }\n %token IDENT_COLON /{IdentChar}+:/ { toRoleSelector }\n %token IDENT /{IdentChar}+/\n %token BSLASH_IDENT /\\\\{IDENT}/ { toCommandName }\n %token BSLASH_NUMBER /\\\\{NUMBER}/\n %token HYPHEN /-/\n %skip /[ \\t\\n\\f\\r]+/\n %skip_flex \"//.*$\"\n %skip /\\/\\*.*?\\*\\//\n\n Elements -> Elements Command Atoms { appendCommand } \n | Elements RoleSelector Atoms { appendRoleSelector } \n | Elements Embedding Atoms { insertEmbedding }\n | Atoms { appendAtoms }\n ;\n\n Embedding -> SINGLE_LINE_RAW_STRING | MULTI_LINE_RAW_STRING ;\n\n Command -> BSLASH_IDENT CommandParams ? { newCommand } ;\n CommandParams -> OPEN_PAREN ParamList ? CLOSE_PAREN { $2 } ;\n\n ParamList -> ParamList COMMA Param { concatParamList } ;\n ParamList -> Param { newParamList };\n Param -> ParamValue { newParam } ;\n Param -> ParamKey EQUALS ParamValue { newParam } ;\n ParamKey -> IDENT ;\n ParamValue -> ( STRING | Fraction | NUMBER | BOOLEAN ) ;\n\n RoleSelector -> IDENT_COLON ;\n\n Atoms -> Atoms Atom { concatAtoms } ;\n Atoms -> { newArray } ;\n\n Atom -> Leaf ;\n Atom -> Duration Leaf { applyDuration } ;\n Leaf -> Space | Lit | Group | Rest | Marker ;\n Rest -> HYPHEN { newRest };\n Marker -> PRE_MARKER\n | POST_MARKER\n ;\n\n Space -> COMMA { newSpace } \n | SEMI_COLON { newDoubleSpace } \n | UNDER_SCORE { newSilentSpace } \n ;\n\n /* - An alternative representation to support both pre and post embelishment operators. */\n Lit -> Lit POST_EMB { litWithPostEmb }\n | PreEmbLit\n ;\n\n PreEmbLit -> LitToken \n | LitToken CARET NUMBER { litWithCaret }\n | LitToken CARET STAR { litWithCaret }\n | PRE_EMB PreEmbLit { litWithPreEmb }\n ;\n \n LitToken -> DOTS_IDENT { litToAtom }\n | IDENT { litToAtom }\n | IDENT_DOTS { litToAtom }\n | STRING { litToAtom }\n ;\n\n Group -> OPEN_SQ Atoms CLOSE_SQ { newGroup };\n\n Duration -> Fraction | NUMBER;\n Fraction -> NUMBER SLASH NUMBER { newFraction } ;\n "]))), {
27
+ const TSU = __importStar(require("@panyam/tsutils"));
28
+ const G = __importStar(require("galore"));
29
+ const TLEX = __importStar(require("tlex"));
30
+ const core_1 = require("./core");
31
+ const commands_1 = require("./commands");
32
+ const carnatic = __importStar(require("./carnatic"));
33
+ const ONE = TSU.Num.Fraction.ONE;
34
+ const TWO = ONE.timesNum(2);
35
+ const [parser, itemGraph] = G.newParser(String.raw `
36
+ %define IdentChar /[^%!@&\^|\[\]={}()+\-,;~: \t\f\r\n\v\\\.]/
37
+
38
+ %token BSLASH "\\"
39
+ %token OPEN_SQ "["
40
+ %token CLOSE_SQ "]"
41
+ %token EQUALS "="
42
+ %token OPEN_PAREN "("
43
+ %token CLOSE_PAREN ")"
44
+ %token OPEN_BRACE "{"
45
+ %token CLOSE_BRACE "}"
46
+ %token SLASH "/"
47
+ %token STAR "*"
48
+ %token CARET "^"
49
+ // %skip "-"
50
+ %token COMMA ","
51
+ %token SEMI_COLON ";"
52
+ %token COLON ":"
53
+
54
+ %token SINGLE_LINE_RAW_STRING />(.*)$/m { toSingleLineRawString }
55
+ %token MULTI_LINE_RAW_STRING /r(#{0,})"/ { toMultiLineRawString }
56
+
57
+ %token EMBELISHMENT /~[^\s]*/ { toEmbelishment }
58
+ %token NUMBER /-?\d+/ { toNumber }
59
+ %token BOOLEAN /true|false/ { toBoolean }
60
+ %token POST_MARKER /<<"(([^"\\\n]|\\.|\\\n)*)"/ { toMarker }
61
+ %token POST_MARKER /<<'(([^'\\\n]|\\.|\\\n)*)'/ { toMarker }
62
+ %token PRE_MARKER /"(([^"\\\n]|\\.|\\\n)*)">>/ { toMarker }
63
+ %token PRE_MARKER /'(([^'\\\n]|\\.|\\\n)*)'>>/ { toMarker }
64
+ %token STRING /"([^"\\\n]|\\.|\\\n)*"/ { toString }
65
+ %token STRING /'([^'\\\n]|\\.|\\\n)*'/ { toString }
66
+ %token DOTS_IDENT /(\.+)({IdentChar}+)/ { toOctavedNote }
67
+ %token IDENT_DOTS /({IdentChar}+)(\.+)/ { toOctavedNote }
68
+ %token IDENT_COLON /{IdentChar}+:/ { toRoleSelector }
69
+ %token IDENT /{IdentChar}+/
70
+ %token BSLASH_IDENT /\\{IDENT}/ { toCommandName }
71
+ %token BSLASH_NUMBER /\\{NUMBER}/
72
+ %token HYPHEN /-/
73
+ %skip /[ \t\n\f\r]+/
74
+ %skip_flex "//.*$"
75
+ %skip /\/\*.*?\*\//
76
+
77
+ Elements -> Elements Command Atoms { appendCommand }
78
+ | Elements RoleSelector Atoms { appendRoleSelector }
79
+ | Elements Embedding Atoms { insertEmbedding }
80
+ | Atoms { appendAtoms }
81
+ ;
82
+
83
+ Embedding -> SINGLE_LINE_RAW_STRING | MULTI_LINE_RAW_STRING ;
84
+
85
+ Command -> BSLASH_IDENT CommandParams ? { newCommand } ;
86
+ CommandParams -> OPEN_PAREN ParamList ? CLOSE_PAREN { $2 } ;
87
+
88
+ ParamList -> ParamList COMMA Param { concatParamList } ;
89
+ ParamList -> Param { newParamList };
90
+ Param -> ParamValue { newParam } ;
91
+ Param -> ParamKey EQUALS ParamValue { newParam } ;
92
+ ParamKey -> IDENT ;
93
+ ParamValue -> ( STRING | Fraction | NUMBER | BOOLEAN ) ;
94
+
95
+ RoleSelector -> IDENT_COLON ;
96
+
97
+ Atoms -> Atoms Atom { concatAtoms } ;
98
+ Atoms -> { newArray } ;
99
+
100
+ Atom -> Atom POST_MARKER { applyPostMarker }
101
+ | PreMarkedAtom
102
+ ;
103
+ PreMarkedAtom -> Leaf
104
+ | PRE_MARKER PreMarkedAtom { applyPreMarker }
105
+ ;
106
+
107
+ Leaf -> Space | Lit | Group | Rest ;
108
+ Leaf -> Duration Leaf { applyDuration } ;
109
+ Rest -> HYPHEN { newRest };
110
+ Space -> COMMA { newSpace }
111
+ | SEMI_COLON { newDoubleSpace }
112
+ | UNDER_SCORE { newSilentSpace }
113
+ ;
114
+
115
+ /* - An alternative representation to support both pre and
116
+ * post embelishment operators. Here PRE_EMBs have a higher
117
+ * associativity over POST_EMBs
118
+ */
119
+ Lit -> Lit POST_EMB { litWithPostEmb }
120
+ | PreEmbLit
121
+ ;
122
+
123
+ PreEmbLit -> LitToken
124
+ | LitToken CARET NUMBER { litWithCaret }
125
+ | LitToken CARET STAR { litWithCaret }
126
+ | PRE_EMB PreEmbLit { litWithPreEmb }
127
+ ;
128
+
129
+ LitToken -> DOTS_IDENT { litToAtom }
130
+ | IDENT { litToAtom }
131
+ | IDENT_DOTS { litToAtom }
132
+ | STRING { litToAtom }
133
+ ;
134
+
135
+ Group -> OPEN_SQ Atoms CLOSE_SQ { newGroup };
136
+
137
+ Duration -> Fraction | NUMBER;
138
+ Fraction -> NUMBER SLASH NUMBER { newFraction } ;
139
+ `, {
65
140
  allowLeftRecursion: true,
66
141
  debug: "",
67
142
  type: "lalr",
68
143
  tokenHandlers: {
69
- toEmbelishment: function (token, tape, owner) {
70
- var _a = __read(owner.parseEmbelishment(token.value), 2), emb = _a[0], pre = _a[1];
144
+ toEmbelishment: (token, tape, owner) => {
145
+ const [emb, pre] = owner.parseEmbelishment(token.value);
71
146
  if (emb == null) {
72
147
  console.log("Skipping Embelishment: ", token.value);
73
- owner.errors.push(new TLEX.TokenizerError("Invalid embelishment: ".concat(token.value), token.start, 1 + token.end - token.start, "InvalidEmbelishment", token.value));
148
+ owner.errors.push(new TLEX.TokenizerError(`Invalid embelishment: ${token.value}`, token.start, 1 + token.end - token.start, "InvalidEmbelishment", token.value));
74
149
  return null;
75
150
  }
76
151
  token.value = emb;
77
152
  token.tag = pre ? "PRE_EMB" : "POST_EMB";
78
153
  return token;
79
154
  },
80
- toCommandName: function (token, tape, owner) {
155
+ toCommandName: (token, tape, owner) => {
81
156
  token.value = token.value.substring(1);
82
157
  return token;
83
158
  },
84
- toBoolean: function (token, tape, owner) {
159
+ toBoolean: (token, tape, owner) => {
85
160
  token.value = token.value == "true";
86
161
  return token;
87
162
  },
88
- toNumber: function (token, tape, owner) {
163
+ toNumber: (token, tape, owner) => {
89
164
  token.value = parseInt(token.value);
90
165
  return token;
91
166
  },
92
- toString: function (token, tape, owner) {
167
+ toString: (token, tape, owner) => {
93
168
  token.value = token.value.substring(1, token.value.length - 1);
94
169
  return token;
95
170
  },
96
- toMarker: function (token, tape, owner) {
171
+ toMarker: (token, tape, owner) => {
97
172
  if (token.tag != "PRE_MARKER" && token.tag != "POST_MARKER") {
98
173
  throw new Error("Invalid token for converting to note: " + token.tag);
99
174
  }
100
- var isBefore = token.tag == "PRE_MARKER";
101
- var markerText = isBefore
175
+ const isBefore = token.tag == "PRE_MARKER";
176
+ const markerText = isBefore
102
177
  ? token.value.substring(1, token.value.length - 3)
103
178
  : token.value.substring(3, token.value.length - 1);
104
- console.log("TokVal: ", token.value, token.positions);
105
- console.log("Marker Text: ", markerText, isBefore);
106
179
  token.value = new core_1.Marker(markerText, isBefore);
107
180
  return token;
108
181
  },
109
- toOctavedNote: function (token, tape, owner) {
182
+ toOctavedNote: (token, tape, owner) => {
110
183
  if (token.tag == "DOTS_IDENT") {
111
- var octave = token.positions[1][1] - token.positions[1][0];
112
- var note = token.value.substring(octave);
184
+ const octave = token.positions[1][1] - token.positions[1][0];
185
+ const note = token.value.substring(octave);
113
186
  token.value = new core_1.Note(note, ONE, -octave);
114
187
  }
115
188
  else if (token.tag == "IDENT_DOTS") {
116
- var octave = token.positions[2][1] - token.positions[2][0];
117
- var note = token.value.substring(0, token.value.length - octave);
189
+ const octave = token.positions[2][1] - token.positions[2][0];
190
+ const note = token.value.substring(0, token.value.length - octave);
118
191
  token.value = new core_1.Note(note, ONE, octave);
119
192
  }
120
193
  else {
@@ -122,23 +195,23 @@ var _a = __read(G.newParser(String.raw(templateObject_1 || (templateObject_1 = _
122
195
  }
123
196
  return token;
124
197
  },
125
- toRoleSelector: function (token, tape, owner) {
198
+ toRoleSelector: (token, tape, owner) => {
126
199
  token.value = token.value.substring(0, token.value.length - 1);
127
200
  return token;
128
201
  },
129
- toLineAnnotation: function (token, tape, owner) {
202
+ toLineAnnotation: (token, tape, owner) => {
130
203
  token.value = token.value.substring(1);
131
204
  return token;
132
205
  },
133
- toSingleLineRawString: function (token, tape, owner) {
206
+ toSingleLineRawString: (token, tape, owner) => {
134
207
  token.value = token.value.substring(1);
135
208
  return token;
136
209
  },
137
- toMultiLineRawString: function (token, tape, owner) {
138
- var hashes = tape.substring(token.positions[1][0], token.positions[1][1]);
139
- var endPat = '"' + hashes;
140
- var startPos = tape.index;
141
- var endPos = TLEX.TapeHelper.advanceAfter(tape, endPat) - endPat.length;
210
+ toMultiLineRawString: (token, tape, owner) => {
211
+ const hashes = tape.substring(token.positions[1][0], token.positions[1][1]);
212
+ const endPat = '"' + hashes;
213
+ const startPos = tape.index;
214
+ const endPos = TLEX.TapeHelper.advanceAfter(tape, endPat) - endPat.length;
142
215
  if (endPos < 0) {
143
216
  throw new Error("EOF expected while finding end of Raw String Literal: '" + endPat + "'");
144
217
  }
@@ -146,19 +219,14 @@ var _a = __read(G.newParser(String.raw(templateObject_1 || (templateObject_1 = _
146
219
  return token;
147
220
  },
148
221
  },
149
- }), 2), parser = _a[0], itemGraph = _a[1];
150
- var Parser = (function () {
151
- function Parser(config) {
152
- var _this = this;
222
+ });
223
+ class Parser {
224
+ constructor(config) {
153
225
  this.errors = [];
154
226
  this.commands = [];
155
227
  this.runCommandFound = false;
156
228
  this.ruleHandlers = {
157
- newFraction: function (rule, parent) {
158
- var children = [];
159
- for (var _i = 2; _i < arguments.length; _i++) {
160
- children[_i - 2] = arguments[_i];
161
- }
229
+ newFraction: (rule, parent, ...children) => {
162
230
  if (children.length == 1) {
163
231
  return new TSU.Num.Fraction(children[0].value);
164
232
  }
@@ -166,51 +234,31 @@ var Parser = (function () {
166
234
  return new TSU.Num.Fraction(children[0].value, children[2].value);
167
235
  }
168
236
  },
169
- newGroup: function (rule, parent) {
170
- var children = [];
171
- for (var _i = 2; _i < arguments.length; _i++) {
172
- children[_i - 2] = arguments[_i];
173
- }
174
- var out = new (core_1.Group.bind.apply(core_1.Group, __spreadArray([void 0], __read(children[1].value), false)))().setDuration(TWO, true);
237
+ newGroup: (rule, parent, ...children) => {
238
+ const out = new core_1.Group(...children[1].value).setDuration(TWO, true);
175
239
  return out;
176
240
  },
177
- litWithCaret: function (rule, parent) {
178
- var children = [];
179
- for (var _i = 2; _i < arguments.length; _i++) {
180
- children[_i - 2] = arguments[_i];
181
- }
182
- var lit = core_1.Note.fromLit(children[0].value);
183
- var opnode = children[2];
184
- var shiftValue = opnode.sym.label == "STAR" ? true : opnode.value;
241
+ litWithCaret: (rule, parent, ...children) => {
242
+ const lit = core_1.Note.fromLit(children[0].value);
243
+ const opnode = children[2];
244
+ const shiftValue = opnode.sym.label == "STAR" ? true : opnode.value;
185
245
  lit.shift = shiftValue;
186
246
  return lit;
187
247
  },
188
- litWithPreEmb: function (rule, parent) {
189
- var children = [];
190
- for (var _i = 2; _i < arguments.length; _i++) {
191
- children[_i - 2] = arguments[_i];
192
- }
193
- var emb = children[0];
194
- var lit = children[1].value;
248
+ litWithPreEmb: (rule, parent, ...children) => {
249
+ const emb = children[0];
250
+ const lit = children[1].value;
195
251
  lit.embelishments.splice(0, 0, emb.value);
196
252
  return lit;
197
253
  },
198
- litWithPostEmb: function (rule, parent) {
199
- var children = [];
200
- for (var _i = 2; _i < arguments.length; _i++) {
201
- children[_i - 2] = arguments[_i];
202
- }
203
- var lit = children[0].value;
204
- var emb = children[1];
254
+ litWithPostEmb: (rule, parent, ...children) => {
255
+ const lit = children[0].value;
256
+ const emb = children[1];
205
257
  lit.embelishments.push(emb);
206
258
  return lit;
207
259
  },
208
- litToAtom: function (rule, parent) {
209
- var children = [];
210
- for (var _i = 2; _i < arguments.length; _i++) {
211
- children[_i - 2] = arguments[_i];
212
- }
213
- var lit = children[0];
260
+ litToAtom: (rule, parent, ...children) => {
261
+ const lit = children[0];
214
262
  if (lit.sym.label == "DOTS_IDENT" || lit.sym.label == "IDENT_DOTS") {
215
263
  return lit.value;
216
264
  }
@@ -224,41 +272,39 @@ var Parser = (function () {
224
272
  throw new Error("Invalid lit: " + lit);
225
273
  }
226
274
  },
227
- newSpace: function (rule, parent) {
228
- var children = [];
229
- for (var _i = 2; _i < arguments.length; _i++) {
230
- children[_i - 2] = arguments[_i];
231
- }
275
+ newSpace: (rule, parent, ...children) => {
232
276
  return new core_1.Space();
233
277
  },
234
- newRest: function (rule, parent) {
235
- var children = [];
236
- for (var _i = 2; _i < arguments.length; _i++) {
237
- children[_i - 2] = arguments[_i];
238
- }
278
+ newRest: (rule, parent, ...children) => {
239
279
  return new core_1.Rest();
240
280
  },
241
- newDoubleSpace: function (rule, parent) {
242
- var children = [];
243
- for (var _i = 2; _i < arguments.length; _i++) {
244
- children[_i - 2] = arguments[_i];
245
- }
281
+ newDoubleSpace: (rule, parent, ...children) => {
246
282
  return new core_1.Space(ONE.timesNum(2));
247
283
  },
248
- newSilentSpace: function (rule, parent) {
249
- var children = [];
250
- for (var _i = 2; _i < arguments.length; _i++) {
251
- children[_i - 2] = arguments[_i];
252
- }
284
+ newSilentSpace: (rule, parent, ...children) => {
253
285
  return new core_1.Space(ONE, true);
254
286
  },
255
- applyDuration: function (rule, parent) {
256
- var children = [];
257
- for (var _i = 2; _i < arguments.length; _i++) {
258
- children[_i - 2] = arguments[_i];
287
+ applyPreMarker: (rule, parent, ...children) => {
288
+ const marker = children[0].value;
289
+ const leaf = children[1].value;
290
+ if (!leaf.markersBefore) {
291
+ leaf.markersBefore = [];
259
292
  }
260
- var dur = children[0].value;
261
- var leaf = children[1].value;
293
+ leaf.markersBefore.splice(0, 0, marker);
294
+ return leaf;
295
+ },
296
+ applyPostMarker: (rule, parent, ...children) => {
297
+ const leaf = children[0].value;
298
+ const marker = children[1].value;
299
+ if (!leaf.markersAfter) {
300
+ leaf.markersAfter = [];
301
+ }
302
+ leaf.markersAfter.push(marker);
303
+ return leaf;
304
+ },
305
+ applyDuration: (rule, parent, ...children) => {
306
+ let dur = children[0].value;
307
+ const leaf = children[1].value;
262
308
  if (typeof dur === "number") {
263
309
  dur = ONE.timesNum(dur);
264
310
  }
@@ -270,28 +316,16 @@ var Parser = (function () {
270
316
  }
271
317
  return leaf;
272
318
  },
273
- newArray: function (rule, parent) {
274
- var children = [];
275
- for (var _i = 2; _i < arguments.length; _i++) {
276
- children[_i - 2] = arguments[_i];
277
- }
278
- return children.map(function (c) { return c.value; });
319
+ newArray: (rule, parent, ...children) => {
320
+ return children.map((c) => c.value);
279
321
  },
280
- concatAtoms: function (rule, parent) {
281
- var children = [];
282
- for (var _i = 2; _i < arguments.length; _i++) {
283
- children[_i - 2] = arguments[_i];
284
- }
285
- var atoms = children[0].value;
286
- var atom = children[1].value;
322
+ concatAtoms: (rule, parent, ...children) => {
323
+ const atoms = children[0].value;
324
+ const atom = children[1].value;
287
325
  atoms.push(atom);
288
326
  return atoms;
289
327
  },
290
- newParam: function (rule, parent) {
291
- var children = [];
292
- for (var _i = 2; _i < arguments.length; _i++) {
293
- children[_i - 2] = arguments[_i];
294
- }
328
+ newParam: (rule, parent, ...children) => {
295
329
  if (children.length == 1) {
296
330
  return { key: null, value: children[0].value };
297
331
  }
@@ -299,86 +333,58 @@ var Parser = (function () {
299
333
  return { key: children[0].value, value: children[2].value };
300
334
  }
301
335
  },
302
- newParamList: function (rule, parent) {
303
- var children = [];
304
- for (var _i = 2; _i < arguments.length; _i++) {
305
- children[_i - 2] = arguments[_i];
306
- }
336
+ newParamList: (rule, parent, ...children) => {
307
337
  return [children[0].value];
308
338
  },
309
- concatParamList: function (rule, parent) {
310
- var children = [];
311
- for (var _i = 2; _i < arguments.length; _i++) {
312
- children[_i - 2] = arguments[_i];
313
- }
314
- var params = children[0].value;
315
- var newParam = children[2].value;
339
+ concatParamList: (rule, parent, ...children) => {
340
+ const params = children[0].value;
341
+ const newParam = children[2].value;
316
342
  params.push(newParam);
317
343
  return params;
318
344
  },
319
- newCommand: function (rule, parent) {
320
- var children = [];
321
- for (var _i = 2; _i < arguments.length; _i++) {
322
- children[_i - 2] = arguments[_i];
323
- }
324
- return _this.createCommand(children[0].value, children[1].value);
345
+ newCommand: (rule, parent, ...children) => {
346
+ return this.createCommand(children[0].value, children[1].value);
325
347
  },
326
- appendAtoms: function (rule, parent) {
327
- var children = [];
328
- for (var _i = 2; _i < arguments.length; _i++) {
329
- children[_i - 2] = arguments[_i];
330
- }
331
- var atoms = children[0].value;
348
+ appendAtoms: (rule, parent, ...children) => {
349
+ const atoms = children[0].value;
332
350
  if (atoms.length > 0) {
333
- _this.addCommand(new (commands_1.AddAtoms.bind.apply(commands_1.AddAtoms, __spreadArray([void 0], __read(atoms), false)))());
351
+ this.addCommand(new commands_1.AddAtoms(...atoms));
334
352
  }
335
353
  return null;
336
354
  },
337
- appendCommand: function (rule, parent) {
338
- var children = [];
339
- for (var _i = 2; _i < arguments.length; _i++) {
340
- children[_i - 2] = arguments[_i];
341
- }
342
- var command = children[1].value;
343
- _this.addCommand(command);
344
- var atoms = children[2].value;
355
+ appendCommand: (rule, parent, ...children) => {
356
+ const command = children[1].value;
357
+ this.addCommand(command);
358
+ const atoms = children[2].value;
345
359
  if (atoms.length > 0) {
346
- _this.addCommand(new (commands_1.AddAtoms.bind.apply(commands_1.AddAtoms, __spreadArray([void 0], __read(atoms), false)))());
360
+ this.addCommand(new commands_1.AddAtoms(...atoms));
347
361
  }
348
362
  return null;
349
363
  },
350
- appendRoleSelector: function (rule, parent) {
351
- var children = [];
352
- for (var _i = 2; _i < arguments.length; _i++) {
353
- children[_i - 2] = arguments[_i];
354
- }
355
- var roleName = children[1].value;
356
- var lName = roleName.toLowerCase().trim();
357
- _this.addCommand(new commands_1.ActivateRole([{ key: null, value: lName }]));
358
- var atoms = children[2].value;
364
+ appendRoleSelector: (rule, parent, ...children) => {
365
+ const roleName = children[1].value;
366
+ const lName = roleName.toLowerCase().trim();
367
+ this.addCommand(new commands_1.ActivateRole([{ key: null, value: lName }]));
368
+ const atoms = children[2].value;
359
369
  if (atoms.length > 0) {
360
- _this.addCommand(new (commands_1.AddAtoms.bind.apply(commands_1.AddAtoms, __spreadArray([void 0], __read(atoms), false)))());
370
+ this.addCommand(new commands_1.AddAtoms(...atoms));
361
371
  }
362
372
  return null;
363
373
  },
364
- insertEmbedding: function (rule, parent) {
365
- var children = [];
366
- for (var _i = 2; _i < arguments.length; _i++) {
367
- children[_i - 2] = arguments[_i];
368
- }
369
- var rawVal = children[1].value;
370
- _this.addCommand(new commands_1.RawEmbedding([{ key: null, value: rawVal }]));
371
- var atoms = children[2].value;
374
+ insertEmbedding: (rule, parent, ...children) => {
375
+ const rawVal = children[1].value;
376
+ this.addCommand(new commands_1.RawEmbedding([{ key: null, value: rawVal }]));
377
+ const atoms = children[2].value;
372
378
  if (atoms.length > 0) {
373
- _this.addCommand(new (commands_1.AddAtoms.bind.apply(commands_1.AddAtoms, __spreadArray([void 0], __read(atoms), false)))());
379
+ this.addCommand(new commands_1.AddAtoms(...atoms));
374
380
  }
375
381
  return null;
376
382
  },
377
383
  };
378
384
  config = config || {};
379
385
  }
380
- Parser.prototype.createCommand = function (name, params) {
381
- var lName = name.trim().toLowerCase();
386
+ createCommand(name, params) {
387
+ const lName = name.trim().toLowerCase();
382
388
  params = params || [];
383
389
  if (lName == "line") {
384
390
  return new commands_1.CreateLine(params);
@@ -404,29 +410,26 @@ var Parser = (function () {
404
410
  else {
405
411
  throw new Error("Invalid command: " + lName);
406
412
  }
407
- };
408
- Parser.prototype.addCommand = function (cmd) {
413
+ }
414
+ addCommand(cmd) {
409
415
  cmd.index = this.commands.length;
410
416
  this.commands.push(cmd);
411
- };
412
- Parser.prototype.parse = function (input) {
413
- var _this = this;
417
+ }
418
+ parse(input) {
414
419
  this.errors = [];
415
- var ptree = parser.parse(input, {
420
+ const ptree = parser.parse(input, {
416
421
  tokenizerContext: this,
417
422
  ruleHandlers: this.ruleHandlers,
418
- onTokenError: function (err) {
419
- _this.errors.push(err);
423
+ onTokenError: (err) => {
424
+ this.errors.push(err);
420
425
  return true;
421
426
  },
422
427
  });
423
428
  return ptree;
424
- };
425
- Parser.prototype.parseEmbelishment = function (value) {
429
+ }
430
+ parseEmbelishment(value) {
426
431
  return carnatic.parseEmbelishment(value);
427
- };
428
- return Parser;
429
- }());
432
+ }
433
+ }
430
434
  exports.Parser = Parser;
431
- var templateObject_1;
432
435
  //# sourceMappingURL=parser.js.map