From ea2d82ab141c5a162f2c2cf0adce74a21d911d8a Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Wed, 11 Feb 2015 18:09:15 -0800 Subject: Modifications to read SMTLIB file from stdin. --- src/base/wlc/wlcReadSmt.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src/base/wlc/wlcReadSmt.c') diff --git a/src/base/wlc/wlcReadSmt.c b/src/base/wlc/wlcReadSmt.c index 35d3ed87..ec1ec567 100644 --- a/src/base/wlc/wlcReadSmt.c +++ b/src/base/wlc/wlcReadSmt.c @@ -99,13 +99,9 @@ static inline char * Prs_SmtLoadFile( char * pFileName, char ** ppLimit ) *ppLimit = pBuffer + nFileSize + 2; return pBuffer; } -static inline Prs_Smt_t * Prs_SmtAlloc( char * pFileName ) +static inline Prs_Smt_t * Prs_SmtAlloc( char * pFileName, char * pBuffer, char * pLimit ) { Prs_Smt_t * p; - char * pBuffer, * pLimit; - pBuffer = Prs_SmtLoadFile( pFileName, &pLimit ); - if ( pBuffer == NULL ) - return NULL; p = ABC_CALLOC( Prs_Smt_t, 1 ); p->pName = pFileName; p->pBuffer = pBuffer; @@ -121,7 +117,6 @@ static inline void Prs_SmtFree( Prs_Smt_t * p ) if ( p->pStrs ) Abc_NamDeref( p->pStrs ); Vec_IntErase( &p->vData ); - ABC_FREE( p->pBuffer ); ABC_FREE( p ); } @@ -655,22 +650,32 @@ Wlc_Ntk_t * Prs_SmtBuild( Prs_Smt_t * p ) Vec_IntFree( vFanins ); return pNtk; } -Wlc_Ntk_t * Wlc_ReadSmt( char * pFileName ) +Wlc_Ntk_t * Wlc_ReadSmtBuffer( char * pFileName, char * pBuffer, char * pLimit ) { Wlc_Ntk_t * pNtk = NULL; - Prs_Smt_t * p = Prs_SmtAlloc( pFileName ); + Prs_Smt_t * p = Prs_SmtAlloc( pFileName, pBuffer, pLimit ); if ( p == NULL ) return NULL; Prs_SmtRemoveComments( p ); Prs_SmtReadLines( p ); //Prs_SmtPrintParser( p ); if ( Prs_SmtErrorPrint(p) ) - { pNtk = Prs_SmtBuild( p ); - } Prs_SmtFree( p ); return pNtk; } +Wlc_Ntk_t * Wlc_ReadSmt( char * pFileName ) +{ + Wlc_Ntk_t * pNtk = NULL; + Prs_Smt_t * p = NULL; + char * pBuffer, * pLimit; + pBuffer = Prs_SmtLoadFile( pFileName, &pLimit ); + if ( pBuffer == NULL ) + return NULL; + pNtk = Wlc_ReadSmtBuffer( pFileName, pBuffer, pLimit ); + ABC_FREE( pBuffer ); + return pNtk; +} //////////////////////////////////////////////////////////////////////// /// END OF FILE /// -- cgit v1.2.3