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
|
/* -----------------------------------------------------------------------------
* This file is part of SWIG, which is licensed as a whole under version 3
* (or any later version) of the GNU General Public License. Some additional
* terms also apply to certain portions of SWIG. The full details of the SWIG
* license and copyrights can be found in the LICENSE and COPYRIGHT files
* included with the SWIG source code as distributed by the SWIG developers
* and at http://www.swig.org/legal.html.
*
* swigscan.h
*
* C/C++ scanner.
* ----------------------------------------------------------------------------- */
typedef struct Scanner Scanner;
extern Scanner *NewScanner(void);
extern void DelScanner(Scanner *);
extern void Scanner_clear(Scanner *);
extern void Scanner_push(Scanner *, String *);
extern void Scanner_pushtoken(Scanner *, int, const_String_or_char_ptr value);
extern int Scanner_token(Scanner *);
extern String *Scanner_text(Scanner *);
extern void Scanner_skip_line(Scanner *);
extern int Scanner_skip_balanced(Scanner *, int startchar, int endchar);
extern String *Scanner_get_raw_text_balanced(Scanner *, int startchar, int endchar);
extern void Scanner_set_location(Scanner *, String *file, int line);
extern String *Scanner_file(Scanner *);
extern int Scanner_line(Scanner *);
extern int Scanner_start_line(Scanner *);
extern void Scanner_idstart(Scanner *, const char *idchar);
extern String *Scanner_errmsg(Scanner *);
extern int Scanner_errline(Scanner *);
extern int Scanner_isoperator(int tokval);
extern void Scanner_locator(Scanner *, String *loc);
/* Note: Tokens in range 100+ are for C/C++ operators */
#define SWIG_MAXTOKENS 200
#define SWIG_TOKEN_LPAREN 1 /* ( */
#define SWIG_TOKEN_RPAREN 2 /* ) */
#define SWIG_TOKEN_SEMI 3 /* ; */
#define SWIG_TOKEN_LBRACE 4 /* { */
#define SWIG_TOKEN_RBRACE 5 /* } */
#define SWIG_TOKEN_LBRACKET 6 /* [ */
#define SWIG_TOKEN_RBRACKET 7 /* ] */
#define SWIG_TOKEN_BACKSLASH 8 /* \ */
#define SWIG_TOKEN_ENDLINE 9 /* \n */
#define SWIG_TOKEN_STRING 10 /* "str" */
#define SWIG_TOKEN_POUND 11 /* # */
#define SWIG_TOKEN_COLON 12 /* : */
#define SWIG_TOKEN_DCOLON 13 /* :: */
#define SWIG_TOKEN_DCOLONSTAR 14 /* ::* */
#define SWIG_TOKEN_ID 15 /* identifier */
#define SWIG_TOKEN_FLOAT 16 /* 3.1415F */
#define SWIG_TOKEN_DOUBLE 17 /* 3.1415 */
#define SWIG_TOKEN_INT 18 /* 314 */
#define SWIG_TOKEN_UINT 19 /* 314U */
#define SWIG_TOKEN_LONG 20 /* 314L */
#define SWIG_TOKEN_ULONG 21 /* 314UL */
#define SWIG_TOKEN_CHAR 22 /* 'charconst' */
#define SWIG_TOKEN_PERIOD 23 /* . */
#define SWIG_TOKEN_AT 24 /* @ */
#define SWIG_TOKEN_DOLLAR 25 /* $ */
#define SWIG_TOKEN_CODEBLOCK 26 /* %{ ... %} ... */
#define SWIG_TOKEN_RSTRING 27 /* `charconst` */
#define SWIG_TOKEN_LONGLONG 28 /* 314LL */
#define SWIG_TOKEN_ULONGLONG 29 /* 314ULL */
#define SWIG_TOKEN_QUESTION 30 /* ? */
#define SWIG_TOKEN_COMMENT 31 /* C or C++ comment */
#define SWIG_TOKEN_BOOL 32 /* true or false */
#define SWIG_TOKEN_WSTRING 33 /* L"str" */
#define SWIG_TOKEN_WCHAR 34 /* L'c' */
#define SWIG_TOKEN_ILLEGAL 99
#define SWIG_TOKEN_ERROR -1
#define SWIG_TOKEN_COMMA 101 /* , */
#define SWIG_TOKEN_STAR 102 /* * */
#define SWIG_TOKEN_TIMES 102 /* * */
#define SWIG_TOKEN_EQUAL 103 /* = */
#define SWIG_TOKEN_EQUALTO 104 /* == */
#define SWIG_TOKEN_NOTEQUAL 105 /* != */
#define SWIG_TOKEN_PLUS 106 /* + */
#define SWIG_TOKEN_MINUS 107 /* - */
#define SWIG_TOKEN_AND 108 /* & */
#define SWIG_TOKEN_LAND 109 /* && */
#define SWIG_TOKEN_OR 110 /* | */
#define SWIG_TOKEN_LOR 111 /* || */
#define SWIG_TOKEN_XOR 112 /* ^ */
#define SWIG_TOKEN_LESSTHAN 113 /* < */
#define SWIG_TOKEN_GREATERTHAN 114 /* > */
#define SWIG_TOKEN_LTEQUAL 115 /* <= */
#define SWIG_TOKEN_GTEQUAL 116 /* >= */
#define SWIG_TOKEN_NOT 117 /* ~ */
#define SWIG_TOKEN_LNOT 118 /* ! */
#define SWIG_TOKEN_SLASH 119 /* / */
#define SWIG_TOKEN_DIVIDE 119 /* / */
#define SWIG_TOKEN_PERCENT 120 /* % */
#define SWIG_TOKEN_MODULO 120 /* % */
#define SWIG_TOKEN_LSHIFT 121 /* << */
#define SWIG_TOKEN_RSHIFT 122 /* >> */
#define SWIG_TOKEN_PLUSPLUS 123 /* ++ */
#define SWIG_TOKEN_MINUSMINUS 124 /* -- */
#define SWIG_TOKEN_PLUSEQUAL 125 /* += */
#define SWIG_TOKEN_MINUSEQUAL 126 /* -= */
#define SWIG_TOKEN_TIMESEQUAL 127 /* *= */
#define SWIG_TOKEN_DIVEQUAL 128 /* /= */
#define SWIG_TOKEN_ANDEQUAL 129 /* &= */
#define SWIG_TOKEN_OREQUAL 130 /* |= */
#define SWIG_TOKEN_XOREQUAL 131 /* ^= */
#define SWIG_TOKEN_LSEQUAL 132 /* <<= */
#define SWIG_TOKEN_RSEQUAL 133 /* >>= */
#define SWIG_TOKEN_MODEQUAL 134 /* %= */
#define SWIG_TOKEN_ARROW 135 /* -> */
#define SWIG_TOKEN_ARROWSTAR 136 /* ->* */
|