/*
*
* (c) Copyright 1988-1994 Adobe Systems Incorporated.
* All rights reserved.
*
* Permission to use, copy, modify, distribute, and sublicense this software
* and its documentation for any purpose and without fee is hereby granted,
* provided that the above copyright notices appear in all copies and that
* both those copyright notices and this permission notice appear in
* supporting documentation and that the name of Adobe Systems Incorporated
* not be used in advertising or publicity pertaining to distribution of the
* software without specific, written prior permission. No trademark license
* to use the Adobe trademarks is hereby granted. If the Adobe trademark
* "Display PostScript"(tm) is used to describe this software, its
* functionality or for any other purpose, such use shall be limited to a
* statement that this software works in conjunction with the Display
* PostScript system. Proper trademark attribution to reflect Adobe's
* ownership of the trademark shall be given whenever any such reference to
* the Display PostScript system is made.
*
* ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR
* ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
* ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NON- INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE
* TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT
* PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE.
*
* Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems
* Incorporated which may be registered in certain jurisdictions
*
* Author: Adobe Systems Incorporated
*/
/***********/
/* Imports */
/***********/
#include <stdlib.h>
#include <stdio.h>
#ifdef XENVIRONMENT
#else
#include <string.h>
#endif
#include "pswdict.h"
#include "pswpriv.h"
#include "pswsemantics.h"
/***********************/
/* Module-wide globals */
/***********************/
int reportedPSWName = 0;
/*************************************************/
/* Procedures called by the parser's annotations */
/*************************************************/
{
}
{
return (t == T_NUMSTR
|| t == T_FLOATNUMSTR
|| t == T_LONGNUMSTR
|| t == T_SHORTNUMSTR);
}
void PSWName(char *s)
{
strcpy(currentPSWName, s);
reportedPSWName = 0;
}
/* Generate the code for this wrap now */
{
/* release storage for this wrap */
/* Omit if you have lots of memory and want pswrap lean and mean */
if (bigFile) {
if (item->subscripted) {
}
}
}
}
if (item->subscripted) {
}
}
}
}
currentDict = NULL;
reportedPSWName = 0;
}
/* Complete construction of the Header tree and make some semantic checks */
{
int nextTag = 0;
"char input parameter %s must be starred or subscripted\n",
/* remove item from list */
/* free(item); XXX? */
continue;
}
}
"numstring parameter %s may only be subscripted\n",
/* remove item from list */
/* free(item); XXX? */
continue;
}
/* free this ? */
continue;
}
}
}
continue;
}
}
/* remove item from list */
/* free(item); XXX */
continue;
}
/* remove item from list */
/* free(item); XXX */
continue;
}
/* remove item from list */
/* free(item); XXX */
continue;
}
/* remove item from list */
/* free the storage? XXX */
continue;
}
} /* inside for loop */
if (prevArg) {
}
continue;
}
} /* outside for loop */
/* now go looking for subscripts that name an input arg */
if (v != -1) {
continue;
}
"input parameter %s used as a subscript is not an int\n",
continue;
}
}
}
}
}
if (v != -1) {
continue;
}
"input parameter %s used as a subscript is not an int\n",
continue;
}
}
}
}
}
return hdr;
}
{
switch (type) {
case T_STRING:
case T_NAME:
case T_LITNAME: {
} else
} else
}
break;
}
default:
break;
}
return token;
}
{
/* Assert(type == T_SUBSCRIPTED); */
}
else if (!dictVal->subscripted) {
}
}
}
else {
}
else {
return token;
}
}
/* ERRORS fall through */
}
{
return arg;
}
{
return item;
}
{
return item;
}
{
item->subscripted = true;
return item;
}
{
if(nameval)
else {
}
return(item);
}
{
return subscript;
}
{
return subscript;
}
{
return arg;
}
{
register Token t;
} else
}
}
return token;
}
if (tokens != firstToken)
return tokens;
}
{
register Arg a;
return args;
}
{
register Item t;
return items;
}