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/esm/parser.js
CHANGED
|
@@ -1,81 +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
|
-
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 -> 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
|
-
|
|
145
|
+
toMarker: (token, tape, owner) => {
|
|
146
|
+
if (token.tag != "PRE_MARKER" && token.tag != "POST_MARKER") {
|
|
147
|
+
throw new Error("Invalid token for converting to note: " + token.tag);
|
|
148
|
+
}
|
|
149
|
+
const isBefore = token.tag == "PRE_MARKER";
|
|
150
|
+
const markerText = isBefore
|
|
151
|
+
? token.value.substring(1, token.value.length - 3)
|
|
152
|
+
: token.value.substring(3, token.value.length - 1);
|
|
153
|
+
token.value = new Marker(markerText, isBefore);
|
|
154
|
+
return token;
|
|
155
|
+
},
|
|
156
|
+
toOctavedNote: (token, tape, owner) => {
|
|
71
157
|
if (token.tag == "DOTS_IDENT") {
|
|
72
|
-
|
|
73
|
-
|
|
158
|
+
const octave = token.positions[1][1] - token.positions[1][0];
|
|
159
|
+
const note = token.value.substring(octave);
|
|
74
160
|
token.value = new Note(note, ONE, -octave);
|
|
75
161
|
}
|
|
76
162
|
else if (token.tag == "IDENT_DOTS") {
|
|
77
|
-
|
|
78
|
-
|
|
163
|
+
const octave = token.positions[2][1] - token.positions[2][0];
|
|
164
|
+
const note = token.value.substring(0, token.value.length - octave);
|
|
79
165
|
token.value = new Note(note, ONE, octave);
|
|
80
166
|
}
|
|
81
167
|
else {
|
|
@@ -83,23 +169,23 @@ var _a = __read(G.newParser(String.raw(templateObject_1 || (templateObject_1 = _
|
|
|
83
169
|
}
|
|
84
170
|
return token;
|
|
85
171
|
},
|
|
86
|
-
toRoleSelector:
|
|
172
|
+
toRoleSelector: (token, tape, owner) => {
|
|
87
173
|
token.value = token.value.substring(0, token.value.length - 1);
|
|
88
174
|
return token;
|
|
89
175
|
},
|
|
90
|
-
toLineAnnotation:
|
|
176
|
+
toLineAnnotation: (token, tape, owner) => {
|
|
91
177
|
token.value = token.value.substring(1);
|
|
92
178
|
return token;
|
|
93
179
|
},
|
|
94
|
-
toSingleLineRawString:
|
|
180
|
+
toSingleLineRawString: (token, tape, owner) => {
|
|
95
181
|
token.value = token.value.substring(1);
|
|
96
182
|
return token;
|
|
97
183
|
},
|
|
98
|
-
toMultiLineRawString:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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;
|
|
103
189
|
if (endPos < 0) {
|
|
104
190
|
throw new Error("EOF expected while finding end of Raw String Literal: '" + endPat + "'");
|
|
105
191
|
}
|
|
@@ -107,19 +193,14 @@ var _a = __read(G.newParser(String.raw(templateObject_1 || (templateObject_1 = _
|
|
|
107
193
|
return token;
|
|
108
194
|
},
|
|
109
195
|
},
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
var _this = this;
|
|
196
|
+
});
|
|
197
|
+
export class Parser {
|
|
198
|
+
constructor(config) {
|
|
114
199
|
this.errors = [];
|
|
115
200
|
this.commands = [];
|
|
116
201
|
this.runCommandFound = false;
|
|
117
202
|
this.ruleHandlers = {
|
|
118
|
-
newFraction:
|
|
119
|
-
var children = [];
|
|
120
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
121
|
-
children[_i - 2] = arguments[_i];
|
|
122
|
-
}
|
|
203
|
+
newFraction: (rule, parent, ...children) => {
|
|
123
204
|
if (children.length == 1) {
|
|
124
205
|
return new TSU.Num.Fraction(children[0].value);
|
|
125
206
|
}
|
|
@@ -127,51 +208,31 @@ var Parser = (function () {
|
|
|
127
208
|
return new TSU.Num.Fraction(children[0].value, children[2].value);
|
|
128
209
|
}
|
|
129
210
|
},
|
|
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);
|
|
211
|
+
newGroup: (rule, parent, ...children) => {
|
|
212
|
+
const out = new Group(...children[1].value).setDuration(TWO, true);
|
|
136
213
|
return out;
|
|
137
214
|
},
|
|
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;
|
|
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;
|
|
146
219
|
lit.shift = shiftValue;
|
|
147
220
|
return lit;
|
|
148
221
|
},
|
|
149
|
-
litWithPreEmb:
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
children[_i - 2] = arguments[_i];
|
|
153
|
-
}
|
|
154
|
-
var emb = children[0];
|
|
155
|
-
var lit = children[1].value;
|
|
222
|
+
litWithPreEmb: (rule, parent, ...children) => {
|
|
223
|
+
const emb = children[0];
|
|
224
|
+
const lit = children[1].value;
|
|
156
225
|
lit.embelishments.splice(0, 0, emb.value);
|
|
157
226
|
return lit;
|
|
158
227
|
},
|
|
159
|
-
litWithPostEmb:
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
children[_i - 2] = arguments[_i];
|
|
163
|
-
}
|
|
164
|
-
var lit = children[0].value;
|
|
165
|
-
var emb = children[1];
|
|
228
|
+
litWithPostEmb: (rule, parent, ...children) => {
|
|
229
|
+
const lit = children[0].value;
|
|
230
|
+
const emb = children[1];
|
|
166
231
|
lit.embelishments.push(emb);
|
|
167
232
|
return lit;
|
|
168
233
|
},
|
|
169
|
-
litToAtom:
|
|
170
|
-
|
|
171
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
172
|
-
children[_i - 2] = arguments[_i];
|
|
173
|
-
}
|
|
174
|
-
var lit = children[0];
|
|
234
|
+
litToAtom: (rule, parent, ...children) => {
|
|
235
|
+
const lit = children[0];
|
|
175
236
|
if (lit.sym.label == "DOTS_IDENT" || lit.sym.label == "IDENT_DOTS") {
|
|
176
237
|
return lit.value;
|
|
177
238
|
}
|
|
@@ -185,41 +246,39 @@ var Parser = (function () {
|
|
|
185
246
|
throw new Error("Invalid lit: " + lit);
|
|
186
247
|
}
|
|
187
248
|
},
|
|
188
|
-
newSpace:
|
|
189
|
-
var children = [];
|
|
190
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
191
|
-
children[_i - 2] = arguments[_i];
|
|
192
|
-
}
|
|
249
|
+
newSpace: (rule, parent, ...children) => {
|
|
193
250
|
return new Space();
|
|
194
251
|
},
|
|
195
|
-
newRest:
|
|
196
|
-
var children = [];
|
|
197
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
198
|
-
children[_i - 2] = arguments[_i];
|
|
199
|
-
}
|
|
252
|
+
newRest: (rule, parent, ...children) => {
|
|
200
253
|
return new Rest();
|
|
201
254
|
},
|
|
202
|
-
newDoubleSpace:
|
|
203
|
-
var children = [];
|
|
204
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
205
|
-
children[_i - 2] = arguments[_i];
|
|
206
|
-
}
|
|
255
|
+
newDoubleSpace: (rule, parent, ...children) => {
|
|
207
256
|
return new Space(ONE.timesNum(2));
|
|
208
257
|
},
|
|
209
|
-
newSilentSpace:
|
|
210
|
-
var children = [];
|
|
211
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
212
|
-
children[_i - 2] = arguments[_i];
|
|
213
|
-
}
|
|
258
|
+
newSilentSpace: (rule, parent, ...children) => {
|
|
214
259
|
return new Space(ONE, true);
|
|
215
260
|
},
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
261
|
+
applyPreMarker: (rule, parent, ...children) => {
|
|
262
|
+
const marker = children[0].value;
|
|
263
|
+
const leaf = children[1].value;
|
|
264
|
+
if (!leaf.markersBefore) {
|
|
265
|
+
leaf.markersBefore = [];
|
|
220
266
|
}
|
|
221
|
-
|
|
222
|
-
|
|
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 = [];
|
|
275
|
+
}
|
|
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;
|
|
223
282
|
if (typeof dur === "number") {
|
|
224
283
|
dur = ONE.timesNum(dur);
|
|
225
284
|
}
|
|
@@ -231,28 +290,16 @@ var Parser = (function () {
|
|
|
231
290
|
}
|
|
232
291
|
return leaf;
|
|
233
292
|
},
|
|
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; });
|
|
293
|
+
newArray: (rule, parent, ...children) => {
|
|
294
|
+
return children.map((c) => c.value);
|
|
240
295
|
},
|
|
241
|
-
concatAtoms:
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
children[_i - 2] = arguments[_i];
|
|
245
|
-
}
|
|
246
|
-
var atoms = children[0].value;
|
|
247
|
-
var atom = children[1].value;
|
|
296
|
+
concatAtoms: (rule, parent, ...children) => {
|
|
297
|
+
const atoms = children[0].value;
|
|
298
|
+
const atom = children[1].value;
|
|
248
299
|
atoms.push(atom);
|
|
249
300
|
return atoms;
|
|
250
301
|
},
|
|
251
|
-
newParam:
|
|
252
|
-
var children = [];
|
|
253
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
254
|
-
children[_i - 2] = arguments[_i];
|
|
255
|
-
}
|
|
302
|
+
newParam: (rule, parent, ...children) => {
|
|
256
303
|
if (children.length == 1) {
|
|
257
304
|
return { key: null, value: children[0].value };
|
|
258
305
|
}
|
|
@@ -260,86 +307,58 @@ var Parser = (function () {
|
|
|
260
307
|
return { key: children[0].value, value: children[2].value };
|
|
261
308
|
}
|
|
262
309
|
},
|
|
263
|
-
newParamList:
|
|
264
|
-
var children = [];
|
|
265
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
266
|
-
children[_i - 2] = arguments[_i];
|
|
267
|
-
}
|
|
310
|
+
newParamList: (rule, parent, ...children) => {
|
|
268
311
|
return [children[0].value];
|
|
269
312
|
},
|
|
270
|
-
concatParamList:
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
children[_i - 2] = arguments[_i];
|
|
274
|
-
}
|
|
275
|
-
var params = children[0].value;
|
|
276
|
-
var newParam = children[2].value;
|
|
313
|
+
concatParamList: (rule, parent, ...children) => {
|
|
314
|
+
const params = children[0].value;
|
|
315
|
+
const newParam = children[2].value;
|
|
277
316
|
params.push(newParam);
|
|
278
317
|
return params;
|
|
279
318
|
},
|
|
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);
|
|
319
|
+
newCommand: (rule, parent, ...children) => {
|
|
320
|
+
return this.createCommand(children[0].value, children[1].value);
|
|
286
321
|
},
|
|
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;
|
|
322
|
+
appendAtoms: (rule, parent, ...children) => {
|
|
323
|
+
const atoms = children[0].value;
|
|
293
324
|
if (atoms.length > 0) {
|
|
294
|
-
|
|
325
|
+
this.addCommand(new AddAtoms(...atoms));
|
|
295
326
|
}
|
|
296
327
|
return null;
|
|
297
328
|
},
|
|
298
|
-
appendCommand:
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
}
|
|
303
|
-
var command = children[1].value;
|
|
304
|
-
_this.addCommand(command);
|
|
305
|
-
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;
|
|
306
333
|
if (atoms.length > 0) {
|
|
307
|
-
|
|
334
|
+
this.addCommand(new AddAtoms(...atoms));
|
|
308
335
|
}
|
|
309
336
|
return null;
|
|
310
337
|
},
|
|
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;
|
|
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;
|
|
320
343
|
if (atoms.length > 0) {
|
|
321
|
-
|
|
344
|
+
this.addCommand(new AddAtoms(...atoms));
|
|
322
345
|
}
|
|
323
346
|
return null;
|
|
324
347
|
},
|
|
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;
|
|
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;
|
|
333
352
|
if (atoms.length > 0) {
|
|
334
|
-
|
|
353
|
+
this.addCommand(new AddAtoms(...atoms));
|
|
335
354
|
}
|
|
336
355
|
return null;
|
|
337
356
|
},
|
|
338
357
|
};
|
|
339
358
|
config = config || {};
|
|
340
359
|
}
|
|
341
|
-
|
|
342
|
-
|
|
360
|
+
createCommand(name, params) {
|
|
361
|
+
const lName = name.trim().toLowerCase();
|
|
343
362
|
params = params || [];
|
|
344
363
|
if (lName == "line") {
|
|
345
364
|
return new CreateLine(params);
|
|
@@ -365,29 +384,25 @@ var Parser = (function () {
|
|
|
365
384
|
else {
|
|
366
385
|
throw new Error("Invalid command: " + lName);
|
|
367
386
|
}
|
|
368
|
-
}
|
|
369
|
-
|
|
387
|
+
}
|
|
388
|
+
addCommand(cmd) {
|
|
370
389
|
cmd.index = this.commands.length;
|
|
371
390
|
this.commands.push(cmd);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
var _this = this;
|
|
391
|
+
}
|
|
392
|
+
parse(input) {
|
|
375
393
|
this.errors = [];
|
|
376
|
-
|
|
394
|
+
const ptree = parser.parse(input, {
|
|
377
395
|
tokenizerContext: this,
|
|
378
396
|
ruleHandlers: this.ruleHandlers,
|
|
379
|
-
onTokenError:
|
|
380
|
-
|
|
397
|
+
onTokenError: (err) => {
|
|
398
|
+
this.errors.push(err);
|
|
381
399
|
return true;
|
|
382
400
|
},
|
|
383
401
|
});
|
|
384
402
|
return ptree;
|
|
385
|
-
}
|
|
386
|
-
|
|
403
|
+
}
|
|
404
|
+
parseEmbelishment(value) {
|
|
387
405
|
return carnatic.parseEmbelishment(value);
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
}());
|
|
391
|
-
export { Parser };
|
|
392
|
-
var templateObject_1;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
393
408
|
//# sourceMappingURL=parser.js.map
|