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.
- package/lib/cjs/beats.d.ts +36 -71
- package/lib/cjs/beats.js +225 -432
- package/lib/cjs/beats.js.map +1 -1
- package/lib/cjs/beatutils.d.ts +3 -0
- package/lib/cjs/beatutils.js +64 -0
- package/lib/cjs/beatutils.js.map +1 -0
- package/lib/cjs/beatview.d.ts +18 -0
- package/lib/cjs/beatview.js +62 -0
- package/lib/cjs/beatview.js.map +1 -0
- package/lib/cjs/carnatic/LineView.d.ts +2 -7
- package/lib/cjs/carnatic/LineView.js +13 -31
- package/lib/cjs/carnatic/LineView.js.map +1 -1
- package/lib/cjs/carnatic/NotationView.d.ts +9 -7
- package/lib/cjs/carnatic/NotationView.js +90 -153
- package/lib/cjs/carnatic/NotationView.js.map +1 -1
- package/lib/cjs/carnatic/atomviews.js +149 -287
- package/lib/cjs/carnatic/atomviews.js.map +1 -1
- package/lib/cjs/carnatic/beatviews.d.ts +18 -10
- package/lib/cjs/carnatic/beatviews.js +59 -91
- package/lib/cjs/carnatic/beatviews.js.map +1 -1
- package/lib/cjs/carnatic/embelishments.d.ts +1 -1
- package/lib/cjs/carnatic/embelishments.js +189 -283
- package/lib/cjs/carnatic/embelishments.js.map +1 -1
- package/lib/cjs/carnatic/gamakas.js +15 -47
- package/lib/cjs/carnatic/gamakas.js.map +1 -1
- package/lib/cjs/commands.js +111 -271
- package/lib/cjs/commands.js.map +1 -1
- package/lib/cjs/core.d.ts +6 -1
- package/lib/cjs/core.js +288 -493
- package/lib/cjs/core.js.map +1 -1
- package/lib/cjs/cycle.js +175 -367
- package/lib/cjs/cycle.js.map +1 -1
- package/lib/cjs/entity.js +48 -102
- package/lib/cjs/entity.js.map +1 -1
- package/lib/cjs/grids.d.ts +124 -1
- package/lib/cjs/grids.js +546 -6
- package/lib/cjs/grids.js.map +1 -1
- package/lib/cjs/iterators.js +96 -234
- package/lib/cjs/iterators.js.map +1 -1
- package/lib/cjs/layouts.d.ts +1 -1
- package/lib/cjs/layouts.js +62 -98
- package/lib/cjs/layouts.js.map +1 -1
- package/lib/cjs/loader.d.ts +2 -2
- package/lib/cjs/loader.js +23 -123
- package/lib/cjs/loader.js.map +1 -1
- package/lib/cjs/notation.d.ts +0 -3
- package/lib/cjs/notation.js +139 -241
- package/lib/cjs/notation.js.map +1 -1
- package/lib/cjs/parser.d.ts +2 -0
- package/lib/cjs/parser.js +222 -219
- package/lib/cjs/parser.js.map +1 -1
- package/lib/cjs/shapes.js +149 -283
- package/lib/cjs/shapes.js.map +1 -1
- package/lib/cjs/utils.d.ts +8 -0
- package/lib/cjs/utils.js +60 -55
- package/lib/cjs/utils.js.map +1 -1
- package/lib/esm/beats.d.ts +36 -71
- package/lib/esm/beats.js +218 -430
- package/lib/esm/beats.js.map +1 -1
- package/lib/esm/beatutils.d.ts +3 -0
- package/lib/esm/beatutils.js +37 -0
- package/lib/esm/beatutils.js.map +1 -0
- package/lib/esm/beatview.d.ts +18 -0
- package/lib/esm/beatview.js +35 -0
- package/lib/esm/beatview.js.map +1 -0
- package/lib/esm/carnatic/LineView.d.ts +2 -7
- package/lib/esm/carnatic/LineView.js +12 -31
- package/lib/esm/carnatic/LineView.js.map +1 -1
- package/lib/esm/carnatic/NotationView.d.ts +9 -7
- package/lib/esm/carnatic/NotationView.js +88 -152
- package/lib/esm/carnatic/NotationView.js.map +1 -1
- package/lib/esm/carnatic/atomviews.js +144 -284
- package/lib/esm/carnatic/atomviews.js.map +1 -1
- package/lib/esm/carnatic/beatviews.d.ts +18 -10
- package/lib/esm/carnatic/beatviews.js +53 -87
- package/lib/esm/carnatic/beatviews.js.map +1 -1
- package/lib/esm/carnatic/embelishments.d.ts +1 -1
- package/lib/esm/carnatic/embelishments.js +187 -296
- package/lib/esm/carnatic/embelishments.js.map +1 -1
- package/lib/esm/carnatic/gamakas.js +14 -48
- package/lib/esm/carnatic/gamakas.js.map +1 -1
- package/lib/esm/commands.js +100 -271
- package/lib/esm/commands.js.map +1 -1
- package/lib/esm/core.d.ts +6 -1
- package/lib/esm/core.js +286 -502
- package/lib/esm/core.js.map +1 -1
- package/lib/esm/cycle.js +172 -367
- package/lib/esm/cycle.js.map +1 -1
- package/lib/esm/entity.js +48 -104
- package/lib/esm/entity.js.map +1 -1
- package/lib/esm/grids.d.ts +124 -1
- package/lib/esm/grids.js +515 -5
- package/lib/esm/grids.js.map +1 -1
- package/lib/esm/iterators.js +93 -235
- package/lib/esm/iterators.js.map +1 -1
- package/lib/esm/layouts.d.ts +1 -1
- package/lib/esm/layouts.js +60 -97
- package/lib/esm/layouts.js.map +1 -1
- package/lib/esm/loader.d.ts +2 -2
- package/lib/esm/loader.js +20 -120
- package/lib/esm/loader.js.map +1 -1
- package/lib/esm/notation.d.ts +0 -3
- package/lib/esm/notation.js +135 -242
- package/lib/esm/notation.js.map +1 -1
- package/lib/esm/parser.d.ts +2 -0
- package/lib/esm/parser.js +216 -214
- package/lib/esm/parser.js.map +1 -1
- package/lib/esm/shapes.js +148 -288
- package/lib/esm/shapes.js.map +1 -1
- package/lib/esm/utils.d.ts +8 -0
- package/lib/esm/utils.js +55 -51
- package/lib/esm/utils.js.map +1 -1
- 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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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:
|
|
70
|
-
|
|
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(
|
|
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:
|
|
155
|
+
toCommandName: (token, tape, owner) => {
|
|
81
156
|
token.value = token.value.substring(1);
|
|
82
157
|
return token;
|
|
83
158
|
},
|
|
84
|
-
toBoolean:
|
|
159
|
+
toBoolean: (token, tape, owner) => {
|
|
85
160
|
token.value = token.value == "true";
|
|
86
161
|
return token;
|
|
87
162
|
},
|
|
88
|
-
toNumber:
|
|
163
|
+
toNumber: (token, tape, owner) => {
|
|
89
164
|
token.value = parseInt(token.value);
|
|
90
165
|
return token;
|
|
91
166
|
},
|
|
92
|
-
toString:
|
|
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:
|
|
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
|
-
|
|
101
|
-
|
|
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:
|
|
182
|
+
toOctavedNote: (token, tape, owner) => {
|
|
110
183
|
if (token.tag == "DOTS_IDENT") {
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
117
|
-
|
|
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:
|
|
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:
|
|
202
|
+
toLineAnnotation: (token, tape, owner) => {
|
|
130
203
|
token.value = token.value.substring(1);
|
|
131
204
|
return token;
|
|
132
205
|
},
|
|
133
|
-
toSingleLineRawString:
|
|
206
|
+
toSingleLineRawString: (token, tape, owner) => {
|
|
134
207
|
token.value = token.value.substring(1);
|
|
135
208
|
return token;
|
|
136
209
|
},
|
|
137
|
-
toMultiLineRawString:
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
})
|
|
150
|
-
|
|
151
|
-
|
|
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:
|
|
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:
|
|
170
|
-
|
|
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:
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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:
|
|
189
|
-
|
|
190
|
-
|
|
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:
|
|
199
|
-
|
|
200
|
-
|
|
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:
|
|
209
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
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
|
-
|
|
261
|
-
|
|
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:
|
|
274
|
-
|
|
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:
|
|
281
|
-
|
|
282
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
310
|
-
|
|
311
|
-
|
|
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:
|
|
320
|
-
|
|
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:
|
|
327
|
-
|
|
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
|
-
|
|
351
|
+
this.addCommand(new commands_1.AddAtoms(...atoms));
|
|
334
352
|
}
|
|
335
353
|
return null;
|
|
336
354
|
},
|
|
337
|
-
appendCommand:
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
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
|
-
|
|
360
|
+
this.addCommand(new commands_1.AddAtoms(...atoms));
|
|
347
361
|
}
|
|
348
362
|
return null;
|
|
349
363
|
},
|
|
350
|
-
appendRoleSelector:
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
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
|
-
|
|
370
|
+
this.addCommand(new commands_1.AddAtoms(...atoms));
|
|
361
371
|
}
|
|
362
372
|
return null;
|
|
363
373
|
},
|
|
364
|
-
insertEmbedding:
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
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
|
-
|
|
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
|
-
|
|
381
|
-
|
|
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
|
-
|
|
413
|
+
}
|
|
414
|
+
addCommand(cmd) {
|
|
409
415
|
cmd.index = this.commands.length;
|
|
410
416
|
this.commands.push(cmd);
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
var _this = this;
|
|
417
|
+
}
|
|
418
|
+
parse(input) {
|
|
414
419
|
this.errors = [];
|
|
415
|
-
|
|
420
|
+
const ptree = parser.parse(input, {
|
|
416
421
|
tokenizerContext: this,
|
|
417
422
|
ruleHandlers: this.ruleHandlers,
|
|
418
|
-
onTokenError:
|
|
419
|
-
|
|
423
|
+
onTokenError: (err) => {
|
|
424
|
+
this.errors.push(err);
|
|
420
425
|
return true;
|
|
421
426
|
},
|
|
422
427
|
});
|
|
423
428
|
return ptree;
|
|
424
|
-
}
|
|
425
|
-
|
|
429
|
+
}
|
|
430
|
+
parseEmbelishment(value) {
|
|
426
431
|
return carnatic.parseEmbelishment(value);
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
}());
|
|
432
|
+
}
|
|
433
|
+
}
|
|
430
434
|
exports.Parser = Parser;
|
|
431
|
-
var templateObject_1;
|
|
432
435
|
//# sourceMappingURL=parser.js.map
|