1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
/****************************************************************************
**
*W read.h GAP source Martin Schoenert
**
*H @(#)$Id: read.h,v 4.16.2.1 2008/04/22 10:53:05 sal Exp $
*Y (C) 1998 School Math and Comp. Sci., University of St. Andrews, Scotland
*Y Copyright (C) 2002 The GAP Group
**
** This module declares the functions to read expressions and statements.
*/
#ifdef INCLUDE_DECLARATION_PART
const char * Revision_read_h =
"@(#)$Id: read.h,v 4.16.2.1 2008/04/22 10:53:05 sal Exp $";
#endif
/****************************************************************************
**
*F READ_ERROR() . . . . . . . . . . . . . . . . . . . reader found an error
**
** 'READ_ERROR' returns a non-zero value if the reader found an error, or if
** the interpretation of an expression or statement lead to an error (in
** which case 'ReadEvalError' jumps back to 'READ_ERROR' via 'longjmp').
*/
extern jmp_buf ReadJmpError;
#ifndef DEBUG_READ_ERROR
#define READ_ERROR() (NrError || (NrError+=setjmp(ReadJmpError)))
#else
#define READ_ERROR() \
( NrError || \
( ( NrError += setjmp(ReadJmpError) ) ? \
Pr( "READ_ERROR( %s, %d )\n", (Int)__FILE__, __LINE__ ),0 : 0 ), \
NrError )
#endif
/****************************************************************************
**
*F * * * * * * * * * * * * read and evaluate symbols * * * * * * * * * * * *
*/
/****************************************************************************
**
*V ReadEvalResult . . . . . . . . result of reading one command immediately
*/
extern Obj ReadEvalResult;
/****************************************************************************
**
*F ReadEvalCommand() . . . . . . . . . . . . . . . . . . . read one command
**
** 'ReadEvalCommand' reads one command and interprets it immediately.
**
** It does not expect the first symbol of its input already read and wont
** read the first symbol of the next input.
**
*/
extern UInt ReadEvalCommand ( void );
/****************************************************************************
**
*F ReadEvalFile() . . . . . . . . . . . . . . . . . . . . . . . read a file
**
** 'ReadEvalFile' reads an entire file and returns (in 'ReadEvalResult') the
** entire file as thunk, i.e., as function of no argument.
**
** It does not expect the first symbol of its input already read and wont
** reads to the end of the input (unless an error happens).
*/
extern UInt ReadEvalFile ( void );
/****************************************************************************
**
*F ReadEvalError() . . . . . . . . . . . . . . . . . . return with an error
*/
extern void ReadEvalError ( void );
extern ExecStatus ReadEvalDebug ( void );
/****************************************************************************
**
*V StackNams, CountNames . . . . . .stack of lists of local variable names
**
** This is exported to support a rather nasty hack in intrprtr.c todo with
** while loops and the break loop
*/
extern Obj StackNams;
extern UInt CountNams;
extern void PushGlobalForLoopVariable( UInt var);
extern void PopGlobalForLoopVariable( void );
extern UInt GlobalComesFromEnclosingForLoop (UInt var);
/****************************************************************************
**
*F Call0ArgsInNewReader(Obj f) . . . . . . . . . . . . call a GAP function
**
** The current reader context is saved and a new one is started.
*/
Obj Call0ArgsInNewReader(Obj f);
/****************************************************************************
**
*F Call1ArgsInNewReader(Obj f,Obj a) . . . . . . . . . . call a GAP function
**
** The current reader context is saved and a new one is started.
*/
Obj Call1ArgsInNewReader(Obj f,Obj a);
/****************************************************************************
**
*F * * * * * * * * * * * * * initialize package * * * * * * * * * * * * * * *
*/
/****************************************************************************
**
*F InitInfoRead() . . . . . . . . . . . . . . . . . table of init functions
*/
StructInitInfo * InitInfoRead ( void );
/****************************************************************************
**
*E read.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . ends here
*/
|