| /* |
| Copyright 2019 Alain Dargelas |
| |
| 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. |
| */ |
| |
| /* |
| * File: VObject.cpp |
| * Author: alain |
| * |
| * Created on June 14, 2017, 10:58 PM |
| */ |
| #include <string> |
| #include "SourceCompile/SymbolTable.h" |
| #include "Design/VObject.h" |
| |
| using namespace SURELOG; |
| |
| VObject::~VObject() {} |
| |
| std::string VObject::print(SymbolTable* symbols, unsigned int uniqueId, |
| NodeId definitionFile) { |
| std::string text; |
| std::string symbol = symbols->getSymbol(m_name); |
| if (symbol == symbols->getBadSymbol()) { |
| text += "n<>"; |
| } else { |
| text = "n<" + symbols->getSymbol(m_name) + ">"; |
| } |
| |
| text += " "; |
| text += "u<" + std::to_string(uniqueId) + ">"; |
| text += " "; |
| std::string type = getTypeName(m_type); |
| type.erase(0, 2); |
| text += "t<" + type + ">"; |
| if (m_parent) { |
| text += " "; |
| text += "p<" + std::to_string(m_parent) + ">"; |
| } |
| if (m_definition) { |
| text += " "; |
| text += "d<" + std::to_string(m_definition) + ">"; |
| } |
| if (definitionFile) { |
| text += " "; |
| text += "df<" + std::to_string(definitionFile) + ">"; |
| } |
| if (m_child) { |
| text += " "; |
| text += "c<" + std::to_string(m_child) + ">"; |
| } |
| if (m_sibling) { |
| text += " "; |
| text += "s<" + std::to_string(m_sibling) + ">"; |
| } |
| text += " "; |
| text += "l<" + std::to_string(m_line) + ">"; |
| return text; |
| } |