OpenSTA/util/gzstream.hh

215 lines
7.3 KiB
C++
Raw Normal View History

verilog c++ parser commit 6fac3fee87a3309132b5bdbb731292ecd6410a86 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 18:24:18 2025 -0700 Sta use VerilogReader class Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 05d4bce4bcfcfaa07392b237a596a82315b895b3 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 15:14:29 2025 -0700 vparse Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e977e89b62191688db5c815131fc389d9ce401c5 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 11:30:46 2025 -0700 write_verilog missing port ddcl Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1742d5d92533559235ea4c42d9ea4bf2d47fb943 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 11:23:48 2025 -0700 verilog escape constexpr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 226a23092312a37503100d49ab74d4fb1e5856ef Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 20 09:34:32 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 63ca4ac5855710427e1ddfc5c2cba8998452d1f0 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 19:45:48 2025 -0700 leaks Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c1d38aa0cc983204b1bb3f49944709e74c831be7 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 13:26:07 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 22607b41b9eb9fc71d53214893150afb757a8a56 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 11:36:23 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit dba2bc939fc58d465229cc2d474705151cd50d05 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 10:01:14 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7d449041a2b75b874038af377d46130b45195a00 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 09:18:55 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d02495222838f037f25d131ce1b270a6121cf16f Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 08:53:47 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 10c5c1040f26c8ebe295d245a641fc913e0ec9f5 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 21:50:12 2025 -0700 verlog constant use std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21943c1b63fd36d12de1e5986905e14fe73ce7be Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 17:41:43 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c0232b71ea5137b37d055d83f3da194341aed7a0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 17:12:47 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c68fd0329ee35b4877763bcdc82e8fe03a3b16de Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 16:54:10 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 3e2dca2140db42acce390ec1a18f29ee4de3c631 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 16:07:19 2025 -0700 vparse const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 210196f9e5a63dfdd5ed45a418388b7ec74ade07 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 12:31:13 2025 -0700 verilog parse centos7 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b8e1882121ac1763e767d299fd929bdfb07c5ffb Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 10:21:48 2025 -0700 verilog names string* Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c455723c5801d2d7386e7d1d53a0f9fb501c0c03 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 09:51:47 2025 -0700 verilog reader names Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 47307b1d8a61abab91195969be8708a7646bbfe3 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 09:21:30 2025 -0700 valgrind Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0de49ba76cb0d1e06f93868676b73b4cd2ee609e Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 15 16:50:56 2025 -0700 suppress yynerrs_ warning Signed-off-by: James Cherry <cherry@parallaxsw.com> commit dbe2ba18d99d850ba5ebb1c75a4165bfff2df96d Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 15 16:37:14 2025 -0700 cmake bison target names Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 388be6c2aa69b839a53be78bafab420216554944 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 14 08:57:02 2025 -0700 network link func rm repor, network args Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f50d5b23aff126e7d396a555f06eae5597ec1354 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 13 19:48:44 2025 -0700 verilog reader use gzstream Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8a0c8ce09087cceef36824de3656b5c7cea9f0f0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 13 18:02:40 2025 -0700 VerilogScanner::error Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 413093e46e523d90e45a4c56ecaa25e4457998aa Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 18:27:53 2025 -0700 rm verilog_network Signed-off-by: James Cherry <cherry@parallaxsw.com> commit aef8358a8f44e556a3814e9ddd205e179bf2b3d7 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 18:01:09 2025 -0700 rm verilog_reader except link Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cfc34aa41a5fe1942867c73061ae483e36c74f54 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 17:04:33 2025 -0700 verilog reader rm line_ Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 62dd98b7cb800acc61192b0f326d4a3278e1a72d Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 16:26:09 2025 -0700 verilog parse use location Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad6c26984526312134d03c0f39d3fcd63617efa4 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 4 11:04:16 2025 -0800 verilog parse error Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1bff12c8c49c847de015dd32042cccf7952a2060 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 4 08:00:40 2025 -0800 attribute -> Attr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e8372df18a5374b2c9ca8f094a244d06c59a9f4e Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 3 17:57:21 2025 -0800 verilog rm string_buf Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 785818f10108f689b4ea978a13d0131546f1a4e5 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 3 16:10:10 2025 -0800 verilog parse use std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 95265fc4ad30325f115eb69d10c77afe3f265701 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 3 15:44:31 2025 -0800 verilog parser const char * -> string* Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b80db6d98057363f90a9497b10073f84c2e7cc3d Author: James Cherry <cherry@parallaxsw.com> Date: Thu Jan 2 08:31:06 2025 -0800 bison warning Signed-off-by: James Cherry <cherry@parallaxsw.com> commit df3b61bf7d590c241ee513eacfb1c7dff2a450d8 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 1 17:04:17 2025 -0800 verilog parse works Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8b5a8fbb7042ceb58fbb24b836664a1da6028c45 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 1 16:15:44 2025 -0800 rm VerilogParser.hh Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07bc0cc9c160e9dbe705f4c359973cc35342e05e Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 1 15:59:57 2025 -0800 verlog parse compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8d32f5f3d5e6a252cdb2020c62742f01b1c66f63 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Dec 30 09:14:13 2024 -0800 verilog parser Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-22 02:35:21 +01:00
// ============================================================================
// gzstream, C++ iostream classes wrapping the zlib compression library.
// Copyright (C) 2001 Deepak Bandyopadhyay, Lutz Kettner
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library 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 GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
// ============================================================================
//
// File : gzstream.h
// Revision : $Revision: 1.5 $
// Revision_date : $Date: 2002/04/26 23:30:15 $
// Author(s) : Deepak Bandyopadhyay, Lutz Kettner
//
// Standard streambuf implementation following Nicolai Josuttis, "The
// Standard C++ Library".
// ============================================================================
// downloaded from https://gist.github.com/piti118/1508048
#pragma once
// standard C++ with new header file names and std:: namespace
#include <iostream>
#include <fstream>
#include <zlib.h>
#include <string>
#include <cstring>
namespace gzstream {
// ----------------------------------------------------------------------------
// Internal classes to implement gzstream. See below for user classes.
// ----------------------------------------------------------------------------
class gzstreambuf : public std::streambuf {
private:
static const int bufferSize = 47+256; // size of data buff
// totals 512 bytes under g++ for igzstream at the end.
gzFile file; // file handle for compressed file
char buffer[bufferSize]; // data buffer
char opened; // open/close state of stream
int mode; // I/O mode
int flush_buffer() {
// Separate the writing of the buffer from overflow() and
// sync() operation.
int w = pptr() - pbase();
if ( gzwrite( file, pbase(), w) != w)
return EOF;
pbump( -w);
return w;
}
public:
gzstreambuf() : opened(0) {
setp( buffer, buffer + (bufferSize-1));
setg( buffer + 4, // beginning of putback area
buffer + 4, // read position
buffer + 4); // end position
// ASSERT: both input & output capabilities will not be used together
}
int is_open() { return opened; }
~gzstreambuf() { close(); }
gzstreambuf* open( const char* name, int open_mode) {
if ( is_open())
return (gzstreambuf*)0;
mode = open_mode;
// no append nor read/write mode
if ((mode & std::ios::ate) || (mode & std::ios::app)
|| ((mode & std::ios::in) && (mode & std::ios::out)))
return (gzstreambuf*)0;
char fmode[10];
char* fmodeptr = fmode;
if ( mode & std::ios::in)
*fmodeptr++ = 'r';
else if ( mode & std::ios::out)
*fmodeptr++ = 'w';
*fmodeptr++ = 'b';
*fmodeptr = '\0';
file = gzopen( name, fmode);
if (file == 0)
return (gzstreambuf*)0;
opened = 1;
return this;
}
gzstreambuf * close() {
if ( is_open()) {
sync();
opened = 0;
if ( gzclose( file) == Z_OK)
return this;
}
return (gzstreambuf*)0;
}
virtual int underflow() { // used for input buffer only
if ( gptr() && ( gptr() < egptr()))
return * reinterpret_cast<unsigned char *>( gptr());
if ( ! (mode & std::ios::in) || ! opened)
return EOF;
// Josuttis' implementation of inbuf
int n_putback = gptr() - eback();
if ( n_putback > 4)
n_putback = 4;
memmove( buffer + (4 - n_putback), gptr() - n_putback, n_putback);
verilog c++ parser commit 6fac3fee87a3309132b5bdbb731292ecd6410a86 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 18:24:18 2025 -0700 Sta use VerilogReader class Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 05d4bce4bcfcfaa07392b237a596a82315b895b3 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 15:14:29 2025 -0700 vparse Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e977e89b62191688db5c815131fc389d9ce401c5 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 11:30:46 2025 -0700 write_verilog missing port ddcl Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1742d5d92533559235ea4c42d9ea4bf2d47fb943 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 11:23:48 2025 -0700 verilog escape constexpr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 226a23092312a37503100d49ab74d4fb1e5856ef Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 20 09:34:32 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 63ca4ac5855710427e1ddfc5c2cba8998452d1f0 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 19:45:48 2025 -0700 leaks Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c1d38aa0cc983204b1bb3f49944709e74c831be7 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 13:26:07 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 22607b41b9eb9fc71d53214893150afb757a8a56 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 11:36:23 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit dba2bc939fc58d465229cc2d474705151cd50d05 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 10:01:14 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7d449041a2b75b874038af377d46130b45195a00 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 09:18:55 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d02495222838f037f25d131ce1b270a6121cf16f Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 08:53:47 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 10c5c1040f26c8ebe295d245a641fc913e0ec9f5 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 21:50:12 2025 -0700 verlog constant use std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21943c1b63fd36d12de1e5986905e14fe73ce7be Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 17:41:43 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c0232b71ea5137b37d055d83f3da194341aed7a0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 17:12:47 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c68fd0329ee35b4877763bcdc82e8fe03a3b16de Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 16:54:10 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 3e2dca2140db42acce390ec1a18f29ee4de3c631 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 16:07:19 2025 -0700 vparse const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 210196f9e5a63dfdd5ed45a418388b7ec74ade07 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 12:31:13 2025 -0700 verilog parse centos7 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b8e1882121ac1763e767d299fd929bdfb07c5ffb Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 10:21:48 2025 -0700 verilog names string* Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c455723c5801d2d7386e7d1d53a0f9fb501c0c03 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 09:51:47 2025 -0700 verilog reader names Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 47307b1d8a61abab91195969be8708a7646bbfe3 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 09:21:30 2025 -0700 valgrind Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0de49ba76cb0d1e06f93868676b73b4cd2ee609e Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 15 16:50:56 2025 -0700 suppress yynerrs_ warning Signed-off-by: James Cherry <cherry@parallaxsw.com> commit dbe2ba18d99d850ba5ebb1c75a4165bfff2df96d Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 15 16:37:14 2025 -0700 cmake bison target names Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 388be6c2aa69b839a53be78bafab420216554944 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 14 08:57:02 2025 -0700 network link func rm repor, network args Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f50d5b23aff126e7d396a555f06eae5597ec1354 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 13 19:48:44 2025 -0700 verilog reader use gzstream Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8a0c8ce09087cceef36824de3656b5c7cea9f0f0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 13 18:02:40 2025 -0700 VerilogScanner::error Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 413093e46e523d90e45a4c56ecaa25e4457998aa Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 18:27:53 2025 -0700 rm verilog_network Signed-off-by: James Cherry <cherry@parallaxsw.com> commit aef8358a8f44e556a3814e9ddd205e179bf2b3d7 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 18:01:09 2025 -0700 rm verilog_reader except link Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cfc34aa41a5fe1942867c73061ae483e36c74f54 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 17:04:33 2025 -0700 verilog reader rm line_ Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 62dd98b7cb800acc61192b0f326d4a3278e1a72d Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 16:26:09 2025 -0700 verilog parse use location Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad6c26984526312134d03c0f39d3fcd63617efa4 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 4 11:04:16 2025 -0800 verilog parse error Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1bff12c8c49c847de015dd32042cccf7952a2060 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 4 08:00:40 2025 -0800 attribute -> Attr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e8372df18a5374b2c9ca8f094a244d06c59a9f4e Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 3 17:57:21 2025 -0800 verilog rm string_buf Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 785818f10108f689b4ea978a13d0131546f1a4e5 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 3 16:10:10 2025 -0800 verilog parse use std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 95265fc4ad30325f115eb69d10c77afe3f265701 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 3 15:44:31 2025 -0800 verilog parser const char * -> string* Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b80db6d98057363f90a9497b10073f84c2e7cc3d Author: James Cherry <cherry@parallaxsw.com> Date: Thu Jan 2 08:31:06 2025 -0800 bison warning Signed-off-by: James Cherry <cherry@parallaxsw.com> commit df3b61bf7d590c241ee513eacfb1c7dff2a450d8 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 1 17:04:17 2025 -0800 verilog parse works Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8b5a8fbb7042ceb58fbb24b836664a1da6028c45 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 1 16:15:44 2025 -0800 rm VerilogParser.hh Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07bc0cc9c160e9dbe705f4c359973cc35342e05e Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 1 15:59:57 2025 -0800 verlog parse compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8d32f5f3d5e6a252cdb2020c62742f01b1c66f63 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Dec 30 09:14:13 2024 -0800 verilog parser Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-22 02:35:21 +01:00
int num = gzread( file, buffer+4, bufferSize-4);
if (num <= 0) // ERROR or EOF
return EOF;
// reset buffer pointers
setg( buffer + (4 - n_putback), // beginning of putback area
buffer + 4, // read position
buffer + 4 + num); // end of buffer
// return next character
return * reinterpret_cast<unsigned char *>( gptr());
}
virtual int overflow( int c=EOF) { // used for output buffer only
if ( ! ( mode & std::ios::out) || ! opened)
return EOF;
if (c != EOF) {
*pptr() = c;
pbump(1);
}
if ( flush_buffer() == EOF)
return EOF;
return c;
}
virtual int sync() {
// Changed to use flush_buffer() instead of overflow( EOF)
// which caused improper behavior with std::endl and flush(),
// bug reported by Vincent Ricard.
if ( pptr() && pptr() > pbase()) {
if ( flush_buffer() == EOF)
return -1;
}
return 0;
}
};
class gzstreambase : virtual public std::ios {
protected:
gzstreambuf buf;
public:
gzstreambase() { init(&buf); }
gzstreambase( const char* name, int mode) {
init( &buf);
open( name, mode);
}
~gzstreambase() {
buf.close();
}
void open( const char* name, int open_mode) {
if ( ! buf.open( name, open_mode))
clear( rdstate() | std::ios::badbit);
}
void close() {
if ( buf.is_open())
if ( ! buf.close())
clear( rdstate() | std::ios::badbit);
}
gzstreambuf* rdbuf() { return &buf; }
};
// ----------------------------------------------------------------------------
// User classes. Use igzstream and ogzstream analogously to ifstream and
// ofstream respectively. They read and write files based on the gz*
// function interface of the zlib. Files are compatible with gzip compression.
// ----------------------------------------------------------------------------
class igzstream : public gzstreambase, public std::istream {
public:
igzstream() : std::istream( &buf) {}
igzstream( const char* name, int open_mode = std::ios::in)
: gzstreambase( name, open_mode), std::istream( &buf) {}
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 is_open() { return buf.is_open(); }
gzstreambuf* rdbuf() { return gzstreambase::rdbuf(); }
verilog c++ parser commit 6fac3fee87a3309132b5bdbb731292ecd6410a86 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 18:24:18 2025 -0700 Sta use VerilogReader class Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 05d4bce4bcfcfaa07392b237a596a82315b895b3 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 15:14:29 2025 -0700 vparse Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e977e89b62191688db5c815131fc389d9ce401c5 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 11:30:46 2025 -0700 write_verilog missing port ddcl Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1742d5d92533559235ea4c42d9ea4bf2d47fb943 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 21 11:23:48 2025 -0700 verilog escape constexpr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 226a23092312a37503100d49ab74d4fb1e5856ef Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 20 09:34:32 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 63ca4ac5855710427e1ddfc5c2cba8998452d1f0 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 19:45:48 2025 -0700 leaks Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c1d38aa0cc983204b1bb3f49944709e74c831be7 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 13:26:07 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 22607b41b9eb9fc71d53214893150afb757a8a56 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 11:36:23 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit dba2bc939fc58d465229cc2d474705151cd50d05 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 10:01:14 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7d449041a2b75b874038af377d46130b45195a00 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 09:18:55 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d02495222838f037f25d131ce1b270a6121cf16f Author: James Cherry <cherry@parallaxsw.com> Date: Sun Jan 19 08:53:47 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 10c5c1040f26c8ebe295d245a641fc913e0ec9f5 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 21:50:12 2025 -0700 verlog constant use std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21943c1b63fd36d12de1e5986905e14fe73ce7be Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 17:41:43 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c0232b71ea5137b37d055d83f3da194341aed7a0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 17:12:47 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c68fd0329ee35b4877763bcdc82e8fe03a3b16de Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 16:54:10 2025 -0700 verilog std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 3e2dca2140db42acce390ec1a18f29ee4de3c631 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 16:07:19 2025 -0700 vparse const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 210196f9e5a63dfdd5ed45a418388b7ec74ade07 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 12:31:13 2025 -0700 verilog parse centos7 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b8e1882121ac1763e767d299fd929bdfb07c5ffb Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 10:21:48 2025 -0700 verilog names string* Signed-off-by: James Cherry <cherry@parallaxsw.com> commit c455723c5801d2d7386e7d1d53a0f9fb501c0c03 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 09:51:47 2025 -0700 verilog reader names Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 47307b1d8a61abab91195969be8708a7646bbfe3 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 18 09:21:30 2025 -0700 valgrind Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0de49ba76cb0d1e06f93868676b73b4cd2ee609e Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 15 16:50:56 2025 -0700 suppress yynerrs_ warning Signed-off-by: James Cherry <cherry@parallaxsw.com> commit dbe2ba18d99d850ba5ebb1c75a4165bfff2df96d Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 15 16:37:14 2025 -0700 cmake bison target names Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 388be6c2aa69b839a53be78bafab420216554944 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Jan 14 08:57:02 2025 -0700 network link func rm repor, network args Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f50d5b23aff126e7d396a555f06eae5597ec1354 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 13 19:48:44 2025 -0700 verilog reader use gzstream Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8a0c8ce09087cceef36824de3656b5c7cea9f0f0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Jan 13 18:02:40 2025 -0700 VerilogScanner::error Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 413093e46e523d90e45a4c56ecaa25e4457998aa Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 18:27:53 2025 -0700 rm verilog_network Signed-off-by: James Cherry <cherry@parallaxsw.com> commit aef8358a8f44e556a3814e9ddd205e179bf2b3d7 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 18:01:09 2025 -0700 rm verilog_reader except link Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cfc34aa41a5fe1942867c73061ae483e36c74f54 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 17:04:33 2025 -0700 verilog reader rm line_ Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 62dd98b7cb800acc61192b0f326d4a3278e1a72d Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 10 16:26:09 2025 -0700 verilog parse use location Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ad6c26984526312134d03c0f39d3fcd63617efa4 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 4 11:04:16 2025 -0800 verilog parse error Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1bff12c8c49c847de015dd32042cccf7952a2060 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Jan 4 08:00:40 2025 -0800 attribute -> Attr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit e8372df18a5374b2c9ca8f094a244d06c59a9f4e Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 3 17:57:21 2025 -0800 verilog rm string_buf Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 785818f10108f689b4ea978a13d0131546f1a4e5 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 3 16:10:10 2025 -0800 verilog parse use std::string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 95265fc4ad30325f115eb69d10c77afe3f265701 Author: James Cherry <cherry@parallaxsw.com> Date: Fri Jan 3 15:44:31 2025 -0800 verilog parser const char * -> string* Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b80db6d98057363f90a9497b10073f84c2e7cc3d Author: James Cherry <cherry@parallaxsw.com> Date: Thu Jan 2 08:31:06 2025 -0800 bison warning Signed-off-by: James Cherry <cherry@parallaxsw.com> commit df3b61bf7d590c241ee513eacfb1c7dff2a450d8 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 1 17:04:17 2025 -0800 verilog parse works Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8b5a8fbb7042ceb58fbb24b836664a1da6028c45 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 1 16:15:44 2025 -0800 rm VerilogParser.hh Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07bc0cc9c160e9dbe705f4c359973cc35342e05e Author: James Cherry <cherry@parallaxsw.com> Date: Wed Jan 1 15:59:57 2025 -0800 verlog parse compiles Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8d32f5f3d5e6a252cdb2020c62742f01b1c66f63 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Dec 30 09:14:13 2024 -0800 verilog parser Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-22 02:35:21 +01:00
void open( const char* name, int open_mode = std::ios::in) {
gzstreambase::open( name, open_mode);
}
};
class ogzstream : public gzstreambase, public std::ostream {
public:
ogzstream() : std::ostream( &buf) {}
ogzstream( const char* name, int mode = std::ios::out)
: gzstreambase( name, mode), std::ostream( &buf) {}
gzstreambuf* rdbuf() { return gzstreambase::rdbuf(); }
void open( const char* name, int open_mode = std::ios::out) {
gzstreambase::open( name, open_mode);
}
};
} // namespace GZSTREAM_NAMESPACE