1da2e3ebdSchin /***********************************************************************
2da2e3ebdSchin *                                                                      *
3da2e3ebdSchin *               This software is part of the ast package               *
4*b30d1939SAndy Fiddaman *          Copyright (c) 1982-2011 AT&T Intellectual Property          *
5da2e3ebdSchin *                      and is licensed under the                       *
6*b30d1939SAndy Fiddaman *                 Eclipse Public License, Version 1.0                  *
77c2fbfb3SApril Chin *                    by AT&T Intellectual Property                     *
8da2e3ebdSchin *                                                                      *
9da2e3ebdSchin *                A copy of the License is available at                 *
10*b30d1939SAndy Fiddaman *          http://www.eclipse.org/org/documents/epl-v10.html           *
11*b30d1939SAndy Fiddaman *         (with md5 checksum b35adb5213ca9657e911e9befb180842)         *
12da2e3ebdSchin *                                                                      *
13da2e3ebdSchin *              Information and Software Systems Research               *
14da2e3ebdSchin *                            AT&T Research                             *
15da2e3ebdSchin *                           Florham Park NJ                            *
16da2e3ebdSchin *                                                                      *
17da2e3ebdSchin *                  David Korn <dgk@research.att.com>                   *
18da2e3ebdSchin *                                                                      *
19da2e3ebdSchin ***********************************************************************/
20da2e3ebdSchin #pragma prototyped
21da2e3ebdSchin #ifndef TEST_ARITH
22da2e3ebdSchin /*
23da2e3ebdSchin  *	UNIX shell
24da2e3ebdSchin  *	David Korn
25da2e3ebdSchin  *	AT&T Labs
26da2e3ebdSchin  *
27da2e3ebdSchin  */
28da2e3ebdSchin 
29da2e3ebdSchin #include	"FEATURE/options"
30*b30d1939SAndy Fiddaman #include	"defs.h"
31da2e3ebdSchin #include	"shtable.h"
32da2e3ebdSchin /*
33da2e3ebdSchin  *  These are the valid test operators
34da2e3ebdSchin  */
35da2e3ebdSchin 
36da2e3ebdSchin #define TEST_ARITH	040	/* arithmetic operators */
37da2e3ebdSchin #define TEST_BINOP	0200	/* binary operator */
38da2e3ebdSchin #define TEST_PATTERN	0100	/* turn off bit for pattern compares */
39da2e3ebdSchin 
40da2e3ebdSchin #define TEST_NE		(TEST_ARITH|9)
41da2e3ebdSchin #define TEST_EQ		(TEST_ARITH|4)
42da2e3ebdSchin #define TEST_GE		(TEST_ARITH|5)
43da2e3ebdSchin #define TEST_GT		(TEST_ARITH|6)
44da2e3ebdSchin #define TEST_LE		(TEST_ARITH|7)
45da2e3ebdSchin #define TEST_LT		(TEST_ARITH|8)
46da2e3ebdSchin #define TEST_OR		(TEST_BINOP|1)
47da2e3ebdSchin #define TEST_AND	(TEST_BINOP|2)
48da2e3ebdSchin #define TEST_SNE	(TEST_PATTERN|1)
49da2e3ebdSchin #define TEST_SEQ	(TEST_PATTERN|14)
50da2e3ebdSchin #define TEST_PNE	1
51da2e3ebdSchin #define TEST_PEQ	14
52da2e3ebdSchin #define TEST_EF		3
53da2e3ebdSchin #define TEST_NT		10
54da2e3ebdSchin #define TEST_OT		12
5534f9b3eeSRoland Mainz #define TEST_SLT	16
5634f9b3eeSRoland Mainz #define TEST_SGT	17
57da2e3ebdSchin #define TEST_END	8
58da2e3ebdSchin #define TEST_REP	20
59da2e3ebdSchin 
60*b30d1939SAndy Fiddaman extern int test_unop(Shell_t*,int, const char*);
61da2e3ebdSchin extern int test_inode(const char*, const char*);
62*b30d1939SAndy Fiddaman extern int test_binop(Shell_t*,int, const char*, const char*);
63da2e3ebdSchin 
64da2e3ebdSchin extern const char	sh_opttest[];
65da2e3ebdSchin extern const char	test_opchars[];
66da2e3ebdSchin extern const char	e_argument[];
67da2e3ebdSchin extern const char	e_missing[];
68da2e3ebdSchin extern const char	e_badop[];
69da2e3ebdSchin extern const char	e_tstbegin[];
70da2e3ebdSchin extern const char	e_tstend[];
71da2e3ebdSchin 
72da2e3ebdSchin #endif /* TEST_ARITH */
73