OpenSTA/liberty/LibertyParser.cc

579 lines
13 KiB
C++
Raw Normal View History

2018-09-28 17:54:21 +02:00
// OpenSTA, Static Timing Analyzer
// Copyright (c) 2025, Parallax Software, Inc.
2018-09-28 17:54:21 +02:00
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2018-09-28 17:54:21 +02:00
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
// The origin of this software must not be misrepresented; you must not
// claim that you wrote the original software.
//
// Altered source versions must be plainly marked as such, and must not be
// misrepresented as being the original software.
//
// This notice may not be removed or altered from any source distribution.
2018-09-28 17:54:21 +02:00
2020-04-05 23:53:44 +02:00
#include "LibertyParser.hh"
2020-04-05 20:35:51 +02:00
#include <cstdio>
#include <cstring>
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
#include <regex>
2020-04-05 20:35:51 +02:00
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
#include "Zlib.hh"
2020-04-05 23:53:44 +02:00
#include "Report.hh"
#include "Error.hh"
#include "StringUtil.hh"
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
#include "LibertyScanner.hh"
2018-09-28 17:54:21 +02:00
namespace sta {
void
parseLibertyFile(const char *filename,
LibertyGroupVisitor *library_visitor,
Report *report)
{
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
std::istream *stream = new gzstream::igzstream(filename);
if (stream->good()) {
LibertyParser reader(filename, library_visitor, report);
LibertyScanner scanner(stream, filename, &reader, report);
LibertyParse parser(&scanner, &reader);
parser.parse();
delete stream;
2018-09-28 17:54:21 +02:00
}
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
else {
delete stream;
2018-09-28 17:54:21 +02:00
throw FileNotReadable(filename);
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
}
}
LibertyParser::LibertyParser(const char *filename,
LibertyGroupVisitor *library_visitor,
Report *report) :
filename_(filename),
group_visitor_(library_visitor),
report_(report)
{
2018-09-28 17:54:21 +02:00
}
2021-03-10 17:45:17 +01:00
void
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyParser::setFilename(const string &filename)
{
filename_ = filename;
}
LibertyStmt *
LibertyParser::makeDefine(LibertyAttrValueSeq *values,
int line)
{
LibertyDefine *define = nullptr;
if (values->size() == 3) {
const char *define_name = (*values)[0]->stringValue();
const char *group_type_name = (*values)[1]->stringValue();
const char *value_type_name = (*values)[2]->stringValue();
LibertyAttrType value_type = attrValueType(value_type_name);
LibertyGroupType group_type = groupType(group_type_name);
define = new LibertyDefine(stringCopy(define_name), group_type,
value_type, line);
LibertyGroup *group = this->group();
group->addDefine(define);
}
else
report_->fileWarn(24, filename_.c_str(), line,
"define does not have three arguments.");
return define;
}
// The Liberty User Guide Version 2001.08 fails to define the strings
// used to define valid attribute types. Beyond "string" these are
// guesses.
LibertyAttrType
LibertyParser::attrValueType(const char *value_type_name)
2021-03-10 17:45:17 +01:00
{
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
if (stringEq(value_type_name, "string"))
return LibertyAttrType::attr_string;
else if (stringEq(value_type_name, "integer"))
return LibertyAttrType::attr_int;
else if (stringEq(value_type_name, "float"))
return LibertyAttrType::attr_double;
else if (stringEq(value_type_name, "boolean"))
return LibertyAttrType::attr_boolean;
2021-03-10 17:45:17 +01:00
else
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
return LibertyAttrType::attr_unknown;
2021-03-10 17:45:17 +01:00
}
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyGroupType
LibertyParser::groupType(const char *group_type_name)
2021-03-10 17:45:17 +01:00
{
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
if (stringEq(group_type_name, "library"))
return LibertyGroupType::library;
else if (stringEq(group_type_name, "cell"))
return LibertyGroupType::cell;
else if (stringEq(group_type_name, "pin"))
return LibertyGroupType::pin;
else if (stringEq(group_type_name, "timing"))
return LibertyGroupType::timing;
2021-03-10 17:45:17 +01:00
else
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
return LibertyGroupType::unknown;
2021-03-10 17:45:17 +01:00
}
2018-09-28 17:54:21 +02:00
void
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyParser::groupBegin(const char *type,
LibertyAttrValueSeq *params,
int line)
2018-09-28 17:54:21 +02:00
{
LibertyGroup *group = new LibertyGroup(type, params, line);
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
group_visitor_->begin(group);
group_stack_.push_back(group);
2018-09-28 17:54:21 +02:00
}
LibertyGroup *
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyParser::groupEnd()
2018-09-28 17:54:21 +02:00
{
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyGroup *group = this->group();
group_visitor_->end(group);
group_stack_.pop_back();
2018-09-28 17:54:21 +02:00
LibertyGroup *parent =
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
group_stack_.empty() ? nullptr : group_stack_.back();
if (parent && group_visitor_->save(group)) {
2018-09-28 17:54:21 +02:00
parent->addSubgroup(group);
return group;
}
else {
delete group;
2019-03-13 01:25:53 +01:00
return nullptr;
2018-09-28 17:54:21 +02:00
}
}
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyGroup *
LibertyParser::group()
{
return group_stack_.back();
}
void
LibertyParser::deleteGroups()
{
group_stack_.deleteContentsClear();
}
LibertyStmt *
LibertyParser::makeSimpleAttr(const char *name,
LibertyAttrValue *value,
int line)
{
LibertyAttr *attr = new LibertySimpleAttr(name, value, line);
group_visitor_->visitAttr(attr);
LibertyGroup *group = this->group();
if (group && group_visitor_->save(attr)) {
group->addAttribute(attr);
return attr;
}
else {
delete attr;
return nullptr;
}
}
LibertyStmt *
LibertyParser::makeComplexAttr(const char *name,
LibertyAttrValueSeq *values,
int line)
{
// Defines have the same syntax as complex attributes.
// Detect and convert them.
if (stringEq(name, "define")) {
LibertyStmt *define = makeDefine(values, line);
stringDelete(name);
LibertyAttrValueSeq::Iterator attr_iter(values);
while (attr_iter.hasNext())
delete attr_iter.next();
delete values;
return define;
}
else {
LibertyAttr *attr = new LibertyComplexAttr(name, values, line);
group_visitor_->visitAttr(attr);
if (group_visitor_->save(attr)) {
LibertyGroup *group = this->group();
group->addAttribute(attr);
return attr;
}
delete attr;
return nullptr;
}
}
LibertyStmt *
LibertyParser::makeVariable(char *var,
float value,
int line)
{
LibertyVariable *variable = new LibertyVariable(var, value, line);
group_visitor_->visitVariable(variable);
if (group_visitor_->save(variable))
return variable;
else {
delete variable;
return nullptr;
}
}
LibertyAttrValue *
LibertyParser::makeStringAttrValue(char *value)
{
return new LibertyStringAttrValue(value);
}
LibertyAttrValue *
LibertyParser::makeFloatAttrValue(float value)
{
return new LibertyFloatAttrValue(value);
}
2018-09-28 17:54:21 +02:00
////////////////////////////////////////////////////////////////
LibertyStmt::LibertyStmt(int line) :
line_(line)
{
}
LibertyGroup::LibertyGroup(const char *type,
LibertyAttrValueSeq *params,
int line) :
LibertyStmt(line),
type_(type),
params_(params),
2019-03-13 01:25:53 +01:00
attrs_(nullptr),
attr_map_(nullptr),
subgroups_(nullptr),
define_map_(nullptr)
2018-09-28 17:54:21 +02:00
{
}
void
LibertyGroup::addSubgroup(LibertyGroup *subgroup)
{
2019-03-13 01:25:53 +01:00
if (subgroups_ == nullptr)
2018-09-28 17:54:21 +02:00
subgroups_ = new LibertyGroupSeq;
subgroups_->push_back(subgroup);
}
void
LibertyGroup::addDefine(LibertyDefine *define)
{
2019-03-13 01:25:53 +01:00
if (define_map_ == nullptr)
2018-09-28 17:54:21 +02:00
define_map_ = new LibertyDefineMap;
const char *define_name = define->name();
LibertyDefine *prev_define = define_map_->findKey(define_name);
if (prev_define) {
define_map_->erase(define_name);
2018-09-28 17:54:21 +02:00
delete prev_define;
}
(*define_map_)[define_name] = define;
}
void
LibertyGroup::addAttribute(LibertyAttr *attr)
{
2019-03-13 01:25:53 +01:00
if (attrs_ == nullptr)
2018-09-28 17:54:21 +02:00
attrs_ = new LibertyAttrSeq;
attrs_->push_back(attr);
if (attr_map_)
(*attr_map_)[attr->name()] = attr;
}
LibertyGroup::~LibertyGroup()
{
stringDelete(type_);
if (params_) {
params_->deleteContents();
delete params_;
}
if (attrs_) {
LibertyAttrSeq::Iterator iter(attrs_);
attrs_->deleteContents();
delete attrs_;
delete attr_map_;
}
if (subgroups_) {
subgroups_->deleteContents();
delete subgroups_;
}
if (define_map_) {
define_map_->deleteContents();
delete define_map_;
}
}
const char *
LibertyGroup::firstName()
{
if (params_ && params_->size() > 0) {
LibertyAttrValue *value = (*params_)[0];
if (value->isString())
return value->stringValue();
}
2019-03-13 01:25:53 +01:00
return nullptr;
2018-09-28 17:54:21 +02:00
}
const char *
LibertyGroup::secondName()
{
if (params_ && params_->size() > 1) {
LibertyAttrValue *value = (*params_)[1];
if (value->isString())
return value->stringValue();
}
2019-03-13 01:25:53 +01:00
return nullptr;
2018-09-28 17:54:21 +02:00
}
LibertyAttr *
LibertyGroup::findAttr(const char *name)
{
if (attrs_) {
2019-03-13 01:25:53 +01:00
if (attr_map_ == nullptr) {
2018-09-28 17:54:21 +02:00
// Build attribute name map on demand.
LibertyAttrSeq::Iterator attr_iter(attrs_);
while (attr_iter.hasNext()) {
LibertyAttr *attr = attr_iter.next();
(*attr_map_)[attr->name()] = attr;
}
}
return attr_map_->findKey(name);
}
else
2019-03-13 01:25:53 +01:00
return nullptr;
2018-09-28 17:54:21 +02:00
}
LibertySubgroupIterator::LibertySubgroupIterator(LibertyGroup *group) :
LibertyGroupSeq::Iterator(group->subgroups())
{
}
LibertyAttrIterator::LibertyAttrIterator(LibertyGroup *group) :
LibertyAttrSeq::Iterator(group->attrs())
{
}
////////////////////////////////////////////////////////////////
LibertyAttr::LibertyAttr(const char *name,
int line) :
LibertyStmt(line),
name_(name)
{
}
LibertyAttr::~LibertyAttr()
{
stringDelete(name_);
}
LibertySimpleAttr::LibertySimpleAttr(const char *name,
LibertyAttrValue *value,
int line) :
LibertyAttr(name, line),
value_(value)
{
}
LibertySimpleAttr::~LibertySimpleAttr()
{
delete value_;
}
LibertyAttrValueSeq *
LibertySimpleAttr::values() const
{
criticalError(1125, "valueIterator called for LibertySimpleAttribute");
2019-03-13 01:25:53 +01:00
return nullptr;
2018-09-28 17:54:21 +02:00
}
LibertyComplexAttr::LibertyComplexAttr(const char *name,
LibertyAttrValueSeq *values,
int line) :
LibertyAttr(name, line),
values_(values)
{
}
LibertyComplexAttr::~LibertyComplexAttr()
{
if (values_) {
values_->deleteContents();
delete values_;
}
}
LibertyAttrValue *
LibertyComplexAttr::firstValue()
{
if (values_ && values_->size() > 0)
return (*values_)[0];
else
2019-03-13 01:25:53 +01:00
return nullptr;
2018-09-28 17:54:21 +02:00
}
LibertyStringAttrValue::LibertyStringAttrValue(const char *value) :
LibertyAttrValue(),
value_(value)
{
}
LibertyStringAttrValue::~LibertyStringAttrValue()
{
stringDelete(value_);
}
float
LibertyStringAttrValue::floatValue()
{
criticalError(1126, "LibertyStringAttrValue called for float value");
2018-09-28 17:54:21 +02:00
return 0.0;
}
const char *
LibertyStringAttrValue::stringValue()
{
return value_;
}
LibertyFloatAttrValue::LibertyFloatAttrValue(float value) :
value_(value)
{
}
float
LibertyFloatAttrValue::floatValue()
{
return value_;
}
const char *
LibertyFloatAttrValue::stringValue()
{
criticalError(1127, "LibertyStringAttrValue called for float value");
2019-03-13 01:25:53 +01:00
return nullptr;
2018-09-28 17:54:21 +02:00
}
////////////////////////////////////////////////////////////////
LibertyDefine::LibertyDefine(const char *name,
LibertyGroupType group_type,
2019-03-13 01:25:53 +01:00
LibertyAttrType value_type,
2018-09-28 17:54:21 +02:00
int line) :
LibertyStmt(line),
name_(name),
group_type_(group_type),
value_type_(value_type)
{
}
LibertyDefine::~LibertyDefine()
{
stringDelete(name_);
}
////////////////////////////////////////////////////////////////
LibertyVariable::LibertyVariable(const char *var,
float value,
int line) :
LibertyStmt(line),
var_(var),
value_(value)
{
}
LibertyVariable::~LibertyVariable()
{
stringDelete(var_);
}
////////////////////////////////////////////////////////////////
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyScanner::LibertyScanner(std::istream *stream,
const char *filename,
LibertyParser *reader,
Report *report) :
yyFlexLexer(stream),
stream_(stream),
filename_(filename),
reader_(reader),
report_(report),
stream_prev_(nullptr)
2018-09-28 17:54:21 +02:00
{
}
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
bool
LibertyScanner::includeBegin()
2018-09-28 17:54:21 +02:00
{
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
if (stream_prev_ != nullptr)
error("nested include_file's are not supported");
else {
// include_file(filename);
std::regex include_regexp("include_file *\\( *([^)]+) *\\) *;?");
std::cmatch matches;
if (std::regex_match(yytext, matches, include_regexp)) {
string filename = matches[1].str();
gzstream::igzstream *stream = new gzstream::igzstream(filename.c_str());
if (stream->is_open()) {
yypush_buffer_state(yy_create_buffer(stream, 256));
filename_prev_ = filename_;
stream_prev_ = stream_;
filename_ = filename;
reader_->setFilename(filename);
stream_ = stream;
return true;
}
else {
report_->fileWarn(25, filename_.c_str(), yylineno,
"cannot open include file %s.", filename.c_str());
delete stream;
}
}
else
error("include_file syntax error.");
2018-09-28 17:54:21 +02:00
}
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
return false;
2018-09-28 17:54:21 +02:00
}
void
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyScanner::fileEnd()
2018-09-28 17:54:21 +02:00
{
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
if (stream_prev_)
delete stream_;
stream_ = stream_prev_;
filename_ = filename_prev_;
stream_prev_ = nullptr;
2021-03-10 17:45:17 +01:00
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
yypop_buffer_state();
2018-09-28 17:54:21 +02:00
}
void
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyScanner::error(const char *msg)
2018-09-28 17:54:21 +02:00
{
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
report_->fileError(1866, filename_.c_str(), lineno(), "%s", msg);
2018-09-28 17:54:21 +02:00
}
void
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
LibertyParse::error(const location_type &loc,
const string &msg)
2018-09-28 17:54:21 +02:00
{
liberty parser c++ commit 1abf72bc3430d34a51d82992f1c753f0274a662a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 27 08:01:04 2025 -0700 rm unused lib visitors Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1e76acfc7829a8ba82f96d369fae6225a7361844 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 21:15:46 2025 -0700 verilog/sdf stream->is_open Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c4a57c0354ffb6c4edfc3269d56a937c11ad9609 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 19:54:41 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b992ed1124a862cb04f0c7617a4575f916c3fe01 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:39:16 2025 -0700 liberty mv string_buf to scanner Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 894cbfa5d5b731738dcc60d492689fad9d13bd40 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 16:29:42 2025 -0700 liberty use regex to parse include file Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 176225849d3fcac0b2be1a5b623270c386daed3d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:48:09 2025 -0700 liberty include filename Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 516e12721d7185015d8c29e8b16fa185f0f46983 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:31:18 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 32098a2159798dfbb80140927949bb36f480093d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 15:01:47 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 880214e632d756c3199b000fee88fd4fdffac371 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 13:55:02 2025 -0700 liberty include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad1efca842a6d7ee608ffd5a19a69885786b77fa Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:11:07 2025 -0700 liberty passes all but include Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e71cf1f39dd09e81cf2b0e5a12dcf51675f2a6fd Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 26 10:01:08 2025 -0700 liberty parser use class compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 02dea0ff753b0fa12f280661a46e2c0ef2432357 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 25 19:08:06 2025 -0700 liberty parser compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-27 16:33:35 +01:00
reader->report()->fileError(164, reader->filename().c_str(),
loc.begin.line, "%s", msg.c_str());
}
2018-09-28 17:54:21 +02:00
} // namespace