diff options
author | Xin Li <delphij@google.com> | 2023-10-05 15:39:05 -0700 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2023-10-05 15:39:05 -0700 |
commit | 5c3d890abd469dbb4c95ee4f60a571ac825f18cb (patch) | |
tree | e6bc18176b3a70a107c41e1802ae6335640689d0 /src/xml/xml_pi_rule.cc | |
parent | 3ca31188d70c72e2879f70fdf52d95e37e1fefea (diff) | |
parent | 278c52dc5965a73a985cc5ec9d801e05c5521981 (diff) | |
download | image_io-5c3d890abd469dbb4c95ee4f60a571ac825f18cb.tar.gz |
Merge Android 14
Bug: 298295554
Merged-In: I2087549f00883c6ce2a3d9833cff5fde547afaf1
Change-Id: I417c7c8a9d6ba2d8dd017216ac1f3a1f4114f7f2
Diffstat (limited to 'src/xml/xml_pi_rule.cc')
-rw-r--r-- | src/xml/xml_pi_rule.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/xml/xml_pi_rule.cc b/src/xml/xml_pi_rule.cc new file mode 100644 index 0000000..071b8fd --- /dev/null +++ b/src/xml/xml_pi_rule.cc @@ -0,0 +1,28 @@ +#include "image_io/xml/xml_pi_rule.h" + +#include "image_io/xml/xml_handler.h" +#include "image_io/xml/xml_token_context.h" + +namespace photos_editing_formats { +namespace image_io { + +XmlPiRule::XmlPiRule() : XmlPiRule(kFirstStartPoint) {} + +XmlPiRule::XmlPiRule(XmlRule::StartPoint start_point) : XmlRule("PI") { + // <? ... ?> + AddLiteralTerminal("<?"); + AddThroughLiteralTerminal("?>").WithAction( + [&](const XmlActionContext& context) { return HandlePiValue(context); }); + if (start_point == kSecondStartPoint) { + SetTerminalIndex(1); + } +} + +DataMatchResult XmlPiRule::HandlePiValue(const XmlActionContext& context) { + XmlTokenContext token_context(context); + DataMatchResult result = context.GetHandler()->Pi(token_context); + return result; +} + +} // namespace image_io +} // namespace photos_editing_formats |