Updates to JSON parser.

This commit is contained in:
Alan Mishchenko 2019-12-02 22:53:26 -08:00
parent 235176d8fb
commit d1462693cf
1 changed files with 20 additions and 0 deletions

View File

@ -289,6 +289,21 @@ void Json_Write( char * pFileName, Abc_Nam_t * pStr, Vec_Wec_t * vObjs )
SeeAlso []
***********************************************************************/
char * Json_ReadPreprocess( char * pIn, int nFileSize )
{
char * pOut = ABC_ALLOC( char, 3*nFileSize ); int i, k = 0;
for ( i = 0; i < nFileSize; i++ )
if ( pIn[i] == '{' || pIn[i] == '}' || pIn[i] == '[' || pIn[i] == ']' )
{
pOut[k++] = ' ';
pOut[k++] = pIn[i];
pOut[k++] = ' ';
}
else
pOut[k++] = pIn[i];
pOut[k++] = '\0';
return pOut;
}
Vec_Wec_t * Json_Read( char * pFileName, Abc_Nam_t ** ppStrs )
{
Abc_Nam_t * pStrs;
@ -311,6 +326,11 @@ Vec_Wec_t * Json_Read( char * pFileName, Abc_Nam_t ** ppStrs )
pContents[nFileSize] = 0;
fclose( pFile );
pContents = Json_ReadPreprocess( pCur = pContents, nFileSize );
nFileSize = strlen(pContents);
ABC_FREE( pCur );
pCur = pContents;
// start data-structures
vObjs = Vec_WecAlloc( 1000 );
vStack = Vec_IntAlloc( 100 );