summaryrefslogtreecommitdiffstats
path: root/src/base/wlc/wlcReadSmt.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2015-02-11 18:09:15 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2015-02-11 18:09:15 -0800
commitea2d82ab141c5a162f2c2cf0adce74a21d911d8a (patch)
tree27fe7eee9a21fb9d014e23129310d424d4a70781 /src/base/wlc/wlcReadSmt.c
parente363727c62d5fbbf0edadb73a02e4efa324e1509 (diff)
downloadabc-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.c25
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 ///