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