* Francesco Potortì <pot@gnu.org> has maintained it since 1993.
*/
-char pot_etags_version[] = "@(#) pot revision number is 14.15";
+char pot_etags_version[] = "@(#) pot revision number is 14.18";
#define TRUE 1
#define FALSE 0
# undef static
# define ETAGS_REGEXPS /* use the regexp features */
# define LONG_OPTIONS /* accept long options */
-#endif /* HAVE_CONFIG_H */
+#else
+# ifndef __STDC__
+# define static /* remove static for old compilers' sake */
+# endif
+#endif /* !HAVE_CONFIG_H */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1 /* enables some compiler checks on GNU */
st_C_ignore,
st_C_javastruct,
st_C_operator,
- st_C_class,
+ st_C_class, st_C_template,
st_C_struct, st_C_extern, st_C_enum, st_C_define, st_C_typedef, st_C_typespec
};
/* Feed stuff between (but not including) %[ and %] lines to:
gperf -c -k 1,3 -o -p -r -t
- then put a `static' keyword in front of the in_word_set function.
%[
struct C_stab_entry { char *name; int c_ext; enum sym_type type; }
%%
typedef, 0, st_C_typedef
define, 0, st_C_define
operator, C_PLPL, st_C_operator
+template, 0, st_C_template
bool, C_PLPL, st_C_typespec
long, 0, st_C_typespec
short, 0, st_C_typespec
/* Command-line: gperf -c -k 1,3 -o -p -r -t */
struct C_stab_entry { char *name; int c_ext; enum sym_type type; };
-#define TOTAL_KEYWORDS 46
+#define TOTAL_KEYWORDS 47
#define MIN_WORD_LENGTH 2
#define MAX_WORD_LENGTH 15
-#define MIN_HASH_VALUE 13
-#define MAX_HASH_VALUE 121
-/* maximum key range = 109, duplicates = 0 */
+#define MIN_HASH_VALUE 18
+#define MAX_HASH_VALUE 138
+/* maximum key range = 121, duplicates = 0 */
#ifdef __GNUC__
__inline
{
static unsigned char asso_values[] =
{
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 57, 122, 122, 122, 55, 6,
- 60, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 51, 122, 122, 10, 2, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 2, 52, 59,
- 49, 38, 56, 41, 122, 22, 122, 122, 9, 32,
- 33, 60, 26, 122, 1, 28, 46, 59, 44, 51,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 63, 139, 139, 139, 33, 44,
+ 62, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 42, 139, 139, 12, 32, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 34, 59, 37,
+ 24, 58, 33, 3, 139, 16, 139, 139, 42, 60,
+ 18, 11, 39, 139, 23, 57, 4, 63, 6, 20,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139
};
register int hval = len;
static struct C_stab_entry wordlist[] =
{
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"ENTRY", 0, st_C_gnumacro},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
{"if", 0, st_C_ignore},
+ {""}, {""}, {""}, {""},
+ {"int", 0, st_C_typespec},
{""}, {""},
+ {"void", 0, st_C_typespec},
+ {""}, {""},
+ {"interface", C_JAVA, st_C_struct},
+ {""},
{"SYSCALL", 0, st_C_gnumacro},
+ {""},
+ {"return", 0, st_C_ignore},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"struct", 0, st_C_struct},
- {"static", 0, st_C_typespec},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"long", 0, st_C_typespec},
- {""}, {""}, {""}, {""}, {""},
+ {"while", 0, st_C_ignore},
{"auto", 0, st_C_typespec},
- {"return", 0, st_C_ignore},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"float", 0, st_C_typespec},
+ {"typedef", 0, st_C_typedef},
+ {"typename", C_PLPL, st_C_typespec},
+ {""}, {""}, {""},
+ {"friend", C_PLPL, st_C_ignore},
+ {"volatile", 0, st_C_typespec},
+ {""}, {""},
+ {"for", 0, st_C_ignore},
+ {"const", 0, st_C_typespec},
{"import", C_JAVA, st_C_ignore},
{""},
- {"switch", 0, st_C_ignore},
- {""},
+ {"define", 0, st_C_define},
+ {"long", 0, st_C_typespec},
{"implements", C_JAVA, st_C_javastruct},
+ {"signed", 0, st_C_typespec},
{""},
- {"for", 0, st_C_ignore},
- {"volatile", 0, st_C_typespec},
- {""},
- {"PSEUDO", 0, st_C_gnumacro},
+ {"extern", 0, st_C_extern},
+ {"extends", C_JAVA, st_C_javastruct},
{""},
+ {"mutable", C_PLPL, st_C_typespec},
+ {"template", 0, st_C_template},
+ {"short", 0, st_C_typespec},
+ {"bool", C_PLPL, st_C_typespec},
{"char", 0, st_C_typespec},
{"class", 0, st_C_class},
- {"@protocol", 0, st_C_objprot},
- {""}, {""},
- {"void", 0, st_C_typespec},
- {"int", 0, st_C_typespec},
- {"explicit", C_PLPL, st_C_typespec},
+ {"operator", C_PLPL, st_C_operator},
{""},
- {"namespace", C_PLPL, st_C_struct},
- {"signed", 0, st_C_typespec},
+ {"switch", 0, st_C_ignore},
+ {""},
+ {"ENTRY", 0, st_C_gnumacro},
{""},
- {"interface", C_JAVA, st_C_struct},
- {"while", 0, st_C_ignore},
- {"typedef", 0, st_C_typedef},
- {"typename", C_PLPL, st_C_typespec},
- {""}, {""}, {""},
- {"friend", C_PLPL, st_C_ignore},
- {"mutable", C_PLPL, st_C_typespec},
- {"union", 0, st_C_struct},
- {"domain", C_STAR, st_C_struct},
- {""}, {""},
- {"extern", 0, st_C_extern},
- {"extends", C_JAVA, st_C_javastruct},
{"package", C_JAVA, st_C_ignore},
- {"short", 0, st_C_typespec},
+ {"union", 0, st_C_struct},
{"@end", 0, st_C_objend},
- {"unsigned", 0, st_C_typespec},
- {""},
- {"const", 0, st_C_typespec},
+ {"struct", 0, st_C_struct},
+ {"namespace", C_PLPL, st_C_struct},
{""}, {""},
+ {"domain", C_STAR, st_C_struct},
{"@interface", 0, st_C_objprot},
- {"enum", 0, st_C_enum},
- {""}, {""},
- {"@implementation",0, st_C_objimpl},
- {""},
- {"operator", C_PLPL, st_C_operator},
- {""}, {""}, {""}, {""},
- {"define", 0, st_C_define},
- {""}, {""},
+ {"PSEUDO", 0, st_C_gnumacro},
{"double", 0, st_C_typespec},
{""},
- {"bool", C_PLPL, st_C_typespec},
- {""}, {""}, {""},
+ {"@protocol", 0, st_C_objprot},
+ {""},
+ {"static", 0, st_C_typespec},
+ {""}, {""},
{"DEFUN", 0, st_C_gnumacro},
- {"float", 0, st_C_typespec}
+ {""}, {""}, {""}, {""},
+ {"explicit", C_PLPL, st_C_typespec},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"enum", 0, st_C_enum},
+ {""}, {""},
+ {"unsigned", 0, st_C_typespec},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"@implementation",0, st_C_objimpl}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
if (structdef == stagseen)
structdef = scolonseen;
return FALSE;
+ case st_C_template:
case st_C_class:
if (cblev == 0
&& (*c_extp & C_AUTO) /* automatic detection of C++ language */
&& definedef == dnone && structdef == snone
&& typdef == tnone && fvdef == fvnone)
*c_extp = (*c_extp | C_PLPL) & ~C_AUTO;
+ if (toktype == st_C_template)
+ break;
/* FALLTHRU */
case st_C_struct:
case st_C_enum:
cstack.cblev = xnew (cstack.size, int);
}
- tokoff = toklen = 0; /* keep compiler quiet */
+ tokoff = toklen = typdefcblev = 0; /* keep compiler quiet */
curndx = newndx = 0;
lineno = 0;
charno = 0;
break;
if (typdef == ttypeseen)
{
- typdefcblev = cblev;
+ /* Whenever typdef is set to tinbody (currently only
+ here), typdefcblev should be set to cblev. */
typdef = tinbody;
+ typdefcblev = cblev;
}
switch (fvdef)
{
cblev--;
popclass_above (cblev);
structdef = snone;
+ /* Only if typdef == tinbody is typdefcblev significant. */
if (typdef == tinbody && cblev <= typdefcblev)
{
assert (cblev == typdefcblev);