yapp 5.1.19 → 5.1.21

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.
Files changed (89) hide show
  1. package/example.js +5 -5
  2. package/lib/colours.js +1 -1
  3. package/lib/constants.js +1 -1
  4. package/lib/customEventTypes.js +1 -1
  5. package/lib/defaults.js +1 -1
  6. package/lib/div/gutter.js +1 -1
  7. package/lib/div/lineNumbers.js +1 -1
  8. package/lib/div/pretty.js +1 -1
  9. package/lib/div/syntax.js +1 -1
  10. package/lib/example/constants.js +1 -1
  11. package/lib/example/view/div/sizeable/left.js +1 -1
  12. package/lib/example/view/div/sizeable/middle.js +1 -1
  13. package/lib/example/view/div/sizeable/right.js +1 -1
  14. package/lib/example/view/div/sizeable/top.js +1 -1
  15. package/lib/example/view/input.js +1 -1
  16. package/lib/example/view/javascript.js +1 -1
  17. package/lib/example/view/json.js +1 -1
  18. package/lib/example/view/plainText.js +1 -1
  19. package/lib/example/view/subHeading.js +1 -1
  20. package/lib/example/view/textarea/bnf.js +1 -1
  21. package/lib/example/view/textarea/lexicalEntries.js +1 -1
  22. package/lib/example/view/textarea/parseTree.js +1 -1
  23. package/lib/example/view/textarea/tokens.js +1 -1
  24. package/lib/example/view/textarea.js +1 -1
  25. package/lib/example/view/xml.js +1 -1
  26. package/lib/example/view.js +1 -1
  27. package/lib/example/yapp.js +1 -1
  28. package/lib/example.js +1 -1
  29. package/lib/index.js +1 -1
  30. package/lib/languages.js +1 -1
  31. package/lib/lexer/javascript.js +1 -1
  32. package/lib/lexer/json.js +1 -1
  33. package/lib/lexer/plainText.js +1 -1
  34. package/lib/lexer/xml.js +1 -1
  35. package/lib/mixins/style.js +1 -1
  36. package/lib/parser/javascript.js +2 -2
  37. package/lib/parser/json.js +2 -2
  38. package/lib/parser/plainText.js +2 -2
  39. package/lib/parser/xml.js +2 -2
  40. package/lib/plugin/javascript.js +1 -1
  41. package/lib/plugin/json.js +1 -1
  42. package/lib/plugin/plainText.js +1 -1
  43. package/lib/plugin/xml.js +1 -1
  44. package/lib/plugin.js +1 -1
  45. package/lib/prettyPrinter.js +1 -1
  46. package/lib/processor/javascript.js +1 -1
  47. package/lib/processor/json.js +1 -1
  48. package/lib/processor/plainText.js +1 -1
  49. package/lib/processor/xml.js +1 -1
  50. package/lib/processor.js +1 -1
  51. package/lib/renderYappStyles.js +1 -1
  52. package/lib/richTextarea.js +1 -1
  53. package/lib/scheme/colour.js +1 -1
  54. package/lib/scheme/syntax/default.js +1 -1
  55. package/lib/scheme/syntax/javaScript.js +1 -1
  56. package/lib/scheme/syntax/json.js +1 -1
  57. package/lib/scheme/syntax/xml.js +1 -1
  58. package/lib/style/firaCode.js +1 -1
  59. package/lib/style/syntax/default.js +1 -1
  60. package/lib/style/syntax/javaScript.js +1 -1
  61. package/lib/style/syntax/json.js +1 -1
  62. package/lib/style/syntax/xml.js +1 -1
  63. package/lib/style/syntax.js +1 -1
  64. package/lib/style/yapp.js +1 -1
  65. package/lib/styles.js +1 -1
  66. package/lib/token/significant/argument.js +1 -1
  67. package/lib/token/significant/attribute.js +1 -1
  68. package/lib/token/significant/comment.js +1 -1
  69. package/lib/token/significant/error.js +1 -1
  70. package/lib/token/significant/jsx/attributeName.js +1 -1
  71. package/lib/token/significant/jsx/tagName.js +1 -1
  72. package/lib/token/significant/name.js +1 -1
  73. package/lib/token/significant/string.js +1 -1
  74. package/lib/token/significant/variable.js +1 -1
  75. package/lib/tokenTypes.js +1 -1
  76. package/lib/utilities/configuration.js +1 -1
  77. package/lib/utilities/content.js +1 -1
  78. package/lib/utilities/css.js +1 -1
  79. package/lib/utilities/element.js +1 -1
  80. package/lib/utilities/plugin.js +1 -1
  81. package/lib/utilities/rules.js +1 -1
  82. package/lib/utilities/scrollbar.js +1 -1
  83. package/lib/utilities/tokens.js +1 -1
  84. package/lib/yapp.js +1 -1
  85. package/package.json +1 -1
  86. package/src/parser/javascript.js +112 -124
  87. package/src/parser/json.js +7 -7
  88. package/src/parser/plainText.js +1 -1
  89. package/src/parser/xml.js +15 -15
@@ -8,276 +8,264 @@ const { rulesFromBNF, parserFromRules } = parserUtilities;
8
8
 
9
9
  const bnf = `
10
10
 
11
- document ::= preamble? ( statement | function | class | error )* ;
11
+ javaScript ::= preamble? ( statement | function | class | error )* ;
12
12
 
13
13
 
14
+ preamble ::= "\\"use strict\\";" ;
14
15
 
15
- preamble ::= "\\"use strict\\";" ;
16
16
 
17
-
18
-
19
- statement ::= statementBody... ";"
17
+ statement ::= statementBody... ";"
20
18
 
21
- | "{" ( statement | function )* "}"
19
+ | "{" ( statement | function )* "}"
22
20
 
23
- | "if" "(" expression... ")" statement ( "else" statement )?
21
+ | "if" "(" expression... ")" statement ( "else" statement )?
24
22
 
25
- | "for" ( ( "(" initialiser ( ";" expression )? ( ";" expression )? ")" statement )
23
+ | "for" ( ( "(" initialiser ( ";" expression )? ( ";" expression )? ")" statement )
26
24
 
27
- | ( "(" variable "in" expression... ")" statement )
25
+ | ( "(" variable "in" expression... ")" statement )
28
26
 
29
- | ( "await"? "(" variable "of" expression... ")" statement )
30
-
31
- )
27
+ | ( "await"? "(" variable "of" expression... ")" statement ) )
32
28
 
33
- | "do" statement "while" "(" expression... ")"
29
+ | "do" statement "while" "(" expression... ")"
34
30
 
35
- | "while" "(" expression... ")" statement
31
+ | "while" "(" expression... ")" statement
36
32
 
37
- | "switch" "(" expression... ")" "{" case* defaultCase? "}"
33
+ | "switch" "(" expression... ")" "{" case* defaultCase? "}"
38
34
 
39
- | try ( ( catch* finally ) | catch+ )
35
+ | try ( ( catch* finally ) | catch+ )
36
+
37
+ ;
40
38
 
41
- ;
42
-
43
-
44
-
45
39
 
46
- class ::= ( "export" "default"? )? "class" name classBody
40
+ class ::= ( "export" "default"? )? "class" name classBody
47
41
 
48
- | "export" "default" "class" classBody
42
+ | "export" "default" "class" classBody
49
43
 
50
- ;
44
+ ;
51
45
 
52
46
 
53
-
54
- function ::= ( "export" "default"? )? "async"? "function" name functionBody
47
+ function ::= ( "export" "default"? )? "async"? "function" name functionBody
55
48
 
56
- | "export" "default" "async"? "function" functionBody
57
-
58
- ;
49
+ | "export" "default" "async"? "function" functionBody
59
50
 
51
+ ;
60
52
 
61
53
 
62
- statementBody ::= "import" ( [string-literal]
54
+ statementBody ::= "import" ( [string-literal]
63
55
 
64
- | ( name "from" [string-literal] )
56
+ | ( name "from" [string-literal] )
65
57
 
66
- | ( "{" names "}" "from" [string-literal] )
58
+ | ( "{" names "}" "from" [string-literal] )
67
59
 
68
- | ( "*" "as" name "from" [string-literal] )
60
+ | ( "*" "as" name "from" [string-literal] ) )
69
61
 
70
- )
62
+ | "export" ( ( "{" names "}" ( "from" [string-literal] )? )
71
63
 
72
- | "export" ( ( "{" names "}" ( "from" [string-literal] )? )
64
+ | ( "const" "{" fields "}" "=" expression )
73
65
 
74
- | ( "const" "{" fields "}" "=" expression )
66
+ | ( "{" "default" "}" "from" [string-literal] )
75
67
 
76
- | ( "{" "default" "}" "from" [string-literal] )
68
+ | ( "*" ( "as" name )? "from" [string-literal] ) )
77
69
 
78
- | ( "*" ( "as" name )? "from" [string-literal] )
70
+ | "export"? ( ( "var" var ( "," var )* )
79
71
 
80
- )
72
+ | ( "let" let ( "," let )* )
81
73
 
82
- | "export"? ( ( "var" var ( "," var )* )
83
-
84
- | ( "let" let ( "," let )* )
85
-
86
- | ( "const" const ( "," const )* )
87
-
88
- )
74
+ | ( "const" const ( "," const )* ) )
89
75
 
90
- | ( "export" "default" )? expression
76
+ | ( "export" "default" )? expression
91
77
 
92
- | "return" ( ( "(" expression ")" ) | expression? )
78
+ | "return" ( ( "(" expression ")" ) | expression? )
93
79
 
94
- | "throw" expression
80
+ | "throw" expression
95
81
 
96
- | "delete" expression
82
+ | "delete" expression
97
83
 
98
- | "break"
84
+ | "break"
99
85
 
100
- | "continue"
86
+ | "continue"
101
87
 
102
- | "debugger"
88
+ | "debugger"
103
89
 
104
- ;
90
+ ;
105
91
 
106
92
 
93
+ functionBody ::= "(" arguments? ")" "{" ( statement | function )* "}" ;
107
94
 
108
- functionBody ::= "(" arguments? ")" "{" ( statement | function )* "}" ;
109
95
 
96
+ classBody ::= ( "extends" name )? "{" ( constructor | method | field )* "}" ;
110
97
 
111
98
 
112
- classBody ::= ( "extends" name )? "{" ( constructor | method | field )* "}" ;
99
+ constructor ::= "constructor" functionBody ;
113
100
 
114
101
 
102
+ method ::= "static"? name functionBody ;
115
103
 
116
- constructor ::= "constructor" functionBody ;
117
104
 
118
- method ::= "static"? name functionBody ;
105
+ field ::= "static"? name "=" expression... ";" ;
119
106
 
120
- field ::= "static"? name "=" expression... ";" ;
121
107
 
108
+ var ::= variable ( "=" expression )? | destructure "=" expression ;
122
109
 
123
110
 
124
- var ::= variable ( "=" expression )? | destructure "=" expression ;
111
+ let ::= variable ( "=" expression )? | destructure "=" expression ;
125
112
 
126
- let ::= variable ( "=" expression )? | destructure "=" expression ;
127
113
 
128
- const ::= ( variable | destructure ) "=" expression ;
114
+ const ::= ( variable | destructure ) "=" expression ;
129
115
 
130
116
 
117
+ try ::= "try" "{" statement+ "}" ;
131
118
 
132
- try ::= "try" "{" statement+ "}" ;
133
119
 
134
- catch ::= "catch" "(" [identifier] ")" "{" statement+ "}" ;
120
+ catch ::= "catch" "(" [identifier] ")" "{" statement+ "}" ;
135
121
 
136
- finally ::= "finally" "{" statement+ "}" ;
137
122
 
123
+ finally ::= "finally" "{" statement+ "}" ;
138
124
 
139
125
 
140
- case ::= "case" expression ":" statement ( "break" ";" )? ;
126
+ case ::= "case" expression ":" statement ( "break" ";" )? ;
141
127
 
142
- defaultCase ::= "default" ":" statement ( "break" ";" )? ;
143
128
 
129
+ defaultCase ::= "default" ":" statement ( "break" ";" )? ;
144
130
 
145
131
 
146
- initialiser ::= expression | "var" var ( "," var )* | "let" let ( "," let )* ;
132
+ initialiser ::= expression | "var" var ( "," var )* | "let" let ( "," let )* ;
147
133
 
148
134
 
135
+ destructure ::= "[" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "]"
149
136
 
150
- destructure ::= "[" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "]"
137
+ | "{" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "}"
151
138
 
152
- | "{" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "}"
139
+ ;
153
140
 
154
- ;
155
141
 
142
+ expression ::= jsx
156
143
 
144
+ | json
157
145
 
158
- expression ::= jsx
146
+ | arrowFunction
159
147
 
160
- | json
148
+ | templateLiteral
161
149
 
162
- | arrowFunction
150
+ | anonymousFunction
163
151
 
164
- | templateLiteral
152
+ | "(" expression ")"
165
153
 
166
- | anonymousFunction
154
+ | "{" ( property ( "," property )* )? "}"
167
155
 
168
- | "(" expression ")"
156
+ | "[" ( expression ( "," expression )* ","? )? "]"
169
157
 
170
- | "{" ( property ( "," property )* )? "}"
158
+ | "typeof" ( expression | ( "(" expression ")") )
171
159
 
172
- | "[" ( expression ( "," expression )* ","? )? "]"
160
+ | "void" ( expression | ( "(" expression ")") )
173
161
 
174
- | "typeof" ( expression | ( "(" expression ")") )
162
+ | "new" name<NO_WHITESPACE>"(" expressions? ")"
175
163
 
176
- | "void" ( expression | ( "(" expression ")") )
164
+ | [operator]<NO_WHITESPACE>expression
177
165
 
178
- | "new" name<NO_WHITESPACE>"(" expressions? ")"
166
+ | expression<NO_WHITESPACE>( ( "."<NO_WHITESPACE>name )
179
167
 
180
- | [operator]<NO_WHITESPACE>expression
168
+ | ( "[" expressions "]" )
181
169
 
182
- | expression<NO_WHITESPACE>( ( "."<NO_WHITESPACE>name )
170
+ | ( "(" expressions? ")" )
183
171
 
184
- | ( "[" expressions "]" )
172
+ | templateLiteral
185
173
 
186
- | ( "(" expressions? ")" )
174
+ | [operator] )
187
175
 
188
- | templateLiteral
176
+ | expression ( ( [operator] expression )
189
177
 
190
- | [operator]
178
+ | ( "?" expression ":" expression )
191
179
 
192
- )
180
+ | ( "instanceof" expression )
193
181
 
194
- | expression ( ( [operator] expression )
182
+ | ( "in" expression ) )
195
183
 
196
- | ( "?" expression ":" expression )
184
+ | [number]
197
185
 
198
- | ( "instanceof" expression )
186
+ | variable
199
187
 
200
- | ( "in" expression )
188
+ | primitive
201
189
 
202
- )
190
+ | importMeta
203
191
 
204
- | [number]
192
+ | [string-literal]
205
193
 
206
- | variable
194
+ | "super" | "this" | "true" | "false" | "null" | "undefined"
207
195
 
208
- | primitive
196
+ ;
209
197
 
210
- | importMeta
211
198
 
212
- | [string-literal]
199
+ jsx ::= jsxCompleteTag | jsxStartTag ( jsx | ( "{" expression? "}" ) | string )* jsxEndTag ;
213
200
 
214
- | "super" | "this" | "true" | "false" | "null" | "undefined"
215
201
 
216
- ;
202
+ jsxCompleteTag ::= "<"<NO_WHITESPACE>name jsxAttribute* "/>" ;
217
203
 
218
204
 
205
+ jsxStartTag ::= "<"<NO_WHITESPACE>name jsxAttribute* ">" ;
219
206
 
220
- jsx ::= jsxCompleteTag | jsxStartTag ( jsx | ( "{" expression? "}" ) | string )* jsxEndTag ;
221
207
 
222
- jsxCompleteTag ::= "<"<NO_WHITESPACE>name jsxAttribute* "/>" ;
208
+ jsxEndTag ::= "</"<NO_WHITESPACE>name ">" ;
223
209
 
224
- jsxStartTag ::= "<"<NO_WHITESPACE>name jsxAttribute* ">" ;
225
210
 
226
- jsxEndTag ::= "</"<NO_WHITESPACE>name ">" ;
211
+ jsxAttribute ::= name ( <NO_WHITESPACE>"=" ( ( <NO_WHITESPACE>[string-literal] ) | ( <NO_WHITESPACE>"{" expression "}" ) ) )? ;
227
212
 
228
- jsxAttribute ::= name ( <NO_WHITESPACE>"=" ( ( <NO_WHITESPACE>[string-literal] ) | ( <NO_WHITESPACE>"{" expression "}" ) ) )? ;
229
213
 
214
+ json ::= jsonArray | jsonObject ;
230
215
 
231
216
 
232
- json ::= jsonArray | jsonObject ;
217
+ jsonArray ::= "[" ( jsonElement ( "," jsonElement )* )? "]" ;
233
218
 
234
- jsonArray ::= "[" ( jsonElement ( "," jsonElement )* )? "]" ;
235
219
 
236
- jsonObject ::= "{" ( [string-literal] ":" jsonElement ( "," [string-literal] ":" jsonElement )* )? "}" ;
220
+ jsonObject ::= "{" ( [string-literal] ":" jsonElement ( "," [string-literal] ":" jsonElement )* )? "}" ;
237
221
 
238
- jsonElement ::= json | [string-literal] | [number] | "true" | "false" | "null" ;
239
222
 
223
+ jsonElement ::= json | [string-literal] | [number] | "true" | "false" | "null" ;
240
224
 
241
225
 
242
- arrowFunction ::= "(" arguments? ")" "=>" ( expression | ( "{" statement* "}" ) ) ;
226
+ arrowFunction ::= "(" arguments? ")" "=>" ( expression | ( "{" statement* "}" ) ) ;
243
227
 
244
228
 
229
+ templateLiteral ::= "\`" ( ( "\${" expression? "}" ) | string )* "\`" ;
230
+
245
231
 
246
- templateLiteral ::= "\`" ( ( "\${" expression? "}" ) | string )* "\`" ;
232
+ string ::= ( [number] | [special] | [operator]| [keyword] | [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;
247
233
 
248
234
 
235
+ property ::= ( ( ( name | [string-literal] ) ":" expression ) | variable ) ;
249
236
 
250
- string ::= ( [number] | [special] | [operator]| [keyword] | [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;
251
237
 
252
- property ::= ( ( ( name | [string-literal] ) ":" expression ) | variable ) ;
238
+ importMeta ::= "import"<NO_WHITESPACE>"."<NO_WHITESPACE>"meta" ;
253
239
 
254
- importMeta ::= "import"<NO_WHITESPACE>"."<NO_WHITESPACE>"meta" ;
255
240
 
241
+ expressions ::= expression ( "," expression )* ;
256
242
 
257
243
 
258
- expressions ::= expression ( "," expression )* ;
244
+ arguments ::= spreadArgument | ( argument ( "," argument )* ( "," spreadArgument )? ) ;
259
245
 
260
- arguments ::= spreadArgument | ( argument ( "," argument )* ( "," spreadArgument )? ) ;
261
246
 
262
- fields ::= name ( ":" name )? ( "," name ( ":" name )? )* ;
247
+ fields ::= name ( ":" name )? ( "," name ( ":" name )? )* ;
263
248
 
264
- names ::= name ( "as" name )? ( "," name ( "as" name )? )* ;
265
249
 
250
+ names ::= name ( "as" name )? ( "," name ( "as" name )? )* ;
266
251
 
267
252
 
268
- spreadArgument ::= "..."<NO_WHITESPACE>variable ;
253
+ spreadArgument ::= "..."<NO_WHITESPACE>variable ;
254
+
269
255
 
270
- argument ::= variable ( "=" expression )? ;
256
+ argument ::= variable ( "=" expression )? ;
257
+
258
+
259
+ variable ::= [identifier] ;
271
260
 
272
- variable ::= [identifier] ;
273
261
 
274
- label ::= [identifier] ;
262
+ label ::= [identifier] ;
275
263
 
276
- name ::= [identifier] ;
277
264
 
265
+ name ::= [identifier] ;
278
266
 
279
267
 
280
- error. ::= . ;
268
+ error. ::= . ;
281
269
 
282
270
  `;
283
271
 
@@ -7,23 +7,23 @@ const { rulesFromBNF, parserFromRules } = parserUtilities;
7
7
 
8
8
  const bnf = `
9
9
 
10
- document ::= element error*
10
+ json ::= element error*
11
11
 
12
- | error+
12
+ | error+
13
13
 
14
- ;
14
+ ;
15
15
 
16
16
 
17
- element ::= array | object | [string-literal] | [number] | "true" | "false" | "null" ;
17
+ element ::= array | object | [string-literal] | [number] | "true" | "false" | "null" ;
18
18
 
19
19
 
20
- object ::= "{" ( [string-literal] ":" element ( "," [string-literal] ":" element )* )? "}" ;
20
+ object ::= "{" ( [string-literal] ":" element ( "," [string-literal] ":" element )* )? "}" ;
21
21
 
22
22
 
23
- array ::= "[" ( element ( "," element )* )? "]" ;
23
+ array ::= "[" ( element ( "," element )* )? "]" ;
24
24
 
25
25
 
26
- error. ::= . ;
26
+ error. ::= . ;
27
27
 
28
28
  `,
29
29
  rules = rulesFromBNF(bnf);
@@ -7,7 +7,7 @@ const { rulesFromBNF, parserFromRules } = parserUtilities;
7
7
 
8
8
  const bnf = `
9
9
 
10
- document ::= .+ ;
10
+ plainText ::= .+ ;
11
11
 
12
12
  `,
13
13
  rules = rulesFromBNF(bnf);
package/src/parser/xml.js CHANGED
@@ -7,47 +7,47 @@ const { rulesFromBNF, parserFromRules } = parserUtilities;
7
7
 
8
8
  const bnf = `
9
9
 
10
- document ::= declaration? comment* ( simpleElement | complexElement ) comment* error*
10
+ xml ::= declaration? comment* ( simpleElement | complexElement ) comment* error*
11
11
 
12
- | error+
12
+ | error+
13
13
 
14
- ;
14
+ ;
15
15
 
16
16
 
17
- declaration ::= "<?"<NO_WHITESPACE>"xml" attribute* "?>" ;
17
+ declaration ::= "<?"<NO_WHITESPACE>"xml" attribute* "?>" ;
18
18
 
19
19
 
20
- element ::= comment | simpleElement | complexElement ;
20
+ element ::= comment | simpleElement | complexElement ;
21
21
 
22
22
 
23
- comment ::= "<!--" text* "-->" ;
23
+ comment ::= "<!--" text* "-->" ;
24
24
 
25
25
 
26
- simpleElement ::= completeTag ;
26
+ simpleElement ::= completeTag ;
27
27
 
28
28
 
29
- complexElement ::= startTag ( element | text )* endTag ;
29
+ complexElement ::= startTag ( element | text )* endTag ;
30
30
 
31
31
 
32
- completeTag ::= "<"<NO_WHITESPACE>name attribute* "/>" ;
32
+ completeTag ::= "<"<NO_WHITESPACE>name attribute* "/>" ;
33
33
 
34
34
 
35
- startTag ::= "<"<NO_WHITESPACE>name attribute* ">" ;
35
+ startTag ::= "<"<NO_WHITESPACE>name attribute* ">" ;
36
36
 
37
37
 
38
- endTag ::= "</"<NO_WHITESPACE>name ">" ;
38
+ endTag ::= "</"<NO_WHITESPACE>name ">" ;
39
39
 
40
40
 
41
- attribute ::= [identifier]<NO_WHITESPACE>"="<NO_WHITESPACE>[string-literal] ;
41
+ attribute ::= [identifier]<NO_WHITESPACE>"="<NO_WHITESPACE>[string-literal] ;
42
42
 
43
43
 
44
- text ::= ( [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;
44
+ text ::= ( [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;
45
45
 
46
46
 
47
- name ::= [identifier] ;
47
+ name ::= [identifier] ;
48
48
 
49
49
 
50
- error. ::= . ;
50
+ error. ::= . ;
51
51
 
52
52
  `,
53
53
  rules = rulesFromBNF(bnf);