shnodes.h revision 3f54fd611f536639ec30dd53c48e5ec1897cc7d9
/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1982-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 *
* *
* David Korn <dgk@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
#ifndef _SHNODES_H
#define _SHNODES_H 1
/*
* UNIX shell
* Written by David Korn
*
*/
#include <ast.h>
#include "argnod.h"
/* command tree for tretyp */
#define TCOM 0
#define TPAR 1
#define TFIL 2
#define TLST 3
#define TIF 4
#define TWH 5
#define TTST 6
#define TSW 7
#define TAND 8
#define TORF 9
#define TFORK 10
#define TFOR 11
#define TARITH 12
#define TTIME 13
#define TSETIO 14
#define TFUN 15
/* this node is a proforma for those that follow */
struct trenod
{
int tretyp;
};
struct forknod
{
int forktyp;
int forkline;
};
struct ifnod
{
int iftyp;
};
struct whnod
{
int whtyp;
};
struct fornod
{
int fortyp;
char *fornam;
int forline;
};
struct swnod
{
int swtyp;
int swline;
};
struct regnod
{
char regflag;
};
struct parnod
{
int partyp;
};
struct lstnod
{
int lsttyp;
};
/* tst is same as lst, but with extra field for line number */
struct tstnod
{
int tstline;
};
struct functnod
{
int functtyp;
char *functnam;
int functline;
};
struct arithnod
{
int artyp;
int arline;
void *arcomp;
};
/* types of ionodes stored in iofile */
union Shnode_u
{
};
extern void sh_funstaks(struct slnod*,int);
#endif
#endif /* _SHNODES_H */