File tree Expand file tree Collapse file tree 14 files changed +238
-77
lines changed Expand file tree Collapse file tree 14 files changed +238
-77
lines changed Original file line number Diff line number Diff line change 55
66 - Remove support for CR as a line ending. (#154 )
77
8+ - Restrict ` VariantKey ` to ` NumberLiteral ` and ` Identifier ` . (#127 )
9+
10+ The ` VariantName ` AST node has been removed
11+
812## 0.6.0 (July 24, 2018)
913
1014 - Created the reference parser for Fluent Syntax.
Original file line number Diff line number Diff line change @@ -77,18 +77,14 @@ SelectExpression ::= InlineExpression blank? "->" blank_inline? variant_list
7777variant_list ::= Variant * DefaultVariant Variant * line_end
7878Variant ::= line_end blank ? VariantKey blank_inline ? Value
7979DefaultVariant ::= line_end blank ? " *" VariantKey blank_inline ? Value
80- VariantKey ::= " [" blank ? (NumberLiteral | VariantName ) blank ? " ]"
81- VariantName ::= word (blank word )*
80+ VariantKey ::= " [" blank ? (NumberLiteral | Identifier ) blank ? " ]"
8281
8382/* Identifiers */
8483Identifier ::= identifier
8584TermIdentifier ::= " -" identifier
8685VariableIdentifier ::= " $" identifier
8786Function ::= [A-Z ] [A-Z_ ? - ]*
88-
89- /* Tokens */
9087identifier ::= [a-zA-Z ] [a-zA-Z0-9_- ]*
91- word ::= (regular_char - backslash - " }" - " {" - " ]" - " [" - " =" )+
9288
9389/* Characters */
9490backslash ::= " \\"
Original file line number Diff line number Diff line change @@ -194,13 +194,6 @@ export class Identifier extends SyntaxNode {
194194 }
195195}
196196
197- export class VariantName extends Identifier {
198- constructor ( name ) {
199- super ( name ) ;
200- this . type = "VariantName" ;
201- }
202- }
203-
204197export class BaseComment extends Entry {
205198 constructor ( content ) {
206199 super ( ) ;
Original file line number Diff line number Diff line change @@ -335,22 +335,11 @@ let VariantKey = defer(() =>
335335 maybe ( blank ) ,
336336 either (
337337 NumberLiteral ,
338- VariantName ) ,
338+ Identifier ) ,
339339 maybe ( blank ) ,
340340 string ( "]" ) )
341341 . map ( element_at ( 2 ) ) ) ;
342342
343- let VariantName = defer ( ( ) =>
344- sequence (
345- word ,
346- repeat (
347- sequence (
348- blank ,
349- word ) ) )
350- . map ( flatten ( 2 ) )
351- . map ( join )
352- . chain ( into ( FTL . VariantName ) ) ) ;
353-
354343/* ----------- */
355344/* Identifiers */
356345
@@ -380,8 +369,6 @@ let Function =
380369 . map ( join )
381370 . chain ( into ( FTL . Function ) ) ;
382371
383- /* ------ */
384- /* Tokens */
385372let identifier =
386373 sequence (
387374 charset ( "a-zA-Z" ) ,
@@ -390,18 +377,6 @@ let identifier =
390377 . map ( flatten ( 1 ) )
391378 . map ( join ) ;
392379
393- let word = defer ( ( ) =>
394- repeat1 (
395- and (
396- not ( string ( "=" ) ) ,
397- not ( string ( "[" ) ) ,
398- not ( string ( "]" ) ) ,
399- not ( string ( "{" ) ) ,
400- not ( string ( "}" ) ) ,
401- not ( backslash ) ,
402- regular_char ) )
403- . map ( join ) ) ;
404-
405380/* ---------- */
406381/* Characters */
407382
Original file line number Diff line number Diff line change 350350 {
351351 "type" : " Variant" ,
352352 "key" : {
353- "type" : " VariantName " ,
353+ "type" : " Identifier " ,
354354 "name" : " one"
355355 },
356356 "value" : {
367367 {
368368 "type" : " Variant" ,
369369 "key" : {
370- "type" : " VariantName " ,
370+ "type" : " Identifier " ,
371371 "name" : " other"
372372 },
373373 "value" : {
Original file line number Diff line number Diff line change 2222 }
2323 },
2424 "key" : {
25- "type" : " VariantName " ,
25+ "type" : " Identifier " ,
2626 "name" : " case"
2727 }
2828 }
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ new-messages =
66
77valid-selector =
88 { -term .case ->
9- *[ many words ] value
9+ *[ key ] value
1010 }
1111
1212# ERROR
Original file line number Diff line number Diff line change 4444 {
4545 "type" : " Variant" ,
4646 "key" : {
47- "type" : " VariantName " ,
47+ "type" : " Identifier " ,
4848 "name" : " other"
4949 },
5050 "value" : {
104104 {
105105 "type" : " Variant" ,
106106 "key" : {
107- "type" : " VariantName " ,
108- "name" : " many words "
107+ "type" : " Identifier " ,
108+ "name" : " key "
109109 },
110110 "value" : {
111111 "type" : " Pattern" ,
156156 {
157157 "type" : " Variant" ,
158158 "key" : {
159- "type" : " VariantName " ,
159+ "type" : " Identifier " ,
160160 "name" : " one"
161161 },
162162 "value" : {
202202 {
203203 "type" : " Variant" ,
204204 "key" : {
205- "type" : " VariantName " ,
205+ "type" : " Identifier " ,
206206 "name" : " one"
207207 },
208208 "value" : {
220220 {
221221 "type" : " Variant" ,
222222 "key" : {
223- "type" : " VariantName " ,
223+ "type" : " Identifier " ,
224224 "name" : " two"
225225 },
226226 "value" : {
Original file line number Diff line number Diff line change 2525 {
2626 "type" : " Variant" ,
2727 "key" : {
28- "type" : " VariantName " ,
28+ "type" : " Identifier " ,
2929 "name" : " key"
3030 },
3131 "value" : {
7171 {
7272 "type" : " Variant" ,
7373 "key" : {
74- "type" : " VariantName " ,
74+ "type" : " Identifier " ,
7575 "name" : " key"
7676 },
7777 "value" : {
117117 {
118118 "type" : " Variant" ,
119119 "key" : {
120- "type" : " VariantName " ,
120+ "type" : " Identifier " ,
121121 "name" : " key"
122122 },
123123 "value" : {
163163 {
164164 "type" : " Variant" ,
165165 "key" : {
166- "type" : " VariantName " ,
166+ "type" : " Identifier " ,
167167 "name" : " key"
168168 },
169169 "value" : {
209209 {
210210 "type" : " Variant" ,
211211 "key" : {
212- "type" : " VariantName " ,
212+ "type" : " Identifier " ,
213213 "name" : " key"
214214 },
215215 "value" : {
255255 {
256256 "type" : " Variant" ,
257257 "key" : {
258- "type" : " VariantName " ,
258+ "type" : " Identifier " ,
259259 "name" : " key"
260260 },
261261 "value" : {
301301 {
302302 "type" : " Variant" ,
303303 "key" : {
304- "type" : " VariantName " ,
304+ "type" : " Identifier " ,
305305 "name" : " key"
306306 },
307307 "value" : {
347347 {
348348 "type" : " Variant" ,
349349 "key" : {
350- "type" : " VariantName " ,
350+ "type" : " Identifier " ,
351351 "name" : " key"
352352 },
353353 "value" : {
393393 {
394394 "type" : " Variant" ,
395395 "key" : {
396- "type" : " VariantName " ,
396+ "type" : " Identifier " ,
397397 "name" : " key"
398398 },
399399 "value" : {
439439 {
440440 "type" : " Variant" ,
441441 "key" : {
442- "type" : " VariantName " ,
442+ "type" : " Identifier " ,
443443 "name" : " key"
444444 },
445445 "value" : {
456456 {
457457 "type" : " Variant" ,
458458 "key" : {
459- "type" : " VariantName " ,
459+ "type" : " Identifier " ,
460460 "name" : " other"
461461 },
462462 "value" : {
502502 {
503503 "type" : " Variant" ,
504504 "key" : {
505- "type" : " VariantName " ,
505+ "type" : " Identifier " ,
506506 "name" : " key"
507507 },
508508 "value" : {
519519 {
520520 "type" : " Variant" ,
521521 "key" : {
522- "type" : " VariantName " ,
522+ "type" : " Identifier " ,
523523 "name" : " other"
524524 },
525525 "value" : {
574574 {
575575 "type" : " Variant" ,
576576 "key" : {
577- "type" : " VariantName " ,
577+ "type" : " Identifier " ,
578578 "name" : " key"
579579 },
580580 "value" : {
591591 {
592592 "type" : " Variant" ,
593593 "key" : {
594- "type" : " VariantName " ,
594+ "type" : " Identifier " ,
595595 "name" : " other"
596596 },
597597 "value" : {
637637 {
638638 "type" : " Variant" ,
639639 "key" : {
640- "type" : " VariantName " ,
640+ "type" : " Identifier " ,
641641 "name" : " key"
642642 },
643643 "value" : {
654654 {
655655 "type" : " Variant" ,
656656 "key" : {
657- "type" : " VariantName " ,
657+ "type" : " Identifier " ,
658658 "name" : " other"
659659 },
660660 "value" : {
Original file line number Diff line number Diff line change 120120 {
121121 "type" : " Variant" ,
122122 "key" : {
123- "type" : " VariantName " ,
123+ "type" : " Identifier " ,
124124 "name" : " one"
125125 },
126126 "value" : {
137137 {
138138 "type" : " Variant" ,
139139 "key" : {
140- "type" : " VariantName " ,
140+ "type" : " Identifier " ,
141141 "name" : " two"
142142 },
143143 "value" : {
You can’t perform that action at this time.
0 commit comments