ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
verParse.c
Go to the documentation of this file.
1
20
21#include "ver.h"
22
24
25
29
33
46{
47 Ver_Stream_t * p = pMan->pReader;
48 char Symbol;
49 // skip spaces
50 Ver_StreamSkipChars( p, " \t\n\r" );
51 if ( !Ver_StreamIsOkey(pMan->pReader) )
52 return 1;
53 // read the first symbol
54 Symbol = Ver_StreamScanChar( p );
55 if ( Symbol != '/' )
56 return 1;
58 // read the second symbol
59 Symbol = Ver_StreamScanChar( p );
60 if ( Symbol == '/' )
61 { // skip till the end of line
62 Ver_StreamSkipToChars( p, "\n" );
63 return Ver_ParseSkipComments( pMan );
64 }
65 if ( Symbol == '*' )
66 { // skip till the next occurrence of */
68 do {
71 } while ( Ver_StreamScanChar( p ) != '/' );
73 return Ver_ParseSkipComments( pMan );
74 }
75 sprintf( pMan->sError, "Cannot parse after symbol \"/\"." );
77 return 0;
78}
79
92{
93 Ver_Stream_t * p = pMan->pReader;
94 char Symbol;
95 char * pWord;
96 pMan->fNameLast = 0;
97 if ( !Ver_StreamIsOkey(p) )
98 return NULL;
99 if ( !Ver_ParseSkipComments( pMan ) )
100 return NULL;
101 Symbol = Ver_StreamScanChar( p );
102 if ( Symbol == '\\' )
103 {
104 pMan->fNameLast = 1;
106 pWord = Ver_StreamGetWord( p, " \r\n" );
107 Ver_StreamSkipChars( p, " \r\n" );
108 if ( Ver_StreamScanChar(p) == '[' )
109 {
110 char This, * pEnd = pWord + strlen( pWord );
111 while ( (This = Ver_StreamPopChar(p)) != ']' )
112 *pEnd++ = This;
113 *pEnd++ = This;
114 *pEnd = 0;
115 }
116 }
117 else
118 pWord = Ver_StreamGetWord( p, " \t\n\r(),;" );
119 if ( Ver_StreamIsOkey(p) && !Ver_ParseSkipComments( pMan ) )
120 return NULL;
121 return pWord;
122}
123
124
128
129
131
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
Cube * p
Definition exorList.c:222
int strlen()
char * sprintf()
char * Ver_ParseGetName(Ver_Man_t *pMan)
Definition verParse.c:91
ABC_NAMESPACE_IMPL_START int Ver_ParseSkipComments(Ver_Man_t *pMan)
DECLARATIONS ///.
Definition verParse.c:45
int Ver_StreamIsOkey(Ver_Stream_t *p)
Definition verStream.c:242
struct Ver_Stream_t_ Ver_Stream_t
Definition ver.h:46
char * Ver_StreamGetWord(Ver_Stream_t *p, char *pCharsToStop)
Definition verStream.c:397
void Ver_ParsePrintErrorMessage(Ver_Man_t *p)
Definition verCore.c:278
char Ver_StreamPopChar(Ver_Stream_t *p)
Definition verStream.c:275
void Ver_StreamSkipChars(Ver_Stream_t *p, char *pCharsToSkip)
Definition verStream.c:304
typedefABC_NAMESPACE_HEADER_START struct Ver_Man_t_ Ver_Man_t
INCLUDES ///.
Definition ver.h:45
void Ver_StreamSkipToChars(Ver_Stream_t *p, char *pCharsToStop)
Definition verStream.c:349
char Ver_StreamScanChar(Ver_Stream_t *p)
Definition verStream.c:258