OpenSTA/liberty/LibertyParser.cc

619 lines
15 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
#include "ContainerHelpers.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 "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 {
using std::string;
2018-09-28 17:54:21 +02:00
void
parseLibertyFile(const char *filename,
LibertyGroupVisitor *library_visitor,
Report *report)
2018-09-28 17:54:21 +02:00
{
LibExpr/spef/saif c++ parsers commit a686a6f77e555513adc40228471c1ad1af4646b3 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 18:45:44 2025 -0800 spef compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 986a3a00c246a927c494066c56bb627e55da8692 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 18:45:32 2025 -0800 spef compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e8664d21c0b404a82967201c19a087c6680b7177 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 16:36:19 2025 -0800 saif compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 496569018791bff19e57c534f29ac085520fc520 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 15:25:44 2025 -0800 mv bison error funcs to .yy Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c1e7638840f94eb0baddee47507e607b000ab858 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 14:19:26 2025 -0800 parser cledanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 22bc72af46114ddb4fc5876655887ef1189f2195 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 14:19:06 2025 -0800 parser cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit caeedc4c9e2bf8e7a2f4aceb4ee4a5758efd1b36 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 12:52:55 2025 -0800 LibertyParser stack stream Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e029a01c2fc5ba0ed336978c5853d49095d07d66 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 12:10:35 2025 -0800 bison 3.2 required Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2ca9423a2d518f51fdee6c41d41348dbfd548bae Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 12:05:19 2025 -0800 LibertyExpr -> LibExpr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d64df413675c2978c0f24d5594cc201032233447 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 11:18:05 2025 -0800 LibertyExpr -> LibExpr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 57cfbae240984bd7928862b1d6c3b1047ee5d71f Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:25:49 2025 -0800 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5249ac32d809ba30ce09437d61beaf4360bc2cd8 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:24:35 2025 -0800 parseError Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8c5442007f99c06bfb16a496e00862353c82282c Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:11:46 2025 -0800 libecxpr parseError unused Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 67dacf60db2c0d7e3f7ceeae672b4bdaf1e039b7 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:09:39 2025 -0800 reader pvt includes Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1d7097399b4242833bf5a478c903b5d98afe674b Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 09:33:37 2025 -0800 libexpr life Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cc85e357463399291cb1e7d7b628e5dd356ac8a9 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 09:21:12 2025 -0800 libexpr no location Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e3ef17a746eb4e8822cce732250ae77261d53cf9 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Jan 30 22:15:50 2025 -0800 compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 3a34874297a5c82930ee0bd131425bccf48526ce Author: James Cherry <cherry@parallaxsw.com> Date: Thu Jan 30 20:03:06 2025 -0800 libexpr parse Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-02-01 23:49:30 +01:00
gzstream::igzstream stream(filename);
if (stream.is_open()) {
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 reader(filename, library_visitor, report);
LibExpr/spef/saif c++ parsers commit a686a6f77e555513adc40228471c1ad1af4646b3 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 18:45:44 2025 -0800 spef compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 986a3a00c246a927c494066c56bb627e55da8692 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 18:45:32 2025 -0800 spef compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e8664d21c0b404a82967201c19a087c6680b7177 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 16:36:19 2025 -0800 saif compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 496569018791bff19e57c534f29ac085520fc520 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 15:25:44 2025 -0800 mv bison error funcs to .yy Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c1e7638840f94eb0baddee47507e607b000ab858 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 14:19:26 2025 -0800 parser cledanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 22bc72af46114ddb4fc5876655887ef1189f2195 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 14:19:06 2025 -0800 parser cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit caeedc4c9e2bf8e7a2f4aceb4ee4a5758efd1b36 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 12:52:55 2025 -0800 LibertyParser stack stream Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e029a01c2fc5ba0ed336978c5853d49095d07d66 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 12:10:35 2025 -0800 bison 3.2 required Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2ca9423a2d518f51fdee6c41d41348dbfd548bae Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 12:05:19 2025 -0800 LibertyExpr -> LibExpr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d64df413675c2978c0f24d5594cc201032233447 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 11:18:05 2025 -0800 LibertyExpr -> LibExpr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 57cfbae240984bd7928862b1d6c3b1047ee5d71f Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:25:49 2025 -0800 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5249ac32d809ba30ce09437d61beaf4360bc2cd8 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:24:35 2025 -0800 parseError Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8c5442007f99c06bfb16a496e00862353c82282c Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:11:46 2025 -0800 libecxpr parseError unused Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 67dacf60db2c0d7e3f7ceeae672b4bdaf1e039b7 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:09:39 2025 -0800 reader pvt includes Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1d7097399b4242833bf5a478c903b5d98afe674b Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 09:33:37 2025 -0800 libexpr life Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cc85e357463399291cb1e7d7b628e5dd356ac8a9 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 09:21:12 2025 -0800 libexpr no location Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e3ef17a746eb4e8822cce732250ae77261d53cf9 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Jan 30 22:15:50 2025 -0800 compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 3a34874297a5c82930ee0bd131425bccf48526ce Author: James Cherry <cherry@parallaxsw.com> Date: Thu Jan 30 20:03:06 2025 -0800 libexpr parse Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-02-01 23:49:30 +01:00
LibertyScanner scanner(&stream, filename, &reader, 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
LibertyParse parser(&scanner, &reader);
parser.parse();
2018-09-28 17:54:21 +02:00
}
LibExpr/spef/saif c++ parsers commit a686a6f77e555513adc40228471c1ad1af4646b3 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 18:45:44 2025 -0800 spef compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 986a3a00c246a927c494066c56bb627e55da8692 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 18:45:32 2025 -0800 spef compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e8664d21c0b404a82967201c19a087c6680b7177 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 16:36:19 2025 -0800 saif compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 496569018791bff19e57c534f29ac085520fc520 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 15:25:44 2025 -0800 mv bison error funcs to .yy Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c1e7638840f94eb0baddee47507e607b000ab858 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 14:19:26 2025 -0800 parser cledanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 22bc72af46114ddb4fc5876655887ef1189f2195 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 14:19:06 2025 -0800 parser cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit caeedc4c9e2bf8e7a2f4aceb4ee4a5758efd1b36 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 12:52:55 2025 -0800 LibertyParser stack stream Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e029a01c2fc5ba0ed336978c5853d49095d07d66 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 12:10:35 2025 -0800 bison 3.2 required Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2ca9423a2d518f51fdee6c41d41348dbfd548bae Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 12:05:19 2025 -0800 LibertyExpr -> LibExpr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d64df413675c2978c0f24d5594cc201032233447 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 11:18:05 2025 -0800 LibertyExpr -> LibExpr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 57cfbae240984bd7928862b1d6c3b1047ee5d71f Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:25:49 2025 -0800 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5249ac32d809ba30ce09437d61beaf4360bc2cd8 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:24:35 2025 -0800 parseError Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8c5442007f99c06bfb16a496e00862353c82282c Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:11:46 2025 -0800 libecxpr parseError unused Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 67dacf60db2c0d7e3f7ceeae672b4bdaf1e039b7 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 10:09:39 2025 -0800 reader pvt includes Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1d7097399b4242833bf5a478c903b5d98afe674b Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 09:33:37 2025 -0800 libexpr life Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cc85e357463399291cb1e7d7b628e5dd356ac8a9 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 31 09:21:12 2025 -0800 libexpr no location Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e3ef17a746eb4e8822cce732250ae77261d53cf9 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Jan 30 22:15:50 2025 -0800 compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 3a34874297a5c82930ee0bd131425bccf48526ce Author: James Cherry <cherry@parallaxsw.com> Date: Thu Jan 30 20:03:06 2025 -0800 libexpr parse Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-02-01 23:49:30 +01:00
else
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;
}
LibertyDefine *
LibertyParser::makeDefine(const LibertyAttrValueSeq *values,
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
int line)
{
LibertyDefine *define = nullptr;
if (values->size() == 3) {
const std::string &define_name = (*values)[0]->stringValue();
const std::string &group_type_name = (*values)[1]->stringValue();
const std::string &value_type_name = (*values)[2]->stringValue();
LibertyAttrType value_type = attrValueType(value_type_name);
LibertyGroupType group_type = groupType(group_type_name);
define = new LibertyDefine(std::move(define_name), group_type, value_type, 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
LibertyGroup *group = this->group();
group->addDefine(define);
for (auto value : *values)
delete value;
delete values;
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
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 std::string &value_type_name)
2021-03-10 17:45:17 +01:00
{
if (value_type_name == "string")
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_string;
else if (value_type_name == "integer")
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_int;
else if (value_type_name == "float")
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_double;
else if (value_type_name == "boolean")
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_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 std::string &group_type_name)
2021-03-10 17:45:17 +01:00
{
if (group_type_name == "library")
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::library;
else if (group_type_name == "cell")
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::cell;
else if (group_type_name == "pin")
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::pin;
else if (group_type_name == "timing")
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::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
LibertyParser::groupBegin(const std::string type,
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
LibertyAttrValueSeq *params,
int line)
2018-09-28 17:54:21 +02:00
{
LibertyGroup *group =
new LibertyGroup(std::move(type),
params ? std::move(*params) : LibertyAttrValueSeq(),
line);
delete params;
LibertyGroup *parent_group = group_stack_.empty() ? nullptr : group_stack_.back();
group_visitor_->begin(group, parent_group);
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_.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_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)
parent->addSubgroup(group);
group_visitor_->end(group, parent);
return group;
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()
{
deleteContents(group_stack_);
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
}
LibertySimpleAttr *
LibertyParser::makeSimpleAttr(const std::string name,
const LibertyAttrValue *value,
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
int line)
{
LibertySimpleAttr *attr = new LibertySimpleAttr(std::move(name),
std::move(*value), line);
delete value;
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->addAttr(attr);
group_visitor_->visitAttr(attr);
return attr;
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
}
LibertyComplexAttr *
LibertyParser::makeComplexAttr(const std::string name,
const LibertyAttrValueSeq *values,
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
int line)
{
// Defines have the same syntax as complex attributes.
// Detect and convert them.
if (name == "define") {
makeDefine(values, line);
return nullptr; // Define is not a complex attr; already added to group
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 {
LibertyComplexAttr *attr = new LibertyComplexAttr(std::move(name),
std::move(*values),
line);
delete values;
LibertyGroup *group = this->group();
group->addAttr(attr);
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_->visitAttr(attr);
return attr;
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
}
}
LibertyVariable *
LibertyParser::makeVariable(const std::string 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
float value,
int line)
{
LibertyVariable *variable = new LibertyVariable(std::move(var), value, line);
LibertyGroup *group = this->group();
group->addVariable(variable);
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_->visitVariable(variable);
return variable;
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
}
LibertyAttrValue *
LibertyParser::makeAttrValueString(std::string value)
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 new LibertyAttrValue(std::move(value));
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
}
LibertyAttrValue *
LibertyParser::makeAttrValueFloat(float value)
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 new LibertyAttrValue(value);
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)
{
}
bool
LibertyScanner::includeBegin()
{
if (stream_prev_ != nullptr)
error("nested include_file's are not supported");
else {
// include_file(filename);
static const 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, 16384));
2018-09-28 17:54:21 +02:00
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.");
}
return false;
}
void
LibertyScanner::fileEnd()
2018-09-28 17:54:21 +02:00
{
if (stream_prev_)
delete stream_;
stream_ = stream_prev_;
filename_ = filename_prev_;
stream_prev_ = nullptr;
yypop_buffer_state();
2018-09-28 17:54:21 +02:00
}
void
LibertyScanner::error(const char *msg)
{
report_->fileError(1866, filename_.c_str(), lineno(), "%s", msg);
}
////////////////////////////////////////////////////////////////
LibertyGroup::LibertyGroup(std::string type,
LibertyAttrValueSeq params,
int line) :
type_(std::move(type)),
params_(std::move(params)),
line_(line)
2018-09-28 17:54:21 +02:00
{
}
LibertyGroup::~LibertyGroup()
{
clear();
}
2018-09-28 17:54:21 +02:00
void
LibertyGroup::clear()
2018-09-28 17:54:21 +02:00
{
deleteContents(params_);
deleteContents(simple_attr_map_);
for (auto &attr : complex_attr_map_)
deleteContents(attr.second);
complex_attr_map_.clear();
deleteContents(subgroups_);
subgroup_map_.clear();
deleteContents(define_map_);
deleteContents(variables_);
2018-09-28 17:54:21 +02:00
}
void
LibertyGroup::addSubgroup(LibertyGroup *subgroup)
2018-09-28 17:54:21 +02:00
{
subgroups_.push_back(subgroup);
subgroup_map_[subgroup->type()].push_back(subgroup);
}
void
LibertyGroup::deleteSubgroup(const LibertyGroup *subgroup)
{
if (subgroup == subgroups_.back()) {
subgroups_.pop_back();
subgroup_map_[subgroup->type()].pop_back();
delete subgroup;
2018-09-28 17:54:21 +02:00
}
else
criticalError(1128, "LibertyAttrValue::floatValue() called on string");
2018-09-28 17:54:21 +02:00
}
void
LibertyGroup::addDefine(LibertyDefine *define)
2018-09-28 17:54:21 +02:00
{
const string &define_name = define->name();
LibertyDefine *prev_define = findKey(define_map_, define_name);
if (prev_define) {
define_map_.erase(define_name);
delete prev_define;
2018-09-28 17:54:21 +02:00
}
define_map_[define_name] = define;
}
void
LibertyGroup::addAttr(LibertySimpleAttr *attr)
{
// Only keep the most recent simple attribute value.
const auto &itr = simple_attr_map_.find(attr->name());
if (itr != simple_attr_map_.end())
delete itr->second;
simple_attr_map_[attr->name()] = attr;
}
void
LibertyGroup::addAttr(LibertyComplexAttr *attr)
{
complex_attr_map_[attr->name()].push_back(attr);
}
void
LibertyGroup::addVariable(LibertyVariable *var)
{
variables_.push_back(var);
2018-09-28 17:54:21 +02:00
}
const char *
LibertyGroup::firstName() const
2018-09-28 17:54:21 +02:00
{
if (params_.size() >= 1) {
LibertyAttrValue *value = params_[0];
2018-09-28 17:54:21 +02:00
if (value->isString())
return value->stringValue().c_str();
2018-09-28 17:54:21 +02:00
}
2019-03-13 01:25:53 +01:00
return nullptr;
2018-09-28 17:54:21 +02:00
}
const char *
LibertyGroup::secondName() const
2018-09-28 17:54:21 +02:00
{
LibertyAttrValue *value = params_[1];
if (value->isString())
return value->stringValue().c_str();
else
return nullptr;
2018-09-28 17:54:21 +02:00
}
const LibertyGroupSeq &
LibertyGroup::findSubgroups(const std::string type) const
2018-09-28 17:54:21 +02:00
{
return findKeyValue(subgroup_map_, type);
2018-09-28 17:54:21 +02:00
}
const LibertyGroup *
LibertyGroup::findSubgroup(const std::string type) const
2018-09-28 17:54:21 +02:00
{
const LibertyGroupSeq &groups = findKeyValue(subgroup_map_, type);
if (groups.size() >= 1)
return groups[0];
else
return nullptr;
2018-09-28 17:54:21 +02:00
}
const LibertySimpleAttr *
LibertyGroup::findSimpleAttr(const std::string attr_name) const
2018-09-28 17:54:21 +02:00
{
return findKeyValue(simple_attr_map_, attr_name);
2018-09-28 17:54:21 +02:00
}
const LibertyComplexAttrSeq &
LibertyGroup::findComplexAttrs(const std::string attr_name) const
2018-09-28 17:54:21 +02:00
{
return findKeyValue(complex_attr_map_, attr_name);
2018-09-28 17:54:21 +02:00
}
const LibertyComplexAttr *
LibertyGroup::findComplexAttr(const std::string attr_name) const
2018-09-28 17:54:21 +02:00
{
const LibertyComplexAttrSeq &attrs = findKeyValue(complex_attr_map_, attr_name);
if (attrs.size() >= 1)
return attrs[0];
else
return nullptr;
2018-09-28 17:54:21 +02:00
}
const std::string *
LibertyGroup::findAttrString(const std::string attr_name) const
2018-09-28 17:54:21 +02:00
{
const LibertySimpleAttr *attr = findSimpleAttr(attr_name);
if (attr)
return &attr->value().stringValue();
2018-09-28 17:54:21 +02:00
else
2019-03-13 01:25:53 +01:00
return nullptr;
2018-09-28 17:54:21 +02:00
}
void
LibertyGroup::findAttrFloat(const std::string attr_name,
// Return values.
float &value,
bool &exists) const
{
const LibertySimpleAttr *attr = findSimpleAttr(attr_name);
if (attr) {
const LibertyAttrValue &attr_value = attr->value();
if (attr_value.isFloat()) {
value = attr_value.floatValue();
exists = true;
return;
}
else {
// Possibly quoted string float.
const std::string &float_str = attr_value.stringValue();
char *end = nullptr;
value = std::strtof(float_str.c_str(), &end);
if (end) {
exists = true;
return;
}
}
}
exists = false;
2018-09-28 17:54:21 +02:00
}
void
LibertyGroup::findAttrInt(const std::string attr_name,
// Return values.
int &value,
bool &exists) const
{
const LibertySimpleAttr *attr = findSimpleAttr(attr_name);
if (attr) {
const LibertyAttrValue &attr_value = attr->value();
if (attr_value.isFloat()) {
value = static_cast<int>(attr_value.floatValue());
exists = true;
return;
}
}
exists = false;
}
////////////////////////////////////////////////////////////////
LibertySimpleAttr::LibertySimpleAttr(const std::string name,
const LibertyAttrValue value,
int line) :
name_(std::move(name)),
line_(line),
value_(std::move(value))
2018-09-28 17:54:21 +02:00
{
}
const std::string *
LibertySimpleAttr::stringValue() const
2018-09-28 17:54:21 +02:00
{
return &value().stringValue();
2018-09-28 17:54:21 +02:00
}
////////////////////////////////////////////////////////////////
LibertyComplexAttr::LibertyComplexAttr(std::string name,
const LibertyAttrValueSeq values,
int line) :
name_(std::move(name)),
values_(std::move(values)),
line_(line)
2018-09-28 17:54:21 +02:00
{
}
LibertyComplexAttr::~LibertyComplexAttr()
{
deleteContents(values_);
}
2018-09-28 17:54:21 +02:00
const LibertyAttrValue *
LibertyComplexAttr::firstValue() const
2018-09-28 17:54:21 +02:00
{
if (values_.size() > 0)
return values_[0];
else
return nullptr;
2018-09-28 17:54:21 +02:00
}
////////////////////////////////////////////////////////////////
LibertyAttrValue::LibertyAttrValue(std::string value) :
string_value_(std::move(value))
{
}
LibertyAttrValue::LibertyAttrValue(float value) :
float_value_(value)
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
LibertyAttrValue::isFloat() const
2018-09-28 17:54:21 +02:00
{
return string_value_.empty();
}
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
LibertyAttrValue::isString() const
{
return !string_value_.empty();
}
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
float
LibertyAttrValue::floatValue() const
{
if (!string_value_.empty())
criticalError(1127, "LibertyAttrValue::floatValue() called on string");
return float_value_;
}
void
LibertyAttrValue::floatValue(// Return values.
float &value,
bool &valid) const
{
valid = false;
if (string_value_.empty()) {
value = float_value_;
valid = true;
}
else {
// Some floats are enclosed in quotes.
char *end;
value = strtof(string_value_.c_str(), &end);
if ((*end == '\0'
|| isspace(*end))
// strtof support INF as a valid float.
&& string_value_ != "inf") {
valid = true;
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
}
2018-09-28 17:54:21 +02:00
}
}
////////////////////////////////////////////////////////////////
2021-03-10 17:45:17 +01:00
LibertyDefine::LibertyDefine(std::string name,
LibertyGroupType group_type,
LibertyAttrType value_type,
int line) :
name_(std::move(name)),
group_type_(group_type),
value_type_(value_type),
line_(line)
{
2018-09-28 17:54:21 +02:00
}
////////////////////////////////////////////////////////////////
LibertyVariable::LibertyVariable(std::string var,
float value,
int line) :
var_(std::move(var)),
value_(value),
line_(line)
2018-09-28 17:54:21 +02:00
{
}
} // namespace