1/* -----------------------------------------------------------------------------
2 * See the LICENSE file for information on copyright, usage and redistribution
3 * of SWIG, and the README file for authors - http://www.swig.org/release.html.
4 *
5 * swigscan.h
6 *
7 * C/C++ scanner.
8 * ----------------------------------------------------------------------------- */
9
10/* $Id: swig.h 9633 2007-01-10 23:43:07Z beazley $ */
11
12typedef struct Scanner Scanner;
13
14extern Scanner     *NewScanner(void);
15extern void         DelScanner(Scanner *);
16extern void         Scanner_clear(Scanner *);
17extern void         Scanner_push(Scanner *, String *);
18extern void         Scanner_pushtoken(Scanner *, int, const_String_or_char_ptr value);
19extern int          Scanner_token(Scanner *);
20extern String      *Scanner_text(Scanner *);
21extern void         Scanner_skip_line(Scanner *);
22extern int          Scanner_skip_balanced(Scanner *, int startchar, int endchar);
23extern void         Scanner_set_location(Scanner *, String *file, int line);
24extern String      *Scanner_file(Scanner *);
25extern int          Scanner_line(Scanner *);
26extern int          Scanner_start_line(Scanner *);
27extern void         Scanner_idstart(Scanner *, const char *idchar);
28extern String      *Scanner_errmsg(Scanner *);
29extern int          Scanner_errline(Scanner *);
30extern int          Scanner_isoperator(int tokval);
31extern void         Scanner_freeze_line(Scanner *s, int val);
32
33/* Note: Tokens in range 100+ are for C/C++ operators */
34
35#define   SWIG_MAXTOKENS          200
36#define   SWIG_TOKEN_LPAREN       1        /* ( */
37#define   SWIG_TOKEN_RPAREN       2        /* ) */
38#define   SWIG_TOKEN_SEMI         3        /* ; */
39#define   SWIG_TOKEN_LBRACE       4        /* { */
40#define   SWIG_TOKEN_RBRACE       5        /* } */
41#define   SWIG_TOKEN_LBRACKET     6        /* [ */
42#define   SWIG_TOKEN_RBRACKET     7        /* ] */
43#define   SWIG_TOKEN_BACKSLASH    8        /* \ */
44#define   SWIG_TOKEN_ENDLINE      9        /* \n */
45#define   SWIG_TOKEN_STRING       10       /* "str" */
46#define   SWIG_TOKEN_POUND        11       /* # */
47#define   SWIG_TOKEN_COLON        12       /* : */
48#define   SWIG_TOKEN_DCOLON       13       /* :: */
49#define   SWIG_TOKEN_DCOLONSTAR   14       /* ::* */
50#define   SWIG_TOKEN_ID           15       /* identifer */
51#define   SWIG_TOKEN_FLOAT        16       /* 3.1415F */
52#define   SWIG_TOKEN_DOUBLE       17       /* 3.1415 */
53#define   SWIG_TOKEN_INT          18       /* 314 */
54#define   SWIG_TOKEN_UINT         19       /* 314U */
55#define   SWIG_TOKEN_LONG         20       /* 314L */
56#define   SWIG_TOKEN_ULONG        21       /* 314UL */
57#define   SWIG_TOKEN_CHAR         22       /* 'charconst' */
58#define   SWIG_TOKEN_PERIOD       23       /* . */
59#define   SWIG_TOKEN_AT           24       /* @ */
60#define   SWIG_TOKEN_DOLLAR       25       /* $ */
61#define   SWIG_TOKEN_CODEBLOCK    26       /* %{ ... %} ... */
62#define   SWIG_TOKEN_RSTRING      27       /* `charconst` */
63#define   SWIG_TOKEN_LONGLONG     28       /* 314LL */
64#define   SWIG_TOKEN_ULONGLONG    29       /* 314ULL */
65#define   SWIG_TOKEN_QUESTION     30       /* ? */
66#define   SWIG_TOKEN_COMMENT      31       /* C or C++ comment */
67#define   SWIG_TOKEN_ILLEGAL      99
68#define   SWIG_TOKEN_ERROR        -1
69
70#define   SWIG_TOKEN_COMMA        101      /* , */
71#define   SWIG_TOKEN_STAR         102      /* * */
72#define   SWIG_TOKEN_TIMES        102      /* * */
73#define   SWIG_TOKEN_EQUAL        103      /* = */
74#define   SWIG_TOKEN_EQUALTO      104      /* == */
75#define   SWIG_TOKEN_NOTEQUAL     105      /* != */
76#define   SWIG_TOKEN_PLUS         106      /* + */
77#define   SWIG_TOKEN_MINUS        107      /* - */
78#define   SWIG_TOKEN_AND          108      /* & */
79#define   SWIG_TOKEN_LAND         109      /* && */
80#define   SWIG_TOKEN_OR           110      /* | */
81#define   SWIG_TOKEN_LOR          111      /* || */
82#define   SWIG_TOKEN_XOR          112      /* ^ */
83#define   SWIG_TOKEN_LESSTHAN     113      /* < */
84#define   SWIG_TOKEN_GREATERTHAN  114      /* > */
85#define   SWIG_TOKEN_LTEQUAL      115      /* <= */
86#define   SWIG_TOKEN_GTEQUAL      116      /* >= */
87#define   SWIG_TOKEN_NOT          117      /* ~ */
88#define   SWIG_TOKEN_LNOT         118      /* ! */
89#define   SWIG_TOKEN_SLASH        119      /* / */
90#define   SWIG_TOKEN_DIVIDE       119      /* / */
91#define   SWIG_TOKEN_PERCENT      120      /* % */
92#define   SWIG_TOKEN_MODULO       120      /* % */
93#define   SWIG_TOKEN_LSHIFT       121      /* << */
94#define   SWIG_TOKEN_RSHIFT       122      /* >> */
95#define   SWIG_TOKEN_PLUSPLUS     123      /* ++ */
96#define   SWIG_TOKEN_MINUSMINUS   124      /* -- */
97#define   SWIG_TOKEN_PLUSEQUAL    125      /* += */
98#define   SWIG_TOKEN_MINUSEQUAL   126      /* -= */
99#define   SWIG_TOKEN_TIMESEQUAL   127      /* *= */
100#define   SWIG_TOKEN_DIVEQUAL     128      /* /= */
101#define   SWIG_TOKEN_ANDEQUAL     129      /* &= */
102#define   SWIG_TOKEN_OREQUAL      130      /* |= */
103#define   SWIG_TOKEN_XOREQUAL     131      /* ^= */
104#define   SWIG_TOKEN_LSEQUAL      132      /* <<= */
105#define   SWIG_TOKEN_RSEQUAL      133      /* >>= */
106#define   SWIG_TOKEN_MODEQUAL     134      /* %= */
107#define   SWIG_TOKEN_ARROW        135      /* -> */
108#define   SWIG_TOKEN_ARROWSTAR    136      /* ->* */
109