notations 0.0.47 → 0.0.50
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 +34 -69
- package/lib/cjs/beats.js +178 -439
- 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 +8 -7
- package/lib/cjs/carnatic/NotationView.js +73 -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 +4 -13
- package/lib/cjs/carnatic/beatviews.js +23 -118
- 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 +14 -1
- package/lib/cjs/core.js +291 -477
- 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 +125 -0
- package/lib/cjs/grids.js +550 -0
- package/lib/cjs/grids.js.map +1 -0
- 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 +230 -214
- 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 +34 -69
- package/lib/esm/beats.js +172 -438
- 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 +8 -7
- package/lib/esm/carnatic/NotationView.js +71 -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 +4 -13
- package/lib/esm/carnatic/beatviews.js +21 -94
- 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 +14 -1
- package/lib/esm/core.js +287 -484
- 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 +125 -0
- package/lib/esm/grids.js +517 -0
- package/lib/esm/grids.js.map +1 -0
- 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 +225 -210
- 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 +18 -17
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,82 +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
|
-
|
|
171
|
+
toMarker: (token, tape, owner) => {
|
|
172
|
+
if (token.tag != "PRE_MARKER" && token.tag != "POST_MARKER") {
|
|
173
|
+
throw new Error("Invalid token for converting to note: " + token.tag);
|
|
174
|
+
}
|
|
175
|
+
const isBefore = token.tag == "PRE_MARKER";
|
|
176
|
+
const markerText = isBefore
|
|
177
|
+
? token.value.substring(1, token.value.length - 3)
|
|
178
|
+
: token.value.substring(3, token.value.length - 1);
|
|
179
|
+
token.value = new core_1.Marker(markerText, isBefore);
|
|
180
|
+
return token;
|
|
181
|
+
},
|
|
182
|
+
toOctavedNote: (token, tape, owner) => {
|
|
97
183
|
if (token.tag == "DOTS_IDENT") {
|
|
98
|
-
|
|
99
|
-
|
|
184
|
+
const octave = token.positions[1][1] - token.positions[1][0];
|
|
185
|
+
const note = token.value.substring(octave);
|
|
100
186
|
token.value = new core_1.Note(note, ONE, -octave);
|
|
101
187
|
}
|
|
102
188
|
else if (token.tag == "IDENT_DOTS") {
|
|
103
|
-
|
|
104
|
-
|
|
189
|
+
const octave = token.positions[2][1] - token.positions[2][0];
|
|
190
|
+
const note = token.value.substring(0, token.value.length - octave);
|
|
105
191
|
token.value = new core_1.Note(note, ONE, octave);
|
|
106
192
|
}
|
|
107
193
|
else {
|
|
@@ -109,23 +195,23 @@ var _a = __read(G.newParser(String.raw(templateObject_1 || (templateObject_1 = _
|
|
|
109
195
|
}
|
|
110
196
|
return token;
|
|
111
197
|
},
|
|
112
|
-
toRoleSelector:
|
|
198
|
+
toRoleSelector: (token, tape, owner) => {
|
|
113
199
|
token.value = token.value.substring(0, token.value.length - 1);
|
|
114
200
|
return token;
|
|
115
201
|
},
|
|
116
|
-
toLineAnnotation:
|
|
202
|
+
toLineAnnotation: (token, tape, owner) => {
|
|
117
203
|
token.value = token.value.substring(1);
|
|
118
204
|
return token;
|
|
119
205
|
},
|
|
120
|
-
toSingleLineRawString:
|
|
206
|
+
toSingleLineRawString: (token, tape, owner) => {
|
|
121
207
|
token.value = token.value.substring(1);
|
|
122
208
|
return token;
|
|
123
209
|
},
|
|
124
|
-
toMultiLineRawString:
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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;
|
|
129
215
|
if (endPos < 0) {
|
|
130
216
|
throw new Error("EOF expected while finding end of Raw String Literal: '" + endPat + "'");
|
|
131
217
|
}
|
|
@@ -133,19 +219,14 @@ var _a = __read(G.newParser(String.raw(templateObject_1 || (templateObject_1 = _
|
|
|
133
219
|
return token;
|
|
134
220
|
},
|
|
135
221
|
},
|
|
136
|
-
})
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
var _this = this;
|
|
222
|
+
});
|
|
223
|
+
class Parser {
|
|
224
|
+
constructor(config) {
|
|
140
225
|
this.errors = [];
|
|
141
226
|
this.commands = [];
|
|
142
227
|
this.runCommandFound = false;
|
|
143
228
|
this.ruleHandlers = {
|
|
144
|
-
newFraction:
|
|
145
|
-
var children = [];
|
|
146
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
147
|
-
children[_i - 2] = arguments[_i];
|
|
148
|
-
}
|
|
229
|
+
newFraction: (rule, parent, ...children) => {
|
|
149
230
|
if (children.length == 1) {
|
|
150
231
|
return new TSU.Num.Fraction(children[0].value);
|
|
151
232
|
}
|
|
@@ -153,51 +234,31 @@ var Parser = (function () {
|
|
|
153
234
|
return new TSU.Num.Fraction(children[0].value, children[2].value);
|
|
154
235
|
}
|
|
155
236
|
},
|
|
156
|
-
newGroup:
|
|
157
|
-
|
|
158
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
159
|
-
children[_i - 2] = arguments[_i];
|
|
160
|
-
}
|
|
161
|
-
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);
|
|
162
239
|
return out;
|
|
163
240
|
},
|
|
164
|
-
litWithCaret:
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
var lit = core_1.Note.fromLit(children[0].value);
|
|
170
|
-
var opnode = children[2];
|
|
171
|
-
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;
|
|
172
245
|
lit.shift = shiftValue;
|
|
173
246
|
return lit;
|
|
174
247
|
},
|
|
175
|
-
litWithPreEmb:
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
children[_i - 2] = arguments[_i];
|
|
179
|
-
}
|
|
180
|
-
var emb = children[0];
|
|
181
|
-
var lit = children[1].value;
|
|
248
|
+
litWithPreEmb: (rule, parent, ...children) => {
|
|
249
|
+
const emb = children[0];
|
|
250
|
+
const lit = children[1].value;
|
|
182
251
|
lit.embelishments.splice(0, 0, emb.value);
|
|
183
252
|
return lit;
|
|
184
253
|
},
|
|
185
|
-
litWithPostEmb:
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
children[_i - 2] = arguments[_i];
|
|
189
|
-
}
|
|
190
|
-
var lit = children[0].value;
|
|
191
|
-
var emb = children[1];
|
|
254
|
+
litWithPostEmb: (rule, parent, ...children) => {
|
|
255
|
+
const lit = children[0].value;
|
|
256
|
+
const emb = children[1];
|
|
192
257
|
lit.embelishments.push(emb);
|
|
193
258
|
return lit;
|
|
194
259
|
},
|
|
195
|
-
litToAtom:
|
|
196
|
-
|
|
197
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
198
|
-
children[_i - 2] = arguments[_i];
|
|
199
|
-
}
|
|
200
|
-
var lit = children[0];
|
|
260
|
+
litToAtom: (rule, parent, ...children) => {
|
|
261
|
+
const lit = children[0];
|
|
201
262
|
if (lit.sym.label == "DOTS_IDENT" || lit.sym.label == "IDENT_DOTS") {
|
|
202
263
|
return lit.value;
|
|
203
264
|
}
|
|
@@ -211,41 +272,39 @@ var Parser = (function () {
|
|
|
211
272
|
throw new Error("Invalid lit: " + lit);
|
|
212
273
|
}
|
|
213
274
|
},
|
|
214
|
-
newSpace:
|
|
215
|
-
var children = [];
|
|
216
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
217
|
-
children[_i - 2] = arguments[_i];
|
|
218
|
-
}
|
|
275
|
+
newSpace: (rule, parent, ...children) => {
|
|
219
276
|
return new core_1.Space();
|
|
220
277
|
},
|
|
221
|
-
newRest:
|
|
222
|
-
var children = [];
|
|
223
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
224
|
-
children[_i - 2] = arguments[_i];
|
|
225
|
-
}
|
|
278
|
+
newRest: (rule, parent, ...children) => {
|
|
226
279
|
return new core_1.Rest();
|
|
227
280
|
},
|
|
228
|
-
newDoubleSpace:
|
|
229
|
-
var children = [];
|
|
230
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
231
|
-
children[_i - 2] = arguments[_i];
|
|
232
|
-
}
|
|
281
|
+
newDoubleSpace: (rule, parent, ...children) => {
|
|
233
282
|
return new core_1.Space(ONE.timesNum(2));
|
|
234
283
|
},
|
|
235
|
-
newSilentSpace:
|
|
236
|
-
var children = [];
|
|
237
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
238
|
-
children[_i - 2] = arguments[_i];
|
|
239
|
-
}
|
|
284
|
+
newSilentSpace: (rule, parent, ...children) => {
|
|
240
285
|
return new core_1.Space(ONE, true);
|
|
241
286
|
},
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
287
|
+
applyPreMarker: (rule, parent, ...children) => {
|
|
288
|
+
const marker = children[0].value;
|
|
289
|
+
const leaf = children[1].value;
|
|
290
|
+
if (!leaf.markersBefore) {
|
|
291
|
+
leaf.markersBefore = [];
|
|
292
|
+
}
|
|
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 = [];
|
|
246
301
|
}
|
|
247
|
-
|
|
248
|
-
|
|
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;
|
|
249
308
|
if (typeof dur === "number") {
|
|
250
309
|
dur = ONE.timesNum(dur);
|
|
251
310
|
}
|
|
@@ -257,28 +316,16 @@ var Parser = (function () {
|
|
|
257
316
|
}
|
|
258
317
|
return leaf;
|
|
259
318
|
},
|
|
260
|
-
newArray:
|
|
261
|
-
|
|
262
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
263
|
-
children[_i - 2] = arguments[_i];
|
|
264
|
-
}
|
|
265
|
-
return children.map(function (c) { return c.value; });
|
|
319
|
+
newArray: (rule, parent, ...children) => {
|
|
320
|
+
return children.map((c) => c.value);
|
|
266
321
|
},
|
|
267
|
-
concatAtoms:
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
children[_i - 2] = arguments[_i];
|
|
271
|
-
}
|
|
272
|
-
var atoms = children[0].value;
|
|
273
|
-
var atom = children[1].value;
|
|
322
|
+
concatAtoms: (rule, parent, ...children) => {
|
|
323
|
+
const atoms = children[0].value;
|
|
324
|
+
const atom = children[1].value;
|
|
274
325
|
atoms.push(atom);
|
|
275
326
|
return atoms;
|
|
276
327
|
},
|
|
277
|
-
newParam:
|
|
278
|
-
var children = [];
|
|
279
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
280
|
-
children[_i - 2] = arguments[_i];
|
|
281
|
-
}
|
|
328
|
+
newParam: (rule, parent, ...children) => {
|
|
282
329
|
if (children.length == 1) {
|
|
283
330
|
return { key: null, value: children[0].value };
|
|
284
331
|
}
|
|
@@ -286,86 +333,58 @@ var Parser = (function () {
|
|
|
286
333
|
return { key: children[0].value, value: children[2].value };
|
|
287
334
|
}
|
|
288
335
|
},
|
|
289
|
-
newParamList:
|
|
290
|
-
var children = [];
|
|
291
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
292
|
-
children[_i - 2] = arguments[_i];
|
|
293
|
-
}
|
|
336
|
+
newParamList: (rule, parent, ...children) => {
|
|
294
337
|
return [children[0].value];
|
|
295
338
|
},
|
|
296
|
-
concatParamList:
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
children[_i - 2] = arguments[_i];
|
|
300
|
-
}
|
|
301
|
-
var params = children[0].value;
|
|
302
|
-
var newParam = children[2].value;
|
|
339
|
+
concatParamList: (rule, parent, ...children) => {
|
|
340
|
+
const params = children[0].value;
|
|
341
|
+
const newParam = children[2].value;
|
|
303
342
|
params.push(newParam);
|
|
304
343
|
return params;
|
|
305
344
|
},
|
|
306
|
-
newCommand:
|
|
307
|
-
|
|
308
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
309
|
-
children[_i - 2] = arguments[_i];
|
|
310
|
-
}
|
|
311
|
-
return _this.createCommand(children[0].value, children[1].value);
|
|
345
|
+
newCommand: (rule, parent, ...children) => {
|
|
346
|
+
return this.createCommand(children[0].value, children[1].value);
|
|
312
347
|
},
|
|
313
|
-
appendAtoms:
|
|
314
|
-
|
|
315
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
316
|
-
children[_i - 2] = arguments[_i];
|
|
317
|
-
}
|
|
318
|
-
var atoms = children[0].value;
|
|
348
|
+
appendAtoms: (rule, parent, ...children) => {
|
|
349
|
+
const atoms = children[0].value;
|
|
319
350
|
if (atoms.length > 0) {
|
|
320
|
-
|
|
351
|
+
this.addCommand(new commands_1.AddAtoms(...atoms));
|
|
321
352
|
}
|
|
322
353
|
return null;
|
|
323
354
|
},
|
|
324
|
-
appendCommand:
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
}
|
|
329
|
-
var command = children[1].value;
|
|
330
|
-
_this.addCommand(command);
|
|
331
|
-
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;
|
|
332
359
|
if (atoms.length > 0) {
|
|
333
|
-
|
|
360
|
+
this.addCommand(new commands_1.AddAtoms(...atoms));
|
|
334
361
|
}
|
|
335
362
|
return null;
|
|
336
363
|
},
|
|
337
|
-
appendRoleSelector:
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
var roleName = children[1].value;
|
|
343
|
-
var lName = roleName.toLowerCase().trim();
|
|
344
|
-
_this.addCommand(new commands_1.ActivateRole([{ key: null, value: lName }]));
|
|
345
|
-
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;
|
|
346
369
|
if (atoms.length > 0) {
|
|
347
|
-
|
|
370
|
+
this.addCommand(new commands_1.AddAtoms(...atoms));
|
|
348
371
|
}
|
|
349
372
|
return null;
|
|
350
373
|
},
|
|
351
|
-
insertEmbedding:
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
}
|
|
356
|
-
var rawVal = children[1].value;
|
|
357
|
-
_this.addCommand(new commands_1.RawEmbedding([{ key: null, value: rawVal }]));
|
|
358
|
-
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;
|
|
359
378
|
if (atoms.length > 0) {
|
|
360
|
-
|
|
379
|
+
this.addCommand(new commands_1.AddAtoms(...atoms));
|
|
361
380
|
}
|
|
362
381
|
return null;
|
|
363
382
|
},
|
|
364
383
|
};
|
|
365
384
|
config = config || {};
|
|
366
385
|
}
|
|
367
|
-
|
|
368
|
-
|
|
386
|
+
createCommand(name, params) {
|
|
387
|
+
const lName = name.trim().toLowerCase();
|
|
369
388
|
params = params || [];
|
|
370
389
|
if (lName == "line") {
|
|
371
390
|
return new commands_1.CreateLine(params);
|
|
@@ -391,29 +410,26 @@ var Parser = (function () {
|
|
|
391
410
|
else {
|
|
392
411
|
throw new Error("Invalid command: " + lName);
|
|
393
412
|
}
|
|
394
|
-
}
|
|
395
|
-
|
|
413
|
+
}
|
|
414
|
+
addCommand(cmd) {
|
|
396
415
|
cmd.index = this.commands.length;
|
|
397
416
|
this.commands.push(cmd);
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
var _this = this;
|
|
417
|
+
}
|
|
418
|
+
parse(input) {
|
|
401
419
|
this.errors = [];
|
|
402
|
-
|
|
420
|
+
const ptree = parser.parse(input, {
|
|
403
421
|
tokenizerContext: this,
|
|
404
422
|
ruleHandlers: this.ruleHandlers,
|
|
405
|
-
onTokenError:
|
|
406
|
-
|
|
423
|
+
onTokenError: (err) => {
|
|
424
|
+
this.errors.push(err);
|
|
407
425
|
return true;
|
|
408
426
|
},
|
|
409
427
|
});
|
|
410
428
|
return ptree;
|
|
411
|
-
}
|
|
412
|
-
|
|
429
|
+
}
|
|
430
|
+
parseEmbelishment(value) {
|
|
413
431
|
return carnatic.parseEmbelishment(value);
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
}());
|
|
432
|
+
}
|
|
433
|
+
}
|
|
417
434
|
exports.Parser = Parser;
|
|
418
|
-
var templateObject_1;
|
|
419
435
|
//# sourceMappingURL=parser.js.map
|