CedarPattern.parse constructor
CedarPattern.parse(
- String pattern
Implementation
factory CedarPattern.parse(String pattern) {
final components = <Object?>[];
final jsonComponents = <Object?>[];
final scanner = StringScanner(pattern);
while (!scanner.isDone) {
while (!scanner.isDone && scanner.peekChar() == Character.star) {
scanner.readChar();
components.add(const Wildcard());
jsonComponents.add('Wildcard');
}
final literal = scanner.readUnquoted(star: true);
if (literal.isNotEmpty) {
components.add(Literal(literal));
for (final rune in literal.runes) {
jsonComponents.add({'Literal': String.fromCharCode(rune)});
}
}
}
return CedarPattern.from(
components,
raw: pattern,
jsonForm: jsonComponents,
);
}