Skip to content

Commit 0d33fee

Browse files
authored
Merge pull request #13 from stasm/1-one-default-member
Fix #1. Require one variant to be default.
2 parents c58ec81 + 35d6ebe commit 0d33fee

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

fluent.ebnf

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@ variable ::= '$' identifier;
1515
keyword ::= [a-zA-Z_.?-] ([a-zA-Z0-9_.?- ]* [a-zA-Z0-9_.?-])?;
1616
builtin ::= [A-Z_.?-]+;
1717
number ::= [0-9]+ ('.' [0-9]+)?;
18-
member ::= __ '*'? '[' member-key ']' __ pattern NL;
18+
1919
member-key ::= number | (identifier '/')? keyword;
20-
member-list ::= NL member+;
20+
member ::= '[' member-key ']' __ pattern NL;
21+
default-member ::= '*' member;
22+
variants-list ::= NL (__ member)* __ default-member (__ member)*;
23+
traits-list ::= variants-list | NL (__ member)+;
2124
22-
message ::= identifier __ '=' __ (pattern | pattern member-list | member-list);
25+
message ::= identifier __ '=' __ (pattern | pattern traits-list | traits-list);
2326
pattern ::= unquoted-pattern
2427
| quoted-pattern
2528
;
@@ -41,7 +44,7 @@ expression ::= quoted-pattern
4144
| call-expression
4245
| member-expression
4346
;
44-
select-expression ::= expression __ ' ->' __ member-list;
47+
select-expression ::= expression __ ' ->' __ variants-list;
4548
call-expression ::= builtin '(' __ arglist? __ ')';
4649
arglist ::= argument (__ ',' __ arglist)?;
4750
argument ::= expression

guide.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ Selectors
151151

152152
emails = { $unreadEmails ->
153153
[one] You have one unread email.
154-
[other] You have { $unreadEmails } unread emails.
154+
*[other] You have { $unreadEmails } unread emails.
155155
}
156156

157157
::

0 commit comments

Comments
 (0)