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.
8 * ----------------------------------------------------------------------------- */
10 /* $Id: swig.h 9633 2007-01-10 23:43:07Z beazley $ */
12 typedef struct Scanner Scanner;
14 extern Scanner *NewScanner(void);
15 extern void DelScanner(Scanner *);
16 extern void Scanner_clear(Scanner *);
17 extern void Scanner_push(Scanner *, String *);
18 extern void Scanner_pushtoken(Scanner *, int, const_String_or_char_ptr value);
19 extern int Scanner_token(Scanner *);
20 extern String *Scanner_text(Scanner *);
21 extern void Scanner_skip_line(Scanner *);
22 extern int Scanner_skip_balanced(Scanner *, int startchar, int endchar);
23 extern void Scanner_set_location(Scanner *, String *file, int line);
24 extern String *Scanner_file(Scanner *);
25 extern int Scanner_line(Scanner *);
26 extern int Scanner_start_line(Scanner *);
27 extern void Scanner_idstart(Scanner *, const char *idchar);
28 extern String *Scanner_errmsg(Scanner *);
29 extern int Scanner_errline(Scanner *);
30 extern int Scanner_isoperator(int tokval);
31 extern void Scanner_freeze_line(Scanner *s, int val);
33 /* Note: Tokens in range 100+ are for C/C++ operators */
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
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 /* ->* */