Expand description
AST
provides a set of Syntax Tree Nodes used to store
the output of parse
method that is used in test_condition
method
to evaluate whether a given PluralCategory
should be used.
🚧 This code is considered unstable; it may change at any time, in breaking or non-breaking ways,
including in SemVer minor releases. In particular, the `DataProvider` implementations are only
guaranteed to match with this version's `*_unstable` providers. Use with caution.
§Examples
use icu::plurals::provider::rules::reference::ast::*;
use icu::plurals::provider::rules::reference::parse_condition;
let input = "i = 1";
let ast = parse_condition(input.as_bytes()).expect("Parsing failed.");
assert_eq!(
ast,
Condition(vec![AndCondition(vec![Relation {
expression: Expression {
operand: Operand::I,
modulus: None,
},
operator: Operator::Eq,
range_list: RangeList(vec![RangeListItem::Value(Value(1))])
}])])
);
Structs§
- An incomplete AST representation of a plural rule. Comprises a vector of
Relations
. - A complete AST representation of a plural rule’s condition. Comprises a vector of
AndConditions
. - A decimal value used in samples.
- An incomplete AST representation of a plural rule. Comprises an
Operand
and an optional modulo. - An incomplete AST representation of a plural rule. Comprises a vector of
RangeListItems
. - An incomplete AST representation of a plural rule. Comprises an
Expression
, anOperator
, and aRangeList
. - A complete AST representation of a plural rule. Comprises a vector of
AndConditions
and optionally a set ofSamples
. - A list of values used in samples.
- A value range used in samples.
- A sample of example values that match the given rule.
- An incomplete AST representation of a plural rule, representing one integer.