diff --git a/Source/CParse/parser.h b/Source/CParse/parser.h
new file mode 100644
--- /dev/null
+++ b/Source/CParse/parser.h
@@ -0,0 +1,394 @@
+/* A Bison parser, made by GNU Bison 2.3.  */
+
+/* Skeleton interface for Bison's Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     END = 0,
+     ID = 258,
+     HBLOCK = 259,
+     POUND = 260,
+     STRING = 261,
+     WSTRING = 262,
+     INCLUDE = 263,
+     IMPORT = 264,
+     INSERT = 265,
+     CHARCONST = 266,
+     WCHARCONST = 267,
+     NUM_INT = 268,
+     NUM_FLOAT = 269,
+     NUM_UNSIGNED = 270,
+     NUM_LONG = 271,
+     NUM_ULONG = 272,
+     NUM_LONGLONG = 273,
+     NUM_ULONGLONG = 274,
+     NUM_BOOL = 275,
+     TYPEDEF = 276,
+     TYPE_INT = 277,
+     TYPE_UNSIGNED = 278,
+     TYPE_SHORT = 279,
+     TYPE_LONG = 280,
+     TYPE_FLOAT = 281,
+     TYPE_DOUBLE = 282,
+     TYPE_CHAR = 283,
+     TYPE_WCHAR = 284,
+     TYPE_VOID = 285,
+     TYPE_SIGNED = 286,
+     TYPE_BOOL = 287,
+     TYPE_COMPLEX = 288,
+     TYPE_TYPEDEF = 289,
+     TYPE_RAW = 290,
+     TYPE_NON_ISO_INT8 = 291,
+     TYPE_NON_ISO_INT16 = 292,
+     TYPE_NON_ISO_INT32 = 293,
+     TYPE_NON_ISO_INT64 = 294,
+     LPAREN = 295,
+     RPAREN = 296,
+     COMMA = 297,
+     SEMI = 298,
+     EXTERN = 299,
+     INIT = 300,
+     LBRACE = 301,
+     RBRACE = 302,
+     PERIOD = 303,
+     ELLIPSIS = 304,
+     CONST_QUAL = 305,
+     VOLATILE = 306,
+     REGISTER = 307,
+     STRUCT = 308,
+     UNION = 309,
+     EQUAL = 310,
+     SIZEOF = 311,
+     MODULE = 312,
+     LBRACKET = 313,
+     RBRACKET = 314,
+     BEGINFILE = 315,
+     ENDOFFILE = 316,
+     ILLEGAL = 317,
+     CONSTANT = 318,
+     NAME = 319,
+     RENAME = 320,
+     NAMEWARN = 321,
+     EXTEND = 322,
+     PRAGMA = 323,
+     FEATURE = 324,
+     VARARGS = 325,
+     ENUM = 326,
+     CLASS = 327,
+     TYPENAME = 328,
+     PRIVATE = 329,
+     PUBLIC = 330,
+     PROTECTED = 331,
+     COLON = 332,
+     STATIC = 333,
+     VIRTUAL = 334,
+     FRIEND = 335,
+     THROW = 336,
+     CATCH = 337,
+     EXPLICIT = 338,
+     STATIC_ASSERT = 339,
+     CONSTEXPR = 340,
+     THREAD_LOCAL = 341,
+     DECLTYPE = 342,
+     AUTO = 343,
+     NOEXCEPT = 344,
+     OVERRIDE = 345,
+     FINAL = 346,
+     USING = 347,
+     NAMESPACE = 348,
+     NATIVE = 349,
+     INLINE = 350,
+     TYPEMAP = 351,
+     EXCEPT = 352,
+     ECHO = 353,
+     APPLY = 354,
+     CLEAR = 355,
+     SWIGTEMPLATE = 356,
+     FRAGMENT = 357,
+     WARN = 358,
+     LESSTHAN = 359,
+     GREATERTHAN = 360,
+     DELETE_KW = 361,
+     DEFAULT = 362,
+     LESSTHANOREQUALTO = 363,
+     GREATERTHANOREQUALTO = 364,
+     EQUALTO = 365,
+     NOTEQUALTO = 366,
+     LESSEQUALGREATER = 367,
+     ARROW = 368,
+     QUESTIONMARK = 369,
+     TYPES = 370,
+     PARMS = 371,
+     NONID = 372,
+     DSTAR = 373,
+     DCNOT = 374,
+     TEMPLATE = 375,
+     OPERATOR = 376,
+     CONVERSIONOPERATOR = 377,
+     PARSETYPE = 378,
+     PARSEPARM = 379,
+     PARSEPARMS = 380,
+     DOXYGENSTRING = 381,
+     DOXYGENPOSTSTRING = 382,
+     CAST = 383,
+     LOR = 384,
+     LAND = 385,
+     OR = 386,
+     XOR = 387,
+     AND = 388,
+     RSHIFT = 389,
+     LSHIFT = 390,
+     MINUS = 391,
+     PLUS = 392,
+     MODULO = 393,
+     SLASH = 394,
+     STAR = 395,
+     LNOT = 396,
+     NOT = 397,
+     UMINUS = 398,
+     DCOLON = 399
+   };
+#endif
+/* Tokens.  */
+#define END 0
+#define ID 258
+#define HBLOCK 259
+#define POUND 260
+#define STRING 261
+#define WSTRING 262
+#define INCLUDE 263
+#define IMPORT 264
+#define INSERT 265
+#define CHARCONST 266
+#define WCHARCONST 267
+#define NUM_INT 268
+#define NUM_FLOAT 269
+#define NUM_UNSIGNED 270
+#define NUM_LONG 271
+#define NUM_ULONG 272
+#define NUM_LONGLONG 273
+#define NUM_ULONGLONG 274
+#define NUM_BOOL 275
+#define TYPEDEF 276
+#define TYPE_INT 277
+#define TYPE_UNSIGNED 278
+#define TYPE_SHORT 279
+#define TYPE_LONG 280
+#define TYPE_FLOAT 281
+#define TYPE_DOUBLE 282
+#define TYPE_CHAR 283
+#define TYPE_WCHAR 284
+#define TYPE_VOID 285
+#define TYPE_SIGNED 286
+#define TYPE_BOOL 287
+#define TYPE_COMPLEX 288
+#define TYPE_TYPEDEF 289
+#define TYPE_RAW 290
+#define TYPE_NON_ISO_INT8 291
+#define TYPE_NON_ISO_INT16 292
+#define TYPE_NON_ISO_INT32 293
+#define TYPE_NON_ISO_INT64 294
+#define LPAREN 295
+#define RPAREN 296
+#define COMMA 297
+#define SEMI 298
+#define EXTERN 299
+#define INIT 300
+#define LBRACE 301
+#define RBRACE 302
+#define PERIOD 303
+#define ELLIPSIS 304
+#define CONST_QUAL 305
+#define VOLATILE 306
+#define REGISTER 307
+#define STRUCT 308
+#define UNION 309
+#define EQUAL 310
+#define SIZEOF 311
+#define MODULE 312
+#define LBRACKET 313
+#define RBRACKET 314
+#define BEGINFILE 315
+#define ENDOFFILE 316
+#define ILLEGAL 317
+#define CONSTANT 318
+#define NAME 319
+#define RENAME 320
+#define NAMEWARN 321
+#define EXTEND 322
+#define PRAGMA 323
+#define FEATURE 324
+#define VARARGS 325
+#define ENUM 326
+#define CLASS 327
+#define TYPENAME 328
+#define PRIVATE 329
+#define PUBLIC 330
+#define PROTECTED 331
+#define COLON 332
+#define STATIC 333
+#define VIRTUAL 334
+#define FRIEND 335
+#define THROW 336
+#define CATCH 337
+#define EXPLICIT 338
+#define STATIC_ASSERT 339
+#define CONSTEXPR 340
+#define THREAD_LOCAL 341
+#define DECLTYPE 342
+#define AUTO 343
+#define NOEXCEPT 344
+#define OVERRIDE 345
+#define FINAL 346
+#define USING 347
+#define NAMESPACE 348
+#define NATIVE 349
+#define INLINE 350
+#define TYPEMAP 351
+#define EXCEPT 352
+#define ECHO 353
+#define APPLY 354
+#define CLEAR 355
+#define SWIGTEMPLATE 356
+#define FRAGMENT 357
+#define WARN 358
+#define LESSTHAN 359
+#define GREATERTHAN 360
+#define DELETE_KW 361
+#define DEFAULT 362
+#define LESSTHANOREQUALTO 363
+#define GREATERTHANOREQUALTO 364
+#define EQUALTO 365
+#define NOTEQUALTO 366
+#define LESSEQUALGREATER 367
+#define ARROW 368
+#define QUESTIONMARK 369
+#define TYPES 370
+#define PARMS 371
+#define NONID 372
+#define DSTAR 373
+#define DCNOT 374
+#define TEMPLATE 375
+#define OPERATOR 376
+#define CONVERSIONOPERATOR 377
+#define PARSETYPE 378
+#define PARSEPARM 379
+#define PARSEPARMS 380
+#define DOXYGENSTRING 381
+#define DOXYGENPOSTSTRING 382
+#define CAST 383
+#define LOR 384
+#define LAND 385
+#define OR 386
+#define XOR 387
+#define AND 388
+#define RSHIFT 389
+#define LSHIFT 390
+#define MINUS 391
+#define PLUS 392
+#define MODULO 393
+#define SLASH 394
+#define STAR 395
+#define LNOT 396
+#define NOT 397
+#define UMINUS 398
+#define DCOLON 399
+
+
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 1554 "parser.y"
+{
+  const char  *id;
+  List  *bases;
+  struct Define {
+    String *val;
+    String *rawval;
+    int     type;
+    String *qualifier;
+    String *refqualifier;
+    String *bitfield;
+    Parm   *throws;
+    String *throwf;
+    String *nexcept;
+    String *final;
+  } dtype;
+  struct {
+    const char *type;
+    String *filename;
+    int   line;
+  } loc;
+  struct {
+    char      *id;
+    SwigType  *type;
+    String    *defarg;
+    ParmList  *parms;
+    short      have_parms;
+    ParmList  *throws;
+    String    *throwf;
+    String    *nexcept;
+    String    *final;
+  } decl;
+  Parm         *tparms;
+  struct {
+    String     *method;
+    Hash       *kwargs;
+  } tmap;
+  struct {
+    String     *type;
+    String     *us;
+  } ptype;
+  SwigType     *type;
+  String       *str;
+  Parm         *p;
+  ParmList     *pl;
+  int           intvalue;
+  Node         *node;
+}
+/* Line 1529 of yacc.c.  */
+#line 387 "parser.h"
+	YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+extern YYSTYPE yylval;
+
