From 500c18fe65e6b2b9c0d6dc0064fd4c46d6c63d13 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EB=B0=95=EC=A2=85=ED=98=84/On-Device=20Lab=28SR=29/Staff?= =?utf8?q?=20Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Fri, 2 Aug 2019 17:08:34 +0900 Subject: [PATCH] [locop] Extract NodeSummaryBuilder (#6150) This commit introduces a new header file dedicated to NodeSummaryBuilder and NodeSummaryBuilderFactory classes. Signed-off-by: Jonghyun Park --- compiler/locop/include/locop/FormattedGraph.h | 18 +-------- compiler/locop/include/locop/NodeSummaryBuilder.h | 47 +++++++++++++++++++++++ compiler/locop/src/NodeSummaryBuilder.cpp | 21 ++++++++++ 3 files changed, 69 insertions(+), 17 deletions(-) create mode 100644 compiler/locop/include/locop/NodeSummaryBuilder.h create mode 100644 compiler/locop/src/NodeSummaryBuilder.cpp diff --git a/compiler/locop/include/locop/FormattedGraph.h b/compiler/locop/include/locop/FormattedGraph.h index c0f5b5e..3de2936 100644 --- a/compiler/locop/include/locop/FormattedGraph.h +++ b/compiler/locop/include/locop/FormattedGraph.h @@ -19,6 +19,7 @@ #include "locop/SymbolTable.h" #include "locop/NodeSummary.h" +#include "locop/NodeSummaryBuilder.h" #include @@ -31,23 +32,6 @@ namespace locop { /** - * @brief Build a summary from loco Node - */ -struct NodeSummaryBuilder -{ - virtual ~NodeSummaryBuilder() = default; - - virtual bool build(const loco::Node *, NodeSummary &) const = 0; -}; - -struct NodeSummaryBuilderFactory -{ - virtual ~NodeSummaryBuilderFactory() = default; - - virtual std::unique_ptr create(const SymbolTable *) const = 0; -}; - -/** * @brief Built-in Node Summary Builder for Canonical Dialect */ class CanonicalNodeSummaryBuilder final : public NodeSummaryBuilder diff --git a/compiler/locop/include/locop/NodeSummaryBuilder.h b/compiler/locop/include/locop/NodeSummaryBuilder.h new file mode 100644 index 0000000..b84bc71 --- /dev/null +++ b/compiler/locop/include/locop/NodeSummaryBuilder.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved + * + * 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. + */ + +#ifndef __LOCOP_NODE_SUMMARY_BUILDER_H__ +#define __LOCOP_NODE_SUMMARY_BUILDER_H__ + +#include "locop/SymbolTable.h" +#include "locop/NodeSummary.h" + +#include + +namespace locop +{ + +/** + * @brief Build a summary from loco Node + */ +struct NodeSummaryBuilder +{ + virtual ~NodeSummaryBuilder() = default; + + virtual bool build(const loco::Node *, NodeSummary &) const = 0; +}; + +struct NodeSummaryBuilderFactory +{ + virtual ~NodeSummaryBuilderFactory() = default; + + virtual std::unique_ptr create(const SymbolTable *) const = 0; +}; + +} // namespace locop + +#endif // __LOCOP_NODE_SUMMARY_BUILDER_H__ diff --git a/compiler/locop/src/NodeSummaryBuilder.cpp b/compiler/locop/src/NodeSummaryBuilder.cpp new file mode 100644 index 0000000..6610bf7 --- /dev/null +++ b/compiler/locop/src/NodeSummaryBuilder.cpp @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved + * + * 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. + */ + +#include "locop/NodeSummaryBuilder.h" + +// This file checks whether "NodeSummaryBuilder.h" is self-complete or not. +// +// WARNING!! Do NOT remove this file. -- 2.7.4