/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1989-2012 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
/*
* Glenn Fowler
* AT&T Research
*
* expression library private definitions
*/
#ifndef _EXLIB_H
#define _EXLIB_H
#include <align.h>
#include <ast.h>
{
} Exinput_t;
{
} Print_t;
#define _EX_DATA_PRIVATE_ \
struct \
{ \
} call; /* procedure call */ \
struct \
{ \
} generate; /* associative array generator */ \
struct \
{ \
} print; /* printf */ \
struct \
{ \
int arity; /* # formal args */ \
} procedure; /* procedure args and body */ \
struct \
{ \
} scan; /* printf */
#define _EX_NODE_PRIVATE_ \
#define _EX_PROG_PRIVATE_ \
char* linep; /* line[] pointer */ \
int eof; /* lex hit eof */ \
int errors; /* fatal error count */ \
int formals; /* parsing formal args */ \
int linewrap; /* linep wrapped around line[] */ \
int loopcount; /* break|continue|return count */ \
int loopop; /* break|continue|return op */ \
int nesting; /* exstatement() nesting */
#include <expr.h>
#include <ctype.h>
#include <error.h>
#define putcontext(p,c) (((p)->linep>=&(p)->line[sizeof((p)->line)]?(p)->linep=(p)->line,(p)->linewrap=1:0),*(p)->linep++=(c))
{
} Switch_t;
{
} Exassoc_t;
{
} Exstate_t;
extern const char* exversion;
extern int exparse(void); /* yacc should do this */
#endif