Any error is considered fatal by the preprocessor program. This means it will abort immediately. The debug mode (see section Running GRG) can be used to provide a lot of additional information to track down the error, if it is not immediately obvious. The following is a list of all the errors with pointers to any relevant help in alphabetical order.
grg: bad equate name (probably unescaped equate esc)
Either an undefined equate name, or the equate escape character has been used
inadvertently without escaping in a text body (the \#
character sequence
should be used in this case).
grg: couldn't fill dynamic dbf file, 'filename'
Covers a number of possible errors that stem from not being able to transfer a
delimited text input file into a growing dBase3+ file structure (used
internally to hold databases).
grg: couldn't open dbf file, 'filename'
The named file declared via a GRGDBFFILE predefined macro could not
be opened as a dBase3+ file (either doesn't exist or incorrect permissions).
grg: couldn't open dynamic SQL dbf file, 'filename'
Always generated when a SQL Query declared via a DATABASE
predefined macro failed for some reason (check the SQL statement is correct via
another means, ensure the physical database PHYSDB is defined).
grg: couldn't open dynamic dbf file, 'filename'
The named file declared via a DATABASE predefined macro could not
be opened as a delimited text file (either doesn't exist or incorrect permissions).
grg: couldn't open file, 'filename'
The given filename could not be opened for some reason. Is the path correct,
filename correct, and filename readable?
grg: couldn't open include file, 'filename'
The specified include file couldn't be opened for some reason. Is the path
correct, filename correct, and filename readable?
grg: couldn't stop dynamic dbf file, 'filename'
Covers a number of possible errors that stem from not being able to restructure
a delimited text input file that has been loaded into a growing dBase3+ file
structure (used internally to hold databases). Check pattern definitions.
grg: dfa.beg alloc failed
Low level out of memory error during DFA construction from pattern definitions.
grg: dfa.chr alloc failed
Low level out of memory error during DFA construction from pattern definitions.
grg: dfa.end alloc failed
Low level out of memory error during DFA construction from pattern definitions.
grg: dfa.end realloc failed
Low level out of memory error during DFA construction from pattern definitions.
grg: dfa.mid alloc failed
Low level out of memory error during DFA construction from pattern definitions.
grg: division by zero
An attempt was made to divide a number by zero in an equate expression.
grg: equate argument expected, 'string'
An invalid argument was given to an equate macro definition. See
section Predefined Macros on predefined macros in general and
section EQUATE on equate macros in particular.
grg: equate definition too long, 'string'
The equate definition after reversing (or if entered as reversed) is too long
and must be shortened. Splitting up into more than one equate is usually the
best way to do this.
grg: equate right operand expected, 'string'
Any situation during equate processing where the operator expected a right
operand (generally a variable name) immediately following the operator.
grg: equate stack overflow
When returning from evaluation of an equate back to the text body, filter
definition or pattern definition from which it was called has more than one
value left on the stack.
grg: equate stack underflow
When returning from evaluation of an equate back to the text body, filter
definition or pattern definition from which it was called has less than zero
values left on the stack. Or when an operator requires an operand from the
stack but the stack is empty.
grg: equate var defined differently, 'string'
Occurs when assigning a value to a system variable that does not match the
data type the system variable was declared with. Does not occur for local
variables since they just coerce the value to match their type (if possible).
grg: field argument expected, 'string'
A field argument was expected for either the SORTON or BANNER
predefined macros. See section Predefined Macros on field
arguments and section SORTON and section BANNER on these macros in particular.
grg: field name too long
A field name is limited to ten characters (dBase3+ compatible).
grg: field right operand expected
A field operator has been used but the field name does not immediately follow
the operator (or has not been given).
grg: filter equate - number/string/date expected
The data type returned by a filter definition based on an equate expression is
not one of these.
grg: group text body too big
The definition of the text body of a group exceeded the maximum text body size.
grg: illegal ARG character
A character not allowed during the processing of the ARGS mode was seen.
grg: illegal TXT character
A character not allowed during the processing of the STANDARD mode
was seen.
grg: illegal character, 'char'
The preprocessor is very strict about characters that are not where they
should be. Check that all predefined macros start at the beginning of a line
and that they start with the double percent sequence. Check that comment
starts at the beginning of a line with a double percent space sequence. Check
that the arguments given to the predefined macros are correct (make sure that
user macro definitions and equate definitions have been given a name and
that string arguments start with a double character). Also check that there
are not any spurious control characters in the file. See
section GRG File Format for an overview of the structure, syntax, and
semantics of GRG files.
grg: illegal character or operator in equate, 'string'
A character that is not valid in its current position in an equate definition
has been identified.
grg: index overflow
Occurs when using the stroke operator and the index given to access a character
of a string was greater than the length of the string.
grg: index underflow
Occurs when using the stroke operator and the index given to access a character
of a string was less than zero.
grg: inputs left bracket expected
The inputs
keyword requires brackets to immediately follow it (although
they can have no content).
grg: inputs right bracket expected
The inputs
keyword requires brackets to immediately follow it (although
they can have no content).
grg: invalid operand type
The data type of the operand did not meet the requirements of the operation
being applied at the time.
grg: left token without right in pattern
An error in a pattern definition, the token is enclosed within <...>
bracket pairs, the closing one is missing.
grg: local variable stack overflow
The number of local variables on the stack (those of the current equate all
equates back up the call chain to the first one) have overrun the general
equate processing stack.
grg: macro argument expected, 'string'
Something other than a macro argument was used with either the DEFINE
or the EQUATE predefined macros. See section
section Predefined Macros on macro arguments and
section DEFINE and section EQUATE on these
particular macros.
grg: maximum TeX block exceeded
A text body definition has exceeded the maximum size given in
section Hard Limits on the hard limits of the preprocessor. There is no
way to work around this, other than to reduce the size of the text body. This
can be done by converting parts of the text body into user defined macros,
user text bodies and equates.
grg: mismatch in comment brackets
One comment bracket (either { } or /* */ pairs) opening or closing is missing.
grg: mismatch in index brackets
One indexing bracket ([ ] pairs) opening or closing is missing.
grg: mismatch in loop brackets
One looping bracket ([ ] pairs) opening or closing is missing.
grg: mismatch in loop/call brackets
One looping/call bracket (( ) pairs) opening or closing is missing.
grg: missing loop separator
The loop separator ";" or "do" is missing.
grg: no database defined
Any GRG must declare at least one database file using the
%%DATABASE predefined macro.
grg: no such database
Occurs when accessing a database with the ->
mechanism or the :
mechanism
on a roll/through loop and the named database has not been declared via the
DATABASE predefined macro.
grg: numeric argument expected, 'string'
One of the PAGE01 or PAGENN predefined macros expected a
numeric argument. See section Predefined Macros on numeric
arguments and sections section PAGE01 and
section PAGENN on these two macros.
grg: numeric operand expected
An operation required a numeric data type.
grg: numeric operands expected
An operation required two numeric data types.
grg: numeric or string operand expected
An operation required a numeric or string data type.
grg: operands types differ
An operation requires two operands of any type but they must be of the same
type.
grg: out of place argument, 'string'
This should never happen. If it does don't panic, just call for help.
grg: pattern parse error
There was a syntax error in the pattern definitions.
grg: premature end of pattern after escape sequence
There was a syntax error in the pattern definitions.
grg: pushback buffer exceeded
The internal pushback buffer has overflowed. This is used to pushback and
cause this resource to break. See section section Hard Limits on the hard
limits of the preprocessor. Break down include files into separate files and
reduce the size of user macros to work around this problem.
grg: record index out of range
The given index in the x[n]
or x->y[n]
syntax was less than 1 or greater
than the total number of records in the associated database.
grg: record loop right operand expected
The record loop has been given a ":" syntax to identify a loop through a named
database but the database name has not been given or is not immediately
adjacent to the colon character.
grg: reg. exp. syntax error "%<FLD>=<RE>", 'string'
The syntax of a filter condition used with the FILTER predefined
macro is wrong. The error message shows the correct syntax. See section
section FILTER on the construction of filter conditions.
grg: stack overflow
The stack overflowed during equate processing as there were too many items on
it (note that the stack size is reduced both by operations pushing values
onto it and by local variables).
grg: stack underflow
A value was required from the stack by an operation during equate processing
but the stack was empty.
grg: stack value out of range
Similar to a stack overflow except that the overflow occured during the
creation of a local variable rather than an operation pusing a value onto the
stack.
grg: string argument expected, 'string'
One of the INCLUDE, DATABASE, or FILTER predefined macros
expected a string argument. See section Predefined Macros on
string arguments and section INCLUDE,
section DATABASE, and section FILTER on these
three macros.
grg: text body too big
The text body maximum size has been exceeded by the definition given for one of
the predefined macros (such as a header, footer, record, equate etc).
grg: too many arguments for texpage01, 'string'
This has a maximum of two numeric arguments.
grg: too many arguments for texpagenn, 'string'
This has a maximum of two numeric arguments.
grg: too many arguments for texpattern, 'string'
This has a maximum of 5 string arguments.
grg: too many banner args, 'string'
The maximum number of field arguments to the BANNER predefined macro
has been exceeded. See section Hard Limits on the hard limits of
the preprocessor and section BANNER on this particular macro.
grg: too many blocks, 'string'
The maximum number of user defined text blocks has been exceeded. See
section Hard Limits on the hard limits of the preprocessor and
section BLOCK on this particular macro.
grg: too many equate defs, 'string'
The maximum number of equate definitions given by using the EQUATE
predefined macro has been exceeded. See section Hard Limits on
the hard limits of the preprocessor and section EQUATE on this
particular macro.
grg: too many equate vars
The maximum number of local variables for an equate expression has been
exceeded.
grg: too many file args, 'string'
The maximum number of file arguments given with the DATABASE predefined
macro has been exceeded. See section Hard Limits on the hard limits
of the preprocessor and section DATABASE on this particular macro.
grg: too many filter args, 'string'
The maximum number of filters specified by using the FILTER predefined
macro has been exceeded. See section Hard Limits on the hard limits
of the preprocessor and section FILTER on this particular macro.
grg: too many group args, 'string'
Not implemented.
grg: too many local vars
The maximum number of equate local variables has been exceeded. The maximum
size is determined by the local variable table not the equate stack size.
grg: too many macro defs, 'string'
The maximum number of user macro definitions given by using the DEFINE
predefined macro has been exceeded. See section Hard Limits on
the hard limits of the preprocessor and section DEFINE on this
particular macro.
grg: too many sort args, 'string'
The maximum sort depth specified by using the SORTON predefined macro
has been exceeded. See sections section Hard Limits on the hard limits of
the preprocessor and section SORTON on this particular macro.
grg: too many unique pattern characters
The DFA limits a number of internal resources, this is one. Simplify the
pattern definitions where possible.
grg: too many unique pattern modes
The DFA limits a number of internal resources, this is one. Simplify the
pattern definitions where possible.
grg: undefined equate variable, 'string'
A system variable is being used before it has been declared (by writing a value
to it).
grg: undefined local variable, 'string'
A local variable is being used before it has been declared (by writing a value
to it).
grg: undefined macro or equate, 'string'
An undefined user macro or equate definition has been used in a text body or
in an equate (not user macros). See section Predefined Macros
on macro definitions and section DEFINE and
section EQUATE on user macros and equate definitions respectively.
grg: unknown banner field, 'string'
An unknown database field name argument has been given to the BANNER
predefined macro. See section Predefined Macros on field
arguments and section BANNER on this particular macro.
grg: unknown character token, 'token'
A pattern definition has been given a character set token which is not one of
the predefined ones and has not been defined by the user.
grg: unknown dfa mode
A jump has been made to a DFA mode which has not been defined (this may be a
result of not correctly setting the initial value with DFAMODE).
grg: unknown equate, 'string'
An undefined equate definition has been used in a text body or
in an equate. See section Predefined Macros
on macro definitions and section EQUATE on equate definitions.
grg: unknown field name, 'string'
An unknown database field name has been used in a text body or
in an equate. See section Predefined Macros
on text bodies and section EQUATE on equate definitions.
grg: unknown field type, 'string'
A field type defined in a dBase3+ database file has not been recognised as
The valid recognised types are C, N, D and L.
grg: unknown mode
This should never happen. If it does don't panic, just call for help.
grg: unknown predefined GRG macro, 'string'
A predefined macro name has not been recognised. All predefined macros start
with the GRG or TEX sequence, followed by the rest of the
name which must match one of the valid names. Same error as below.
grg: unknown predefined tex macro, 'string'
An invalid predefined macro has been used. Check for spelling mistakes. See
section Predefined Macros for a list of predefined macros. Note
that predefined macros are not case sensitive.
grg: unknown sort field, 'string'
An unknown database field name argument has been given to the SORTON
predefined macro. See section Predefined Macros on field
arguments and section SORTON on this particular macro.
grg: unknown token
An error in a pattern definition, the resulting token should be one of the
valid start of record, end of record, start of field, end of field, error or
discard token values.
grg: unseparated condition
A condition construct has been used in an equate expression which is missing
the "else" clause (or the "endif" clause if no "else" clause is given). Note
that reversed expressions always require an "else" clause (the colon character)
whereas unreversed expressions do not.
grg: unterminated condition
A condition construct has been used in an equate expression which is missing
the "endif" or ";" terminator. All conditions require this terminator.
grg: unterminated string, 'string'
A string has been given with a missing end quote.
Go to the first, previous, next, last section, table of contents.