This file is indexed.

/usr/include/calc/token.h is in apcalc-dev 2.12.5.0-1+b3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
/*
 * token - token defines
 *
 * Copyright (C) 1999-2007,2014  David I. Bell
 *
 * Calc is open software; you can redistribute it and/or modify it under
 * the terms of the version 2.1 of the GNU Lesser General Public License
 * as published by the Free Software Foundation.
 *
 * Calc is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU Lesser General
 * Public License for more details.
 *
 * A copy of version 2.1 of the GNU Lesser General Public License is
 * distributed with calc under the filename COPYING-LGPL.  You should have
 * received a copy with calc; if not, write to Free Software Foundation, Inc.
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
 * @(#) $Revision: 30.5 $
 * @(#) $Id: token.h,v 30.5 2014/08/24 21:56:51 chongo Exp $
 * @(#) $Source: /usr/local/src/bin/calc/RCS/token.h,v $
 *
 * Under source code control:	1990/02/15 01:48:37
 * File existed as early as:	before 1990
 *
 * Share and enjoy!  :-)	http://www.isthe.com/chongo/tech/comp/calc/
 */


#if !defined(INCLUDE_TOKEN_H)
#define INCLUDE_TOKEN_H


#if defined(CALC_SRC)	/* if we are building from the calc source tree */
# include "calc/zmath.h"
#else
# include <calc/zmath.h>
#endif


/*
 * Token types
 */
#define T_NULL			0	/* null token */
#define T_LEFTPAREN		1	/* left parenthesis "(" */
#define T_RIGHTPAREN		2	/* right parenthesis ")" */
#define T_LEFTBRACE		3	/* left brace "{" */
#define T_RIGHTBRACE		4	/* right brace "}" */
#define T_SEMICOLON		5	/* end of statement ";" */
#define T_EOF			6	/* end of file */
#define T_COLON			7	/* label character ":" */
#define T_ASSIGN		8	/* assignment "=" */
#define T_PLUS			9	/* plus sign "+" */
#define T_MINUS			10	/* minus sign "-" */
#define T_MULT			11	/* multiply sign "*" */
#define T_DIV			12	/* divide sign "/" */
#define T_MOD			13	/* modulo sign "%" */
#define T_POWER			14	/* power sign "^" or "**" */
#define T_EQ			15	/* equality "==" */
#define T_NE			16	/* notequal "!=" */
#define T_LT			17	/* less than "<" */
#define T_GT			18	/* greater than ">" */
#define T_LE			19	/* less than or equals "<=" */
#define T_GE			20	/* greater than or equals ">=" */
#define T_LEFTBRACKET		21	/* left bracket "[" */
#define T_RIGHTBRACKET		22	/* right bracket "]" */
#define T_SYMBOL		23	/* symbol name */
#define T_STRING		24	/* string value (double quotes) */
#define T_NUMBER		25	/* numeric real constant */
#define T_PLUSEQUALS		26	/* plus equals "+=" */
#define T_MINUSEQUALS		27	/* minus equals "-=" */
#define T_MULTEQUALS		28	/* multiply equals "*=" */
#define T_DIVEQUALS		29	/* divide equals "/=" */
#define T_MODEQUALS		30	/* modulo equals "%=" */
#define T_PLUSPLUS		31	/* plusplus "++" */
#define T_MINUSMINUS		32	/* minusminus "--" */
#define T_COMMA			33	/* comma "," */
#define T_ANDAND		34	/* logical and "&&" */
#define T_OROR			35	/* logical or "||" */
#define T_OLDVALUE		36	/* old value from prev calculation */
#define T_SLASHSLASH		37	/* integer divide "//" */
#define T_NEWLINE		38	/* newline character */
#define T_SLASHSLASHEQUALS	39	/* integer divide equals "//=" */
#define T_AND			40	/* arithmetic and "&" */
#define T_OR			41	/* arithmetic or "|" */
#define T_NOT			42	/* logical not "!" */
#define T_LEFTSHIFT		43	/* left shift "<<" */
#define T_RIGHTSHIFT		44	/* right shift ">>" */
#define T_ANDEQUALS		45	/* and equals "&=" */
#define T_OREQUALS		46	/* or equals "|= */
#define T_LSHIFTEQUALS		47	/* left shift equals "<<=" */
#define T_RSHIFTEQUALS		48	/* right shift equals ">>= */
#define T_POWEREQUALS		49	/* power equals "^=" or "**=" */
#define T_PERIOD		50	/* period "." */
#define T_IMAGINARY		51	/* numeric imaginary constant */
#define T_AMPERSAND		52	/* ampersand "&" */
#define T_QUESTIONMARK		53	/* question mark "?" */
#define T_AT			54	/* at sign "@" */
#define T_DOLLAR		55	/* dollar sign "$" */
#define T_HASH			56	/* hash or pound sign "#" */
#define T_HASHEQUALS		57	/* hash equals "#=" */
#define T_BACKQUOTE		58	/* backquote sign "`" */
#define T_ARROW			59	/* arrow "->" */
#define T_TILDE			60	/* tilde "~" */
#define T_TILDEEQUALS		61	/* tilde equals "~=" */
#define T_BACKSLASH		62	/* backslash or setminus "\" */
#define T_BACKSLASHEQUALS	63	/* backslash equals "\=" */
#define T_POUNDBANG		64	/* #!/usr/local/bin/calc comment */
#define T_POUNDCOMMENT		65	/* #[whitespace] comment */


/*
 * Keyword tokens
 */
#define T_IF			101	/* if keyword */
#define T_ELSE			102	/* else keyword */
#define T_WHILE			103	/* while keyword */
#define T_CONTINUE		104	/* continue keyword */
#define T_BREAK			105	/* break keyword */
#define T_GOTO			106	/* goto keyword */
#define T_RETURN		107	/* return keyword */
#define T_LOCAL			108	/* local keyword */
#define T_GLOBAL		109	/* global keyword */
#define T_STATIC		110	/* static keyword */
#define T_DO			111	/* do keyword */
#define T_FOR			112	/* for keyword */
#define T_SWITCH		113	/* switch keyword */
#define T_CASE			114	/* case keyword */
#define T_DEFAULT		115	/* default keyword */
#define T_QUIT			116	/* quit keyword */
#define T_DEFINE		117	/* define keyword */
#define T_READ			118	/* read keyword */
#define T_SHOW			119	/* show keyword */
#define T_HELP			120	/* help keyword */
#define T_WRITE			121	/* write keyword */
#define T_MAT			122	/* mat keyword */
#define T_OBJ			123	/* obj keyword */
#define T_PRINT			124	/* print keyword */
#define T_CD			125	/* change directory keyword */
#define T_UNDEFINE		126	/* undefine keyword */
#define T_ABORT			127	/* abort operation */


#define iskeyword(n) ((n) > 100)	/* TRUE if token is a keyword */


/*
 * Flags returned describing results of expression parsing.
 */
#define EXPR_RVALUE	0x0001		/* result is an rvalue */
#define EXPR_CONST	0x0002		/* result is constant */
#define EXPR_ASSIGN	0x0004		/* result is an assignment */

/* TRUE if expression is rvalue */
#define isrvalue(n)	((n) & EXPR_RVALUE)
/* TRUE if expr is lvalue */
#define islvalue(n)	(((n) & EXPR_RVALUE) == 0)
/* TRUE if expr is constant */
#define isconst(n)	((n) & EXPR_CONST)
/* TRUE if expr is an assignment */
#define isassign(n)	((n) & EXPR_ASSIGN)


/*
 * Flags for modes for tokenizing.
 */
#define TM_DEFAULT	0x0	/* normal mode */
#define TM_NEWLINES	0x1	/* treat any newline as a token */
#define TM_ALLSYMS	0x2	/* treat almost everything as a symbol */


EXTERN long errorcount;		/* number of errors found */

E_FUNC long tokenstring(void);
E_FUNC long tokennumber(void);
E_FUNC char *tokensymbol(void);
E_FUNC void inittokens(void);
E_FUNC int tokenmode(int flag);
E_FUNC int gettoken(void);
E_FUNC void rescantoken(void);
E_FUNC void scanerror(int, char *, ...) PRINTF_FORMAT(2, 3);
E_FUNC void warning(char *, ...) PRINTF_FORMAT(1, 2);


#endif /* !INCLUDE_TOKEN_H */