#include "sexp.h"
/*@access sexpIter @*/
+/*@access sexpSimpleString @*/
+/*@access sexpObject @*/
/******************/
/* ERROR MESSAGES */
* Creates and initializes new sexpSimpleString object.
* Allocates 16-character buffer to hold string.
*/
-sexpSimpleString *newSimpleString(void)
+sexpSimpleString newSimpleString(void)
{
- sexpSimpleString *ss;
- ss = (sexpSimpleString *) sexpAlloc(sizeof(*ss));
+ sexpSimpleString ss;
+ ss = (sexpSimpleString) sexpAlloc(sizeof(*ss));
ss->length = 0;
ss->allocatedLength = 16;
ss->string = (octet *)sexpAlloc(16);
/* simpleStringLength(ss)
* returns length of simple string
*/
-long int simpleStringLength(sexpSimpleString *ss)
+long int simpleStringLength(sexpSimpleString ss)
{ return ss->length; }
/* simpleStringString(ss)
* returns pointer to character array of simple string
*/
-octet *simpleStringString(sexpSimpleString *ss)
+octet *simpleStringString(sexpSimpleString ss)
{ return ss->string; }
/* reallocateSimpleString(ss)
* Changes space allocated to ss.
* Space allocated is set to roughly 3/2 the current string length, plus 16.
*/
-sexpSimpleString *reallocateSimpleString(sexpSimpleString *ss)
+sexpSimpleString reallocateSimpleString(sexpSimpleString ss)
{
int newsize, i;
octet *newstring;
* Appends the character c to the end of simple string ss.
* Reallocates storage assigned to s if necessary to make room for c.
*/
-void appendCharToSimpleString(int c, sexpSimpleString *ss)
+void appendCharToSimpleString(int c, sexpSimpleString ss)
{
if (ss==NULL) {
ss = newSimpleString();
/* sexpStringPresentationHint()
* returns presentation hint field of the string
*/
-sexpSimpleString *sexpStringPresentationHint(sexpString *s)
+sexpSimpleString sexpStringPresentationHint(sexpString *s)
{ return s->presentationHint; }
/* setSexpStringPresentationHint()
* assigns the presentation hint field of the string
*/
-void setSexpStringPresentationHint(sexpString *s, sexpSimpleString *ss)
+void setSexpStringPresentationHint(sexpString *s, sexpSimpleString ss)
{ s->presentationHint = ss; }
/* setSexpStringString()
* assigns the string field of the string
*/
-void setSexpStringString(sexpString *s, sexpSimpleString *ss)
+void setSexpStringString(sexpString *s, sexpSimpleString ss)
{ s->string = ss; }
/* sexpStringString()
* returns the string field of the string
*/
-sexpSimpleString *sexpStringString(sexpString *s)
+sexpSimpleString sexpStringString(sexpString *s)
{ return s->string; }
/* closeSexpString()
/* sexpAddSexpListObject()
* add object to end of list
*/
-void sexpAddSexpListObject(sexpList *list, sexpObject *object)
+void sexpAddSexpListObject(sexpList *list, sexpObject object)
{
if (list->first == NULL)
list->first = object;
/* sexpIterObject ()
* return object corresponding to current state of iterator
*/
-sexpObject *sexpIterObject(sexpIter iter)
+sexpObject sexpIterObject(sexpIter iter)
{ if (iter == NULL) return NULL;
return ((sexpList *)iter)->first;
}
/* SEXP OBJECT MANIPULATION */
/****************************/
-int isObjectString(sexpObject *object)
+int isObjectString(sexpObject object)
{ if (((sexpString *)object)->type == SEXP_STRING) return TRUE;
else return FALSE;
}
-int isObjectList(sexpObject *object)
+int isObjectList(sexpObject object)
{ if (((sexpList *)object)->type == SEXP_LIST) return TRUE;
else return FALSE;
}
#include "sexp.h"
/*@access sexpInputStream @*/
+/*@access sexpObject @*/
/**************************************/
/* CHARACTER ROUTINES AND DEFINITIONS */
/* scanToken(is,ss)
* scan one or more characters into simple string ss as a token.
*/
-void scanToken(sexpInputStream is, sexpSimpleString *ss)
+void scanToken(sexpInputStream is, sexpSimpleString ss)
{
skipWhiteSpace(is);
while (isTokenChar(is->nextChar))
* scan one or more characters (until EOF reached)
* return an object that is just that string
*/
-sexpObject *scanToEOF(sexpInputStream is)
+sexpObject scanToEOF(sexpInputStream is)
{
- sexpSimpleString *ss = newSimpleString();
+ sexpSimpleString ss = newSimpleString();
sexpString *s = newSexpString();
setSexpStringString(s,ss);
skipWhiteSpace(is);
appendCharToSimpleString(is->nextChar,ss);
is->getChar(is);
}
- return (sexpObject *)s;
+ return (sexpObject)s;
}
/* scanDecimal(is)
/* scanVerbatimString(is,ss,length)
* Reads verbatim string of given length into simple string ss.
*/
-void scanVerbatimString(sexpInputStream is, sexpSimpleString *ss, long int length)
+void scanVerbatimString(sexpInputStream is, sexpSimpleString ss, long int length)
{
long int i = 0L;
skipWhiteSpace(is);
* Handles ordinary C escapes.
* If of indefinite length, length is -1.
*/
-void scanQuotedString(sexpInputStream is, sexpSimpleString *ss, long int length)
+void scanQuotedString(sexpInputStream is, sexpSimpleString ss, long int length)
{
int c;
skipChar(is,'"');
* Reads hexadecimal string into simple string ss.
* String is of given length result, or length = -1 if indefinite length.
*/
-void scanHexString(sexpInputStream is, sexpSimpleString *ss, long int length)
+void scanHexString(sexpInputStream is, sexpSimpleString ss, long int length)
{ changeInputByteSize(is,4);
skipChar(is,'#');
while (is->nextChar != EOF && (is->nextChar != '#' || is->byteSize==4))
* Reads base64 string into simple string ss.
* String is of given length result, or length = -1 if indefinite length.
*/
-void scanBase64String(sexpInputStream is, sexpSimpleString *ss, long int length)
+void scanBase64String(sexpInputStream is, sexpSimpleString ss, long int length)
{ changeInputByteSize(is,6);
skipChar(is,'|');
while (is->nextChar != EOF && (is->nextChar != '|' || is->byteSize == 6))
* Determines type of simple string from the initial character, and
* dispatches to appropriate routine based on that.
*/
-sexpSimpleString *scanSimpleString(sexpInputStream is)
+sexpSimpleString scanSimpleString(sexpInputStream is)
{
long int length;
- sexpSimpleString *ss;
+ sexpSimpleString ss;
ss = newSimpleString();
skipWhiteSpace(is);
/* Note that it is important in the following code to test for token-ness
sexpString *scanString(sexpInputStream is)
{
sexpString *s;
- sexpSimpleString *ss;
+ sexpSimpleString ss;
s = newSexpString();
if (is->nextChar == '[')
/* scan presentation hint */
*/
sexpList *scanList(sexpInputStream is)
{ sexpList *list;
- sexpObject *object;
+ sexpObject object;
skipChar(is,'(');
skipWhiteSpace(is);
list = newSexpList();
/* scanObject(is)
* Reads and returns a sexpObject from the given input stream.
*/
-sexpObject *scanObject(sexpInputStream is)
+sexpObject scanObject(sexpInputStream is)
{
- sexpObject *object;
+ sexpObject object;
skipWhiteSpace(is);
if (is->nextChar == '{')
{
}
else
{ if (is->nextChar == '(')
- object = (sexpObject *)scanList(is);
+ object = (sexpObject)scanList(is);
else
- object = (sexpObject *)scanString(is);
+ object = (sexpObject)scanString(is);
return object;
}
}
{
poptContext optCon;
int rc;
- sexpObject *object;
+ sexpObject object;
sexpInputStream is;
sexpOutputStream os;
#include "sexp.h"
/*@access sexpOutputStream @*/
+/*@access sexpSimpleString @*/
+/*@access sexpObject @*/
/*@unchecked@*/ /*@observer@*/
static char *hexDigits = "0123456789ABCDEF";
/* canonicalPrintVerbatimSimpleString(os,ss)
* Print out simple string ss on output stream os as verbatim string.
*/
-void canonicalPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void canonicalPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString ss)
{
long int len = simpleStringLength(ss);
long int i;
* Prints out sexp string s onto output stream os
*/
void canonicalPrintString(sexpOutputStream os, sexpString *s)
-{ sexpSimpleString *ph, *ss;
- ph = sexpStringPresentationHint(s);
- if (ph != NULL) {
- varPutChar(os,'[');
- canonicalPrintVerbatimSimpleString(os,ph);
- varPutChar(os,']');
- }
- ss = sexpStringString(s);
- if (ss == NULL)
- ErrorMessage(ERROR,"NULL string can't be printed.");
- else
- canonicalPrintVerbatimSimpleString(os,ss);
+{
+ sexpSimpleString ph = sexpStringPresentationHint(s);
+ sexpSimpleString ss;
+
+ if (ph != NULL) {
+ varPutChar(os,'[');
+ canonicalPrintVerbatimSimpleString(os,ph);
+ varPutChar(os,']');
+ }
+ ss = sexpStringString(s);
+ if (ss == NULL)
+ ErrorMessage(ERROR,"NULL string can't be printed.");
+ else
+ canonicalPrintVerbatimSimpleString(os,ss);
}
/* canonicalPrintList(os,list)
*/
void canonicalPrintList(sexpOutputStream os, sexpList *list)
{ sexpIter iter;
- sexpObject *object;
+ sexpObject object;
varPutChar(os,'(');
iter = sexpListIter(list);
while (iter != NULL) {
* Prints out object on output stream os
* Note that this uses the common "type" field of lists and strings.
*/
-void canonicalPrintObject(sexpOutputStream os, sexpObject *object)
+void canonicalPrintObject(sexpOutputStream os, sexpObject object)
{
if (isObjectString(object))
canonicalPrintString(os,(sexpString *)object);
/* *************/
/* Same as canonical, except all characters get put out as base 64 ones */
-void base64PrintWholeObject(sexpOutputStream os, sexpObject *object)
+void base64PrintWholeObject(sexpOutputStream os, sexpObject object)
{
changeOutputByteSize(os,8,BASE64);
varPutChar(os,'{');
* Returns TRUE if simple string ss can be printed as a token.
* Doesn't begin with a digit, and all characters are tokenchars.
*/
-int canPrintAsToken(sexpOutputStream os, sexpSimpleString *ss)
+int canPrintAsToken(sexpOutputStream os, sexpSimpleString ss)
{
int i;
octet *c;
* Prints out simple string ss as a token (assumes that this is OK).
* May run over max-column, but there is no fragmentation allowed...
*/
-void advancedPrintTokenSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintTokenSimpleString(sexpOutputStream os, sexpSimpleString ss)
{ int i;
long int len;
octet *c;
/* advancedLengthSimpleStringToken(ss)
* Returns length for printing simple string ss as a token
*/
-int advancedLengthSimpleStringToken(sexpSimpleString *ss)
+int advancedLengthSimpleStringToken(sexpSimpleString ss)
{ return simpleStringLength(ss); }
* Print out simple string ss on output stream os as verbatim string.
* Again, can't fragment string, so max-column is just a suggestion...
*/
-void advancedPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString ss)
{
long int len = simpleStringLength(ss);
long int i;
/* advancedLengthSimpleStringVerbatim(ss)
* Returns length for printing simple string ss in verbatim mode
*/
-int advancedLengthSimpleStringVerbatim(sexpSimpleString *ss)
+int advancedLengthSimpleStringVerbatim(sexpSimpleString ss)
{ long int len = simpleStringLength(ss);
int i = 1;
while (len > 9L) { i++; len = len / 10; }
/* advancedPrintBase64SimpleString(os,ss)
* Prints out simple string ss as a base64 value.
*/
-void advancedPrintBase64SimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintBase64SimpleString(sexpOutputStream os, sexpSimpleString ss)
{
long int i,len;
octet *c = simpleStringString(ss);
/* advancedPrintHexSimpleString(os,ss)
* Prints out simple string ss as a hexadecimal value.
*/
-void advancedPrintHexSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintHexSimpleString(sexpOutputStream os, sexpSimpleString ss)
{
long int i,len;
octet *c = simpleStringString(ss);
/* advancedLengthSimpleStringHexadecimal(ss)
* Returns length for printing simple string ss in hexadecimal mode
*/
-int advancedLengthSimpleStringHexadecimal(sexpSimpleString *ss)
+int advancedLengthSimpleStringHexadecimal(sexpSimpleString ss)
{ long int len = simpleStringLength(ss);
return (1+2*len+1);
}
* Returns TRUE if simple string ss can be printed as a quoted string.
* Must have only tokenchars and blanks.
*/
-int canPrintAsQuotedString(sexpSimpleString *ss)
+int canPrintAsQuotedString(sexpSimpleString ss)
{
long int i, len;
octet *c = simpleStringString(ss);
* so no escape sequences need to be generated.
* May run over max-column, but there is no fragmentation allowed...
*/
-void advancedPrintQuotedStringSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintQuotedStringSimpleString(sexpOutputStream os, sexpSimpleString ss)
{ long int i;
long int len = simpleStringLength(ss);
octet *c = simpleStringString(ss);
/* advancedLengthSimpleStringQuotedString(ss)
* Returns length for printing simple string ss in quoted-string mode
*/
-int advancedLengthSimpleStringQuotedString(sexpSimpleString *ss)
+int advancedLengthSimpleStringQuotedString(sexpSimpleString ss)
{ long int len = simpleStringLength(ss);
return (1+len+1);
}
/* advancedPrintSimpleString(os,ss)
* Prints out simple string ss onto output stream ss
*/
-void advancedPrintSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintSimpleString(sexpOutputStream os, sexpSimpleString ss)
{ long int len = simpleStringLength(ss);
if (canPrintAsToken(os,ss))
advancedPrintTokenSimpleString(os,ss);
*/
void advancedPrintString(sexpOutputStream os, sexpString *s)
{
- sexpSimpleString *ph = sexpStringPresentationHint(s);
- sexpSimpleString *ss = sexpStringString(s);
- if (ph != NULL)
- { os->putChar(os,'[');
- advancedPrintSimpleString(os,ph);
- os->putChar(os,']');
+ sexpSimpleString ph = sexpStringPresentationHint(s);
+ sexpSimpleString ss = sexpStringString(s);
+
+ if (ph != NULL) {
+ os->putChar(os,'[');
+ advancedPrintSimpleString(os, ph);
+ os->putChar(os,']');
}
- if (ss == NULL)
- ErrorMessage(ERROR,"NULL string can't be printed.");
- else
- advancedPrintSimpleString(os,ss);
+ if (ss == NULL)
+ ErrorMessage(ERROR,"NULL string can't be printed.");
+ else
+ advancedPrintSimpleString(os, ss);
}
/* advancedLengthSimpleStringBase64(ss)
* Returns length for printing simple string ss as a base64 string
*/
-int advancedLengthSimpleStringBase64(sexpSimpleString *ss)
+int advancedLengthSimpleStringBase64(sexpSimpleString ss)
{ return (2+4*((simpleStringLength(ss)+2)/3)); }
/* advancedLengthSimpleString(os,ss)
* Returns length of printed image of s
*/
-int advancedLengthSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+int advancedLengthSimpleString(sexpOutputStream os, sexpSimpleString ss)
{ long int len = simpleStringLength(ss);
if (canPrintAsToken(os,ss))
return advancedLengthSimpleStringToken(ss);
* Returns length of printed image of string s
*/
int advancedLengthString(sexpOutputStream os, sexpString *s)
-{ int len = 0;
- sexpSimpleString *ph = sexpStringPresentationHint(s);
- sexpSimpleString *ss = sexpStringString(s);
- if (ph != NULL)
- len += 2+advancedLengthSimpleString(os,ph);
- if (ss != NULL)
- len += advancedLengthSimpleString(os,ss);
- return len;
+{
+ sexpSimpleString ph = sexpStringPresentationHint(s);
+ sexpSimpleString ss = sexpStringString(s);
+ int len = 0;
+
+ if (ph != NULL)
+ len += 2+advancedLengthSimpleString(os,ph);
+ if (ss != NULL)
+ len += advancedLengthSimpleString(os,ss);
+ return len;
}
/* advancedLengthList(os,list)
int advancedLengthList(sexpOutputStream os, sexpList *list)
{ int len = 1; /* for left paren */
sexpIter iter;
- sexpObject *object;
+ sexpObject object;
iter = sexpListIter(list);
while (iter != NULL)
{ object = sexpIterObject(iter);
{ int vertical = FALSE;
int firstelement = TRUE;
sexpIter iter;
- sexpObject *object;
+ sexpObject object;
os->putChar(os,'(');
os->indent++;
if (advancedLengthList(os,list) > os->maxcolumn - os->column)
/* advancedPrintObject(os,object)
* Prints out object on output stream os
*/
-void advancedPrintObject(sexpOutputStream os, sexpObject *object)
+void advancedPrintObject(sexpOutputStream os, sexpObject object)
{
if (os->maxcolumn>0 && os->column>os->maxcolumn-4)
os->newLine(os,ADVANCED);
#define SEXP_LIST 2
/* sexpSimpleString */
-typedef struct sexp_simplestring {
+typedef /*@abstract@*/ struct sexp_simplestring {
long int length;
long int allocatedLength;
/*@null@*/
octet *string;
-} sexpSimpleString;
+} * sexpSimpleString;
/* sexpString */
typedef struct sexp_string {
int type;
/*@null@*/
- sexpSimpleString *presentationHint;
+ sexpSimpleString presentationHint;
/*@null@*/
- sexpSimpleString *string;
+ sexpSimpleString string;
} sexpString;
+/* sexpObject */
+typedef /*@abstract@*/ union sexpObject_u * sexpObject;
+
/* sexpList */
/* If first is NULL, then rest must also be NULL; this is empty list */
typedef struct sexp_list {
char type;
/*@null@*/
- union sexp_object *first;
+ sexpObject first;
/*@null@*/
struct sexp_list *rest;
} sexpList;
/* sexpObject */
/* so we can have a pointer to something of either type */
-typedef union sexp_object {
+union sexpObject_u {
/*@unused@*/
sexpString string;
/*@unused@*/
sexpList list;
-} sexpObject;
+};
/* sexpIter */
/* an "iterator" for going over lists */
/* In this implementation, it is the same as a list */
typedef /*@abstract@*/ sexpList * sexpIter;
-typedef /*@abstract@*/ struct sexp_inputstream {
+typedef /*@abstract@*/ struct sexpInputStream_s {
int nextChar; /* character currently being scanned */
int byteSize; /* 4 or 6 or 8 == currently scanning mode */
int bits; /* Bits waiting to be used */
FILE *inputFile; /* where to get input, if not stdin */
} * sexpInputStream;
-typedef /*@abstract@*/ struct sexp_outputstream {
+typedef /*@abstract@*/ struct sexpOutputStream_s {
long int column; /* column where next character will go */
long int maxcolumn; /* max usable column, or -1 if no maximum */
long int indent; /* current indentation level (starts at 0) */
char *sexpAlloc(int n)
/*@globals fileSystem @*/
/*@modifies fileSystem @*/;
-sexpSimpleString *newSimpleString(void)
+sexpSimpleString newSimpleString(void)
/*@globals fileSystem @*/
/*@modifies fileSystem @*/;
-long int simpleStringLength(sexpSimpleString *ss)
+long int simpleStringLength(sexpSimpleString ss)
/*@*/;
-/*@null@*/
-octet *simpleStringString(sexpSimpleString *ss)
+/*@exposed@*/ /*@null@*/
+octet *simpleStringString(sexpSimpleString ss)
/*@*/;
/*@null@*/
-sexpSimpleString *reallocateSimpleString(sexpSimpleString *ss)
+sexpSimpleString reallocateSimpleString(sexpSimpleString ss)
/*@globals fileSystem @*/
/*@modifies ss, fileSystem @*/;
-void appendCharToSimpleString(int c, sexpSimpleString *ss)
+void appendCharToSimpleString(int c, sexpSimpleString ss)
/*@globals fileSystem @*/
/*@modifies ss, fileSystem @*/;
sexpString *newSexpString(void)
/*@globals fileSystem @*/
/*@modifies fileSystem @*/;
/*@null@*/
-sexpSimpleString *sexpStringPresentationHint(sexpString *s)
+sexpSimpleString sexpStringPresentationHint(sexpString *s)
/*@*/;
-void setSexpStringPresentationHint(sexpString *s, sexpSimpleString *ss)
+void setSexpStringPresentationHint(sexpString *s, sexpSimpleString ss)
/*@modifies s @*/;
-void setSexpStringString(sexpString *s, sexpSimpleString *ss)
+void setSexpStringString(sexpString *s, sexpSimpleString ss)
/*@modifies s @*/;
/*@null@*/
-sexpSimpleString *sexpStringString(sexpString *s)
+sexpSimpleString sexpStringString(sexpString *s)
/*@*/;
void closeSexpString(sexpString *s)
/*@*/;
sexpList *newSexpList(void)
/*@globals fileSystem @*/
/*@modifies fileSystem @*/;
-void sexpAddSexpListObject(sexpList *list, sexpObject *object)
+void sexpAddSexpListObject(sexpList *list, sexpObject object)
/*@globals fileSystem @*/
/*@modifies list, fileSystem @*/;
void closeSexpList(sexpList *list)
sexpIter sexpIterNext(sexpIter iter)
/*@*/;
/*@exposed@*/ /*@observer@*/ /*@null@*/
-sexpObject *sexpIterObject(sexpIter iter)
+sexpObject sexpIterObject(sexpIter iter)
/*@*/;
-int isObjectString(sexpObject *object)
+int isObjectString(sexpObject object)
/*@*/;
-int isObjectList(sexpObject *object)
+int isObjectList(sexpObject object)
/*@*/;
/* sexp-input */
void skipChar(sexpInputStream is, int c)
/*@globals fileSystem @*/
/*@modifies is, fileSystem @*/;
-void scanToken(sexpInputStream is, sexpSimpleString *ss)
+void scanToken(sexpInputStream is, sexpSimpleString ss)
/*@globals fileSystem @*/
/*@modifies is, ss, fileSystem @*/;
-sexpObject *scanToEOF(sexpInputStream is)
+sexpObject scanToEOF(sexpInputStream is)
/*@globals fileSystem @*/
/*@modifies is, fileSystem @*/;
unsigned long int scanDecimal(sexpInputStream is)
/*@globals fileSystem @*/
/*@modifies is, fileSystem @*/;
-void scanVerbatimString(sexpInputStream is, sexpSimpleString *ss, long int length)
+void scanVerbatimString(sexpInputStream is, sexpSimpleString ss, long int length)
/*@globals fileSystem @*/
/*@modifies is, ss, fileSystem @*/;
-void scanQuotedString(sexpInputStream is, sexpSimpleString *ss, long int length)
+void scanQuotedString(sexpInputStream is, sexpSimpleString ss, long int length)
/*@globals fileSystem @*/
/*@modifies is, ss, fileSystem @*/;
-void scanHexString(sexpInputStream is, sexpSimpleString *ss, long int length)
+void scanHexString(sexpInputStream is, sexpSimpleString ss, long int length)
/*@globals fileSystem @*/
/*@modifies is, ss, fileSystem @*/;
-void scanBase64String(sexpInputStream is, sexpSimpleString *ss, long int length)
+void scanBase64String(sexpInputStream is, sexpSimpleString ss, long int length)
/*@globals fileSystem @*/
/*@modifies is, ss, fileSystem @*/;
-sexpSimpleString *scanSimpleString(sexpInputStream is)
+sexpSimpleString scanSimpleString(sexpInputStream is)
/*@globals fileSystem @*/
/*@modifies is, fileSystem @*/;
sexpString *scanString(sexpInputStream is)
sexpList *scanList(sexpInputStream is)
/*@globals fileSystem @*/
/*@modifies is, fileSystem @*/;
-sexpObject *scanObject(sexpInputStream is)
+sexpObject scanObject(sexpInputStream is)
/*@globals fileSystem @*/
/*@modifies is, fileSystem @*/;
/*@modifies fileSystem @*/;
void printDecimal(sexpOutputStream os, long int n)
/*@modifies os @*/;
-void canonicalPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void canonicalPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString ss)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
void canonicalPrintString(sexpOutputStream os, sexpString *s)
void canonicalPrintList(sexpOutputStream os, sexpList *list)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
-void canonicalPrintObject(sexpOutputStream os, sexpObject *object)
+void canonicalPrintObject(sexpOutputStream os, sexpObject object)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
-void base64PrintWholeObject(sexpOutputStream os, sexpObject *object)
+void base64PrintWholeObject(sexpOutputStream os, sexpObject object)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
-int canPrintAsToken(sexpOutputStream os, sexpSimpleString *ss)
+int canPrintAsToken(sexpOutputStream os, sexpSimpleString ss)
/*@*/;
-void advancedPrintTokenSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintTokenSimpleString(sexpOutputStream os, sexpSimpleString ss)
/*@modifies os @*/;
-int advancedLengthSimpleStringToken(sexpSimpleString *ss)
+int advancedLengthSimpleStringToken(sexpSimpleString ss)
/*@*/;
/*@unused@*/
-void advancedPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintVerbatimSimpleString(sexpOutputStream os, sexpSimpleString ss)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
/*@unused@*/
-int advancedLengthSimpleStringVerbatim(sexpSimpleString *ss)
+int advancedLengthSimpleStringVerbatim(sexpSimpleString ss)
/*@*/;
-void advancedPrintBase64SimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintBase64SimpleString(sexpOutputStream os, sexpSimpleString ss)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
-void advancedPrintHexSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintHexSimpleString(sexpOutputStream os, sexpSimpleString ss)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
-int advancedLengthSimpleStringHexadecimal(sexpSimpleString *ss)
+int advancedLengthSimpleStringHexadecimal(sexpSimpleString ss)
/*@*/;
-int canPrintAsQuotedString(sexpSimpleString *ss)
+int canPrintAsQuotedString(sexpSimpleString ss)
/*@*/;
-void advancedPrintQuotedStringSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintQuotedStringSimpleString(sexpOutputStream os, sexpSimpleString ss)
/*@modifies os @*/;
-int advancedLengthSimpleStringQuotedString(sexpSimpleString *ss)
+int advancedLengthSimpleStringQuotedString(sexpSimpleString ss)
/*@*/;
-void advancedPrintSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+void advancedPrintSimpleString(sexpOutputStream os, sexpSimpleString ss)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
void advancedPrintString(sexpOutputStream os, sexpString *s)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
-int advancedLengthSimpleStringBase64(sexpSimpleString *ss)
+int advancedLengthSimpleStringBase64(sexpSimpleString ss)
/*@*/;
-int advancedLengthSimpleString(sexpOutputStream os, sexpSimpleString *ss)
+int advancedLengthSimpleString(sexpOutputStream os, sexpSimpleString ss)
/*@*/;
int advancedLengthString(sexpOutputStream os, sexpString *s)
/*@*/;
void advancedPrintList(sexpOutputStream os, sexpList *list)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;
-void advancedPrintObject(sexpOutputStream os, sexpObject *object)
+void advancedPrintObject(sexpOutputStream os, sexpObject object)
/*@globals fileSystem @*/
/*@modifies os, fileSystem @*/;