| #include "image_io/xml/xml_attribute_rule.h" |
| |
| #include "image_io/xml/xml_handler.h" |
| #include "image_io/xml/xml_token_context.h" |
| |
| namespace photos_editing_formats { |
| namespace image_io { |
| |
| XmlAttributeRule::XmlAttributeRule() : XmlRule("Attribute") { |
| // S? Name S? = S? 'Value' |
| AddOptionalWhitespaceTerminal(); |
| AddNameTerminal().WithAction( |
| [&](const XmlActionContext& context) { return HandleName(context); }); |
| AddOptionalWhitespaceTerminal(); |
| AddLiteralTerminal("="); |
| AddOptionalWhitespaceTerminal(); |
| AddQuotedStringTerminal().WithAction( |
| [&](const XmlActionContext& context) { return HandleValue(context); }); |
| } |
| |
| DataMatchResult XmlAttributeRule::HandleName(const XmlActionContext& context) { |
| XmlTokenContext token_context(context); |
| return context.GetHandler()->AttributeName(token_context); |
| } |
| |
| DataMatchResult XmlAttributeRule::HandleValue(const XmlActionContext& context) { |
| XmlTokenContext token_context(context); |
| return context.GetHandler()->AttributeValue(token_context); |
| } |
| |
| } // namespace image_io |
| } // namespace photos_editing_formats |