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