diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2015-02-11 18:09:15 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2015-02-11 18:09:15 -0800 |
commit | ea2d82ab141c5a162f2c2cf0adce74a21d911d8a (patch) | |
tree | 27fe7eee9a21fb9d014e23129310d424d4a70781 /src/base/wlc/wlcReadSmt.c | |
parent | e363727c62d5fbbf0edadb73a02e4efa324e1509 (diff) | |
download | abc-ea2d82ab141c5a162f2c2cf0adce74a21d911d8a.tar.gz abc-ea2d82ab141c5a162f2c2cf0adce74a21d911d8a.tar.bz2 abc-ea2d82ab141c5a162f2c2cf0adce74a21d911d8a.zip |
Modifications to read SMTLIB file from stdin.
Diffstat (limited to 'src/base/wlc/wlcReadSmt.c')
-rw-r--r-- | src/base/wlc/wlcReadSmt.c | 25 |
1 files changed, 15 insertions, 10 deletions
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 /// |