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