Packages
ex_cldr_numbers
2.13.1
2.38.3
2.38.2
2.38.1
2.38.0
2.37.0
2.36.0
2.35.2
2.35.1
2.35.0
2.34.1
2.34.0
2.33.6
2.33.5
2.33.4
2.33.3
2.33.2
2.33.1
2.33.0
2.32.4
2.32.3
2.32.2
2.32.1
2.32.0
retired
2.31.3
retired
2.31.2
2.31.1
2.31.0
2.30.1
2.30.0
2.29.0
2.28.0
2.27.3
2.27.2
2.27.1
2.27.0
2.26.0
2.25.2
2.25.1
2.25.0
2.24.0
2.23.3
2.23.2
2.23.1
2.23.0
2.23.0-rc.4
2.23.0-rc.3
2.23.0-rc.2
2.23.0-rc.1
2.23.0-rc.0
2.22.1
2.22.0
2.21.0
2.20.0
2.19.0
2.18.4
2.18.3
2.18.2
2.18.1
2.18.0
2.17.0
2.17.0-rc.1
2.17.0-rc.0
2.16.1
2.16.0
2.16.0-rc.0
2.15.4
2.15.3
2.15.2
2.15.1
2.15.0
2.14.0
2.13.2
2.13.1
2.13.0
2.13.0-rc.0
2.12.1
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.2
2.7.1
2.7.0
2.6.4
2.6.3
2.6.2
2.6.1
2.6.0
2.5.0
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.0
2.2.0
2.1.1
2.1.0
2.0.0
2.0.0-rc.0
1.6.0
1.5.2
1.5.1
1.5.0
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.1
1.3.0
1.3.0-rc.1
1.3.0-rc.0
retired
1.2.0
1.1.0
1.0.1
1.0.0
1.0.0-rc.0
retired
0.3.3
0.3.2
retired
0.3.1
retired
0.3.0
retired
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
Number and currency localization and formatting functions for the Common Locale Data Repository (CLDR).
Current section
Files
Jump to
Current section
Files
src/rbnf_lexer.xrl
% Lexer for the ICU/CLDR Rule Based Number Formatting rule definitions.
% Step 1 is to read in the json rule set.
% Then for each ruleset, pass each rule to the parser in two parts:
% First the rule name
% THen the rule definition
%
% Can be invoked in elixir as:
%
% iex> :rbnf.string(rules_set_as_a_char_list)
%
Definitions.
Rule_cardinal_start = (cardinal)
Rule_ordinal_start = (ordinal)
Plural_rules = (zero\{.+\})?(one\{.+\})?(two\{.+\})?(few\{.+\})?(many\{.+\})?(other\{.+\})?
Rule_name = (%[%a-zA-Z0-9\-]+)
Number_format = ([0#]([0#,]+)?)(\.([0#]+))?([eE]([-+]?[0#]+))?
Conditional_start = \[
Conditional_end = \]
Left_paren = \(
Right_paren = \)
Greater_than = [→>]
Less_than = [←<]
Equals = =
Dollar = \$
Semicolon = ;
Comma = ,
Char = .
Rules.
% This part is for the definitions.
{Rule_cardinal_start} : {token,{rule_cardinal_start,TokenLine,TokenChars}}.
{Rule_ordinal_start} : {token,{rule_ordinal_start,TokenLine,TokenChars}}.
{Number_format} : {token,{number_format,TokenLine,TokenChars}}.
{Rule_name} : {token,{rule_name,TokenLine,TokenChars}}.
{Conditional_start} : {token,{conditional_start,TokenLine,TokenChars}}.
{Conditional_end} : {token,{conditional_end,TokenLine,TokenChars}}.
{Greater_than} : {token,{modulo_call,TokenLine,TokenChars}}.
{Less_than} : {token,{quotient_call,TokenLine,TokenChars}}.
{Equals} : {token,{rule_call,TokenLine,TokenChars}}.
{Semicolon} : {token,{rule_end,TokenLine,TokenChars}}.
{Plural_rules} : {token,{plural_rules,TokenLine,TokenChars}}.
{Right_paren} : {token,{right_paren,TokenLine,TokenChars}}.
{Left_paren} : {token,{left_paren,TokenLine,TokenChars}}.
{Dollar} : {token,{dollar,TokenLine,TokenChars}}.
{Comma} : {token,{comma,TokenLine,TokenChars}}.
{Char} : {token,{char,TokenLine,TokenChars}}.
Erlang code.