File: tcl.h

package info (click to toggle)
codelite 17.0.0%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 136,384 kB
  • sloc: cpp: 491,550; ansic: 280,393; php: 10,259; sh: 8,930; lisp: 7,664; vhdl: 6,518; python: 6,020; lex: 4,920; yacc: 3,123; perl: 2,385; javascript: 1,715; cs: 1,193; xml: 1,110; makefile: 805; cobol: 741; sql: 709; ruby: 620; f90: 566; ada: 534; asm: 464; fortran: 350; objc: 289; tcl: 258; java: 157; erlang: 61; pascal: 51; ml: 49; awk: 44; haskell: 36
file content (51 lines) | stat: -rw-r--r-- 1,297 bytes parent folder | download | duplicates (8)
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
/*
*   Copyright (c) 2017, Masatake YAMATO
*
*   This source code is released for free distribution under the terms of the
*   GNU General Public License version 2 or (at your option) any later version.
*/

#ifndef CTAGS_PARSER_TCL_H
#define CTAGS_PARSER_TCL_H

/*
*   INCLUDE FILES
*/
#include "general.h"  /* must always come first */

#include "subparser.h"
#include "tokeninfo.h"

typedef struct sTclSubparser tclSubparser;

enum TclTokenType {
	/* 0..255 are the byte's value */
	TOKEN_TCL_EOF = 256,
	TOKEN_TCL_UNDEFINED,
	TOKEN_TCL_KEYWORD,
	TOKEN_TCL_IDENTIFIER,
	TOKEN_TCL_VARIABLE,
	TOKEN_TCL_EOL,
	TOKEN_TCL_STRING,
};

struct sTclSubparser {
	subparser subparser;

	/* `pstate' is needed to call newTclToken(). */
	void (* namespaceImportNotify) (tclSubparser *s, char *namespace,
									void *pstate);
	/* Return CORK_NIL if the command line is NOT consumed.
	   If a positive integer is returned, end: field may
	   be attached by tcl base parser.
	   Return CORK_NIL - 1 if the command line is consumed
	   but not tag is made. */
	int (* commandNotify) (tclSubparser *s, char *command,
						   int parentIndex,
						   void *pstate);
};

extern tokenInfo *newTclToken (void *pstate);
extern void skipToEndOfTclCmdline (tokenInfo *const token);

#endif	/* CTAGS_PARSER_TCL_H */