diff options
author | Vincent Ulitzsch <vincent.ulitzsch@live.de> | 2019-12-13 20:07:39 +0100 |
---|---|---|
committer | jonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com> | 2019-12-13 11:07:39 -0800 |
commit | 7abdcd9b8fde67ac219713d467ce75ce8537c3d3 (patch) | |
tree | f3f3236dbaebf7129aacd324b6333b2f962f8e78 /projects/xerces-c/xmlProtoConverter.h | |
parent | b03bc0945de65e7b811eab12a3680eca42640e35 (diff) | |
download | oss-fuzz-7abdcd9b8fde67ac219713d467ce75ce8537c3d3.tar.gz |
Add initial integration xerces-c (#3083)
Diffstat (limited to 'projects/xerces-c/xmlProtoConverter.h')
-rw-r--r-- | projects/xerces-c/xmlProtoConverter.h | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/projects/xerces-c/xmlProtoConverter.h b/projects/xerces-c/xmlProtoConverter.h new file mode 100644 index 000000000..a6333f1b3 --- /dev/null +++ b/projects/xerces-c/xmlProtoConverter.h @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2019 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include <sstream> + +#include "xml.pb.h" + +namespace xmlProtoFuzzer { +class ProtoConverter +{ +public: + ProtoConverter() = default; + + ProtoConverter(ProtoConverter const&) = delete; + + ProtoConverter(ProtoConverter&&) = delete; + + std::string protoToString(XmlDocument const&); + +private: + void visit(Prolog const&); + + void visit(ProcessingInstruction const&); + + void visit(ExternalId const&); + + void visit(DocTypeDecl const&); + + void visit(VersionNum const&); + + void visit(Encodings const&); + + void visit(Misc const&); + + void visit(KeyValue const&); + + void visit(Element const&); + + void visit(ElementDecl const&); + + void visit(AttValue const&); + + void visit(DefaultDecl const&); + + void visit(AttDef const&); + + void visit(AttListDecl const&); + + void visit(NotationDecl const&); + + void visit(EntityDecl const&); + + void visit(EntityValue const&); + + void visit(EntityDef const&); + + void visit(PEDef const&); + + void visit(NDataDecl const&); + + void visit(ConditionalSect const&); + + void visit(OneExtSubsetDecl const&); + + void visit(ExtSubsetDecl const&); + + void visit(MarkupDecl const&); + + void visit(CData const&); + + void visit(Content const&); + + void visit(XmlDeclaration const&); + + void visit(XmlDocument const&); + + std::string removeNonAscii(std::string const&); + std::string getUri(Element_Id _x); + std::string getPredefined(Element_Id _x, std::string const&); + + std::ostringstream m_output; + + static constexpr auto s_XInclude = "xmlns:xi=\"http://www.w3.org/2001/XInclude\""; +}; +} + |