compiler/bootstrap: Fully automated (make updatebootstrap)
authorJerome St-Louis <jerome@ecere.com>
Sun, 6 Jul 2014 09:16:39 +0000 (05:16 -0400)
committerJerome St-Louis <jerome@ecere.com>
Sun, 6 Jul 2014 09:19:52 +0000 (05:19 -0400)
67 files changed:
Makefile
Strapfile [deleted file]
compiler/bootstrap/ecc/bootstrap/ecc.c
compiler/bootstrap/ecc/bootstrap/ecc.main.c
compiler/bootstrap/ecere/bootstrap/AVLTree.c
compiler/bootstrap/ecere/bootstrap/Array.c
compiler/bootstrap/ecere/bootstrap/BTNode.c
compiler/bootstrap/ecere/bootstrap/BinaryTree.c
compiler/bootstrap/ecere/bootstrap/BufferedFile.c
compiler/bootstrap/ecere/bootstrap/BuiltInContainer.c
compiler/bootstrap/ecere/bootstrap/Container.c
compiler/bootstrap/ecere/bootstrap/CustomAVLTree.c
compiler/bootstrap/ecere/bootstrap/DualPipe.c
compiler/bootstrap/ecere/bootstrap/File.c
compiler/bootstrap/ecere/bootstrap/LinkList.c
compiler/bootstrap/ecere/bootstrap/List.c
compiler/bootstrap/ecere/bootstrap/Map.c
compiler/bootstrap/ecere/bootstrap/OldList.c
compiler/bootstrap/ecere/bootstrap/String.c
compiler/bootstrap/ecere/bootstrap/System.c
compiler/bootstrap/ecere/bootstrap/TempFile.c
compiler/bootstrap/ecere/bootstrap/dataTypes.c
compiler/bootstrap/ecere/bootstrap/ecere.main.c
compiler/bootstrap/ecere/bootstrap/i18n.c
compiler/bootstrap/ecere/bootstrap/instance.c
compiler/bootstrap/ecere/bootstrap/memory.c
compiler/bootstrap/ecp/bootstrap/ecp.c
compiler/bootstrap/ecp/bootstrap/ecp.main.c
compiler/bootstrap/ecs/bootstrap/ecs.c
compiler/bootstrap/ecs/bootstrap/ecs.main.c
compiler/bootstrap/libec/bootstrap/ast.c
compiler/bootstrap/libec/bootstrap/copy.c
compiler/bootstrap/libec/bootstrap/dbpass.c
compiler/bootstrap/libec/bootstrap/ec.main.c
compiler/bootstrap/libec/bootstrap/ecdefs.c
compiler/bootstrap/libec/bootstrap/expression.c
compiler/bootstrap/libec/bootstrap/firstPass.c
compiler/bootstrap/libec/bootstrap/freeAst.c
compiler/bootstrap/libec/bootstrap/grammar.c
compiler/bootstrap/libec/bootstrap/lexer.c
compiler/bootstrap/libec/bootstrap/loadSymbols.c
compiler/bootstrap/libec/bootstrap/output.c
compiler/bootstrap/libec/bootstrap/pass0.c
compiler/bootstrap/libec/bootstrap/pass1.c
compiler/bootstrap/libec/bootstrap/pass15.c
compiler/bootstrap/libec/bootstrap/pass16.c
compiler/bootstrap/libec/bootstrap/pass2.c
compiler/bootstrap/libec/bootstrap/pass3.c
compiler/bootstrap/libec/bootstrap/shortcuts.c
compiler/bootstrap/libec/bootstrap/type.c
compiler/ecc/Makefile.bootstrap [new file with mode: 0644]
compiler/ecc/ecc.ec
compiler/ecp/Makefile.bootstrap [new file with mode: 0644]
compiler/ecs/Makefile.bootstrap [new file with mode: 0644]
compiler/libec/Makefile.bootstrap [new file with mode: 0644]
compiler/libec/src/expression.ec
compiler/libec/src/expression.y
compiler/libec/src/grammar.ec
compiler/libec/src/grammar.h
compiler/libec/src/grammar.y
compiler/libec/src/output.ec
compiler/libec/src/pass3.ec
compiler/libec/src/type.ec
compiler/libec/src/type.y
ecere/Makefile.bootstrap [new file with mode: 0644]
ecere/ecere.epj
ecere/src/com/instance.ec

index f36bb17..c00f713 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-.PHONY: all clean realclean distclean emptyoutput prepinstall actualinstall install copyonlyinstall uninstall troubleshoot outputdirs bootstrap deps ecere ecerecom ecerevanilla ear compiler prepbinaries epj2make ide documentor eda prepcodeguard codeguard fixprecompile cleantarget pots installer
+.PHONY: all clean realclean distclean emptyoutput prepinstall actualinstall install copyonlyinstall uninstall troubleshoot outputdirs bootstrap deps ecere ecerecom ecerevanilla ear compiler prepbinaries epj2make ide documentor eda prepcodeguard codeguard fixprecompile cleantarget pots installer regenbootstrap updatebootstrap update_ecere update_libec update_ecp update_ecc update_ecs
 ifneq "$V" "1"
 .SILENT:
 endif
@@ -758,6 +758,43 @@ ifdef WINDOWS_TARGET
 endif
        @$(call echo,The Ecere SDK has been uninstalled.)
 
+regenbootstrap: update_ecere update_libec update_ecp update_ecc update_ecs
+       @echo Bootstrap regenerated.
+
+updatebootstrap: regenbootstrap
+       @echo Copying files...
+       $(call cpq,ecere/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/ecere/bootstrap)
+       $(call cpq,compiler/libec/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/libec/bootstrap)
+       $(call cpq,compiler/ecp/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/ecp/bootstrap)
+       $(call cpq,compiler/ecc/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/ecc/bootstrap)
+       $(call cpq,compiler/ecs/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/ecs/bootstrap)
+       @echo Bootstrap updated.
+
+update_ecere:
+       @echo Regenerating ecere bootstrapper...
+       cd ecere && $(MAKE) -f Makefile.bootstrap clean
+       cd ecere && $(MAKE) -f Makefile.bootstrap
+
+update_libec:
+       @echo Regenerating ec bootstrapper...
+       cd compiler/libec && $(MAKE) -f Makefile.bootstrap clean
+       cd compiler/libec && $(MAKE) -f Makefile.bootstrap
+
+update_ecp:
+       @echo Regenerating ecp bootstrapper...
+       cd compiler/ecp && $(MAKE) -f Makefile.bootstrap clean
+       cd compiler/ecp && $(MAKE) -f Makefile.bootstrap
+
+update_ecc:
+       @echo Regenerating ecc bootstrapper...
+       cd compiler/ecc && $(MAKE) -f Makefile.bootstrap clean
+       cd compiler/ecc && $(MAKE) -f Makefile.bootstrap
+
+update_ecs:
+       @echo Regenerating ecs bootstrapper...
+       cd compiler/ecs && $(MAKE) -f Makefile.bootstrap clean
+       cd compiler/ecs && $(MAKE) -f Makefile.bootstrap
+
 troubleshoot:
        @$(call echo,Printing values of some variables.)
        @$(call echo,HOST_PLATFORM=$(HOST_PLATFORM))
diff --git a/Strapfile b/Strapfile
deleted file mode 100644 (file)
index d208304..0000000
--- a/Strapfile
+++ /dev/null
@@ -1,37 +0,0 @@
-.PHONY: ecere ec precomp compiler symbolgen
-ifneq "$V" "1"
-.SILENT:
-endif
-
-MAKE = make -f Makefile.bootstrap
-
-all: ecere ec precomp compiler symbolgen
-       @echo Bootstrapper ready.
-
-clean:
-       cd ecere && $(MAKE) clean
-       cd ec && $(MAKE) clean
-       cd precomp && $(MAKE) clean
-       cd compiler && $(MAKE) clean
-       cd symbolgen && $(MAKE) clean
-       @echo Done.
-
-ecere:
-       @echo Generating ecere bootstrapper...
-       cd ecere && $(MAKE) -j4
-       
-ec:
-       @echo Generating ec bootstrapper...
-       cd ec && $(MAKE) -j4
-
-precomp:
-       @echo Generating pre-compiler bootstrapper...
-       cd precomp && $(MAKE)
-
-compiler:
-       @echo Generating compiler bootstrapper...
-       cd compiler && $(MAKE)
-
-symbolgen:
-       @echo Generating symbol generater bootstrapper...
-       cd symbolgen && $(MAKE)
index e3d27c1..d3bdeb1 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 static struct Context * globalContext;
@@ -1248,6 +1257,15 @@ __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#define __ENDIA
 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#else\n");
 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#define __ENDIAN_PAD(x) 0\n");
 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#endif\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#if defined(_WIN32)\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#   if defined(__GNUC__) || defined(__TINYC__)\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#      define stdcall __attribute__((__stdcall__))\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#   else\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#      define stdcall __stdcall\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#   endif\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#else\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#   define stdcall\n");
+__ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#endif\n");
 if(buildingBootStrap)
 {
 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(output, "#include <stdint.h>\n");
index 798871b..7d88619 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof;
index 6839d5d..98787e4 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 struct __ecereNameSpace__ecere__sys__BTNode;
index afec042..f886c85 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 struct __ecereNameSpace__ecere__com__Array
index 2c627be..ccbee87 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 typedef __builtin_va_list va_list;
index 37ef9d5..7944b02 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_count;
index 618bcf9..c36aa0d 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__File_buffered;
index a8eabc4..ce7c1ea 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 extern int __ecereVMethodID_class_OnCompare;
index be23757..a1809c9 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 extern int __ecereVMethodID_class_OnCompare;
index fcb6419..f538eab 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 extern int __ecereVMethodID_class_OnCompare;
index aa94578..e00a67d 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 typedef __builtin_va_list va_list;
index 32cd2d0..7d97b03 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 void exit(int status);
index d3592ec..11a54f0 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 struct __ecereNameSpace__ecere__com__LinkElement
index 26e4c63..34c8731 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 struct __ecereNameSpace__ecere__com__LinkElement
index 5e6edf7..330defc 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 extern int __ecereVMethodID_class_OnCopy;
index f398f5e..935778f 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 struct __ecereNameSpace__ecere__sys__OldList
index 9553bb1..6e523d5 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 void exit(int status);
index 74b8029..7ab668f 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 typedef __builtin_va_list va_list;
index d0bc024..20d197b 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 struct __ecereNameSpace__ecere__sys__TempFile
index 06047d9..4d83daa 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 extern int runtimePlatform;
index 1979638..636d889 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 int __ecereVMethodID_class_OnCompare;
index 5259089..3524195 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__moduleMaps;
index a83062c..9031786 100644 (file)
@@ -9,10 +9,7 @@
 #if defined(__GNUC__)
 typedef long long int64;
 typedef unsigned long long uint64;
-#ifdef _WIN32
-#define stdcall __attribute__((__stdcall__))
-#else
-#define stdcall
+#ifndef _WIN32
 #define __declspec(x)
 #endif
 #elif defined(__TINYC__)
@@ -24,10 +21,8 @@ typedef unsigned long long uint64;
 #define strcasecmp stricmp
 #define strncasecmp strnicmp
 #define __declspec(x) __attribute__((x))
-#define stdcall __attribute__((__stdcall__))
 #else
 #define __declspec(x)
-#define stdcall
 #endif
 typedef long long int64;
 typedef unsigned long long uint64;
@@ -40,37 +35,17 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
-#include <stdint.h>
-#include <sys/types.h>
-
-#if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
-#define _64BIT 1
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
 #else
-#define _64BIT 0
+#   define stdcall
 #endif
-
-#define arch_PointerSize                  sizeof(void *)
-#define structSize_Instance               (_64BIT ? 24 : 12)
-#define structSize_Module                 (_64BIT ? 560 : 300)
-#define structSize_BinaryTree             (_64BIT ? 32 : 16)
-#define structSize_OldList                (_64BIT ? 32 : 20)
-#define structSize_NamedLink64            (_64BIT ? 32 : 24)
-#define structSize_ClassTemplateArgument  (_64BIT ? 16 : 8)
-#define structSize_ClassTemplateParameter (_64BIT ? 64 : 40)
-#define structSize_OldLink                (_64BIT ? 24 : 12)
-#define structSize_BTNamedLink            (_64BIT ? 48 : 24)
-#define structSize_Application            (_64BIT ? 800 : 428)
-#define structSize_Watcher                (_64BIT ? 32 : 16)
-#define structSize_SelfWatcher            (_64BIT ? 32 : 16)
-#define structSize_GlobalFunction         (_64BIT ? 72 : 36)
-#define structSize_DefinedExpression      (_64BIT ? 40 : 20)
-#define structSize_BitMember              (_64BIT ? 96 : 64)
-#define structSize_DataMember             (_64BIT ? 160 : 96)
-#define structSize_ClassProperty          (_64BIT ? 80 : 40)
-#define structSize_Method                 (_64BIT ? 96 : 52)
-#define structSize_Property               (_64BIT ? 152 : 88)
-#define structSize_Class                  (_64BIT ? 624 : 376)
-
+#include <stdint.h>
+#include <sys/types.h>
 void exit(int status);
 
 void * calloc(size_t nmemb, size_t size);
index d72fd7e..a9e5ce9 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 void __ecereNameSpace__ecere__sys__FillBytesBy2(void * area, unsigned short value, unsigned int count)
index d5d7695..603e9d7 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
index 5014b16..417cf3c 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof;
index 87d0b52..be2b4ec 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 
index d352748..6a7af20 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Add;
index 026a03d..26e112c 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
index c8daa04..430dea1 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 struct __ecereNameSpace__ecere__sys__OldList
index 8a0f8ba..a8fd243 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
index 79a7254..28bda11 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 int __ecereVMethodID_class_OnGetString;
index 623fa8e..c8c9976 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 void exit(int status);
index 53bd84e..ff35deb 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
@@ -56,7 +65,7 @@ typedef unsigned short int yytype_uint16;
 
 typedef short int yytype_int16;
 
-void * malloc(size_t size);
+void * malloc(size_t);
 
 void free(void *);
 
@@ -77,7 +86,7 @@ static const yytype_int16 yyrhs[] =
 
 static const yytype_uint16 yyrline[] =
 {
-(unsigned short)0, (unsigned short)214, (unsigned short)214, (unsigned short)219, (unsigned short)220, (unsigned short)225, (unsigned short)227, (unsigned short)229, (unsigned short)231, (unsigned short)232, (unsigned short)234, (unsigned short)235, (unsigned short)236, (unsigned short)239, (unsigned short)240, (unsigned short)241, (unsigned short)242, (unsigned short)243, (unsigned short)244, (unsigned short)245, (unsigned short)246, (unsigned short)247, (unsigned short)251, (unsigned short)255, (unsigned short)256, (unsigned short)257, (unsigned short)258, (unsigned short)259, (unsigned short)260, (unsigned short)273, (unsigned short)274, (unsigned short)275, (unsigned short)305, (unsigned short)306, (unsigned short)307, (unsigned short)308, (unsigned short)312, (unsigned short)313, (unsigned short)314, (unsigned short)317, (unsigned short)318, (unsigned short)321, (unsigned short)322, (unsigned short)326, (unsigned short)327, (unsigned short)336, (unsigned short)337, (unsigned short)338, (unsigned short)339, (unsigned short)340, (unsigned short)341, (unsigned short)342, (unsigned short)346, (unsigned short)347, (unsigned short)351, (unsigned short)352, (unsigned short)353, (unsigned short)354, (unsigned short)358, (unsigned short)359, (unsigned short)360, (unsigned short)364, (unsigned short)365, (unsigned short)366, (unsigned short)370, (unsigned short)371, (unsigned short)372, (unsigned short)373, (unsigned short)374, (unsigned short)378, (unsigned short)379, (unsigned short)380, (unsigned short)384, (unsigned short)385, (unsigned short)389, (unsigned short)390, (unsigned short)394, (unsigned short)395, (unsigned short)399, (unsigned short)400, (unsigned short)404, (unsigned short)405, (unsigned short)409, (unsigned short)410, (unsigned short)414, (unsigned short)415, (unsigned short)416, (unsigned short)418, (unsigned short)419, (unsigned short)423, (unsigned short)424, (unsigned short)425, (unsigned short)426, (unsigned short)427, (unsigned short)428, (unsigned short)429, (unsigned short)430, (unsigned short)431, (unsigned short)432, (unsigned short)433, (unsigned short)437, (unsigned short)438, (unsigned short)442, (unsigned short)446, (unsigned short)447, (unsigned short)448, (unsigned short)449, (unsigned short)453, (unsigned short)454, (unsigned short)455, (unsigned short)456, (unsigned short)457, (unsigned short)458, (unsigned short)459, (unsigned short)460, (unsigned short)464, (unsigned short)465, (unsigned short)466, (unsigned short)467, (unsigned short)468, (unsigned short)469, (unsigned short)470, (unsigned short)471, (unsigned short)472, (unsigned short)473, (unsigned short)478, (unsigned short)479, (unsigned short)480, (unsigned short)481, (unsigned short)482, (unsigned short)483, (unsigned short)484, (unsigned short)485, (unsigned short)489, (unsigned short)490, (unsigned short)491, (unsigned short)492, (unsigned short)493, (unsigned short)494, (unsigned short)495, (unsigned short)496, (unsigned short)497, (unsigned short)498, (unsigned short)502, (unsigned short)503, (unsigned short)507, (unsigned short)508, (unsigned short)512, (unsigned short)513, (unsigned short)514, (unsigned short)515, (unsigned short)516, (unsigned short)517, (unsigned short)521, (unsigned short)522, (unsigned short)526, (unsigned short)527, (unsigned short)528, (unsigned short)533, (unsigned short)534, (unsigned short)535, (unsigned short)536, (unsigned short)537, (unsigned short)541, (unsigned short)542, (unsigned short)546, (unsigned short)547, (unsigned short)548, (unsigned short)552, (unsigned short)553, (unsigned short)557, (unsigned short)558, (unsigned short)559, (unsigned short)563, (unsigned short)588, (unsigned short)592, (unsigned short)593, (unsigned short)594, (unsigned short)595, (unsigned short)596, (unsigned short)597, (unsigned short)598, (unsigned short)599, (unsigned short)600, (unsigned short)601, (unsigned short)602, (unsigned short)603, (unsigned short)604, (unsigned short)605, (unsigned short)606, (unsigned short)607, (unsigned short)608, (unsigned short)609, (unsigned short)610, (unsigned short)611, (unsigned short)615, (unsigned short)616, (unsigned short)617, (unsigned short)618, (unsigned short)619, (unsigned short)620, (unsigned short)621, (unsigned short)622, (unsigned short)623, (unsigned short)624, (unsigned short)625, (unsigned short)626, (unsigned short)627, (unsigned short)628, (unsigned short)629, (unsigned short)630, (unsigned short)631, (unsigned short)632, (unsigned short)633, (unsigned short)638, (unsigned short)639, (unsigned short)640, (unsigned short)641, (unsigned short)642, (unsigned short)645, (unsigned short)646, (unsigned short)647, (unsigned short)648, (unsigned short)649, (unsigned short)654, (unsigned short)655, (unsigned short)658, (unsigned short)660, (unsigned short)665, (unsigned short)666, (unsigned short)670, (unsigned short)671, (unsigned short)675, (unsigned short)679, (unsigned short)680, (unsigned short)684, (unsigned short)686, (unsigned short)688, (unsigned short)690, (unsigned short)692, (unsigned short)695, (unsigned short)697, (unsigned short)699, (unsigned short)701, (unsigned short)703, (unsigned short)706, (unsigned short)708, (unsigned short)710, (unsigned short)712, (unsigned short)714, (unsigned short)717, (unsigned short)719, (unsigned short)721, (unsigned short)723, (unsigned short)725, (unsigned short)730, (unsigned short)731, (unsigned short)732, (unsigned short)733, (unsigned short)734, (unsigned short)735, (unsigned short)736, (unsigned short)737, (unsigned short)741, (unsigned short)743, (unsigned short)748, (unsigned short)750, (unsigned short)752, (unsigned short)754, (unsigned short)756, (unsigned short)761, (unsigned short)762, (unsigned short)766, (unsigned short)768, (unsigned short)769, (unsigned short)770, (unsigned short)771, (unsigned short)775, (unsigned short)777, (unsigned short)782, (unsigned short)784, (unsigned short)790, (unsigned short)792, (unsigned short)794, (unsigned short)796, (unsigned short)798, (unsigned short)800, (unsigned short)802, (unsigned short)804, (unsigned short)806, (unsigned short)808, (unsigned short)810, (unsigned short)815, (unsigned short)817, (unsigned short)819, (unsigned short)821, (unsigned short)823, (unsigned short)828, (unsigned short)829, (unsigned short)830, (unsigned short)831, (unsigned short)832, (unsigned short)833, (unsigned short)837, (unsigned short)838, (unsigned short)839, (unsigned short)840, (unsigned short)841, (unsigned short)842, (unsigned short)888, (unsigned short)889, (unsigned short)891, (unsigned short)897, (unsigned short)899, (unsigned short)901, (unsigned short)903, (unsigned short)905, (unsigned short)910, (unsigned short)911, (unsigned short)914, (unsigned short)916, (unsigned short)918, (unsigned short)924, (unsigned short)925, (unsigned short)926, (unsigned short)928, (unsigned short)933, (unsigned short)937, (unsigned short)939, (unsigned short)941, (unsigned short)946, (unsigned short)947, (unsigned short)951, (unsigned short)952, (unsigned short)953, (unsigned short)954, (unsigned short)958, (unsigned short)959, (unsigned short)963, (unsigned short)964, (unsigned short)968, (unsigned short)969, (unsigned short)970, (unsigned short)974, (unsigned short)975, (unsigned short)979, (unsigned short)980, (unsigned short)989, (unsigned short)991, (unsigned short)993, (unsigned short)1009, (unsigned short)1010, (unsigned short)1031, (unsigned short)1033, (unsigned short)1038, (unsigned short)1039, (unsigned short)1040, (unsigned short)1041, (unsigned short)1042, (unsigned short)1043, (unsigned short)1047, (unsigned short)1049, (unsigned short)1051, (unsigned short)1056, (unsigned short)1057, (unsigned short)1061, (unsigned short)1062, (unsigned short)1065, (unsigned short)1069, (unsigned short)1070, (unsigned short)1071, (unsigned short)1075, (unsigned short)1079, (unsigned short)1087, (unsigned short)1092, (unsigned short)1093, (unsigned short)1097, (unsigned short)1098, (unsigned short)1099, (unsigned short)1103, (unsigned short)1104, (unsigned short)1105, (unsigned short)1106, (unsigned short)1108, (unsigned short)1109, (unsigned short)1110, (unsigned short)1114, (unsigned short)1115, (unsigned short)1116, (unsigned short)1117, (unsigned short)1118, (unsigned short)1122, (unsigned short)1126, (unsigned short)1128, (unsigned short)1133, (unsigned short)1135, (unsigned short)1137, (unsigned short)1139, (unsigned short)1144, (unsigned short)1146, (unsigned short)1151, (unsigned short)1153, (unsigned short)1158, (unsigned short)1163, (unsigned short)1168, (unsigned short)1170, (unsigned short)1175, (unsigned short)1177, (unsigned short)1179, (unsigned short)1181, (unsigned short)1183, (unsigned short)1189, (unsigned short)1194, (unsigned short)1199, (unsigned short)1200, (unsigned short)1204, (unsigned short)1206, (unsigned short)1211, (unsigned short)1216, (unsigned short)1217, (unsigned short)1218, (unsigned short)1219, (unsigned short)1220, (unsigned short)1221, (unsigned short)1225, (unsigned short)1226, (unsigned short)1227, (unsigned short)1231
+(unsigned short)0, (unsigned short)215, (unsigned short)215, (unsigned short)220, (unsigned short)221, (unsigned short)226, (unsigned short)228, (unsigned short)230, (unsigned short)232, (unsigned short)233, (unsigned short)235, (unsigned short)236, (unsigned short)237, (unsigned short)240, (unsigned short)241, (unsigned short)242, (unsigned short)243, (unsigned short)244, (unsigned short)245, (unsigned short)246, (unsigned short)247, (unsigned short)248, (unsigned short)252, (unsigned short)256, (unsigned short)257, (unsigned short)258, (unsigned short)259, (unsigned short)260, (unsigned short)261, (unsigned short)274, (unsigned short)275, (unsigned short)276, (unsigned short)306, (unsigned short)307, (unsigned short)308, (unsigned short)309, (unsigned short)313, (unsigned short)314, (unsigned short)315, (unsigned short)318, (unsigned short)319, (unsigned short)322, (unsigned short)323, (unsigned short)327, (unsigned short)328, (unsigned short)337, (unsigned short)338, (unsigned short)339, (unsigned short)340, (unsigned short)341, (unsigned short)342, (unsigned short)343, (unsigned short)347, (unsigned short)348, (unsigned short)352, (unsigned short)353, (unsigned short)354, (unsigned short)355, (unsigned short)359, (unsigned short)360, (unsigned short)361, (unsigned short)365, (unsigned short)366, (unsigned short)367, (unsigned short)371, (unsigned short)372, (unsigned short)373, (unsigned short)374, (unsigned short)375, (unsigned short)379, (unsigned short)380, (unsigned short)381, (unsigned short)385, (unsigned short)386, (unsigned short)390, (unsigned short)391, (unsigned short)395, (unsigned short)396, (unsigned short)400, (unsigned short)401, (unsigned short)405, (unsigned short)406, (unsigned short)410, (unsigned short)411, (unsigned short)415, (unsigned short)416, (unsigned short)417, (unsigned short)419, (unsigned short)420, (unsigned short)424, (unsigned short)425, (unsigned short)426, (unsigned short)427, (unsigned short)428, (unsigned short)429, (unsigned short)430, (unsigned short)431, (unsigned short)432, (unsigned short)433, (unsigned short)434, (unsigned short)438, (unsigned short)439, (unsigned short)443, (unsigned short)447, (unsigned short)448, (unsigned short)449, (unsigned short)450, (unsigned short)454, (unsigned short)455, (unsigned short)456, (unsigned short)457, (unsigned short)458, (unsigned short)459, (unsigned short)460, (unsigned short)461, (unsigned short)465, (unsigned short)466, (unsigned short)467, (unsigned short)468, (unsigned short)469, (unsigned short)470, (unsigned short)471, (unsigned short)472, (unsigned short)473, (unsigned short)474, (unsigned short)479, (unsigned short)480, (unsigned short)481, (unsigned short)482, (unsigned short)483, (unsigned short)484, (unsigned short)485, (unsigned short)486, (unsigned short)490, (unsigned short)491, (unsigned short)492, (unsigned short)493, (unsigned short)494, (unsigned short)495, (unsigned short)496, (unsigned short)497, (unsigned short)498, (unsigned short)499, (unsigned short)503, (unsigned short)504, (unsigned short)508, (unsigned short)509, (unsigned short)513, (unsigned short)514, (unsigned short)515, (unsigned short)516, (unsigned short)517, (unsigned short)518, (unsigned short)522, (unsigned short)523, (unsigned short)527, (unsigned short)528, (unsigned short)529, (unsigned short)534, (unsigned short)535, (unsigned short)536, (unsigned short)537, (unsigned short)538, (unsigned short)542, (unsigned short)543, (unsigned short)547, (unsigned short)548, (unsigned short)549, (unsigned short)553, (unsigned short)554, (unsigned short)558, (unsigned short)559, (unsigned short)560, (unsigned short)564, (unsigned short)589, (unsigned short)593, (unsigned short)594, (unsigned short)595, (unsigned short)596, (unsigned short)597, (unsigned short)598, (unsigned short)599, (unsigned short)600, (unsigned short)601, (unsigned short)602, (unsigned short)603, (unsigned short)604, (unsigned short)605, (unsigned short)606, (unsigned short)607, (unsigned short)608, (unsigned short)609, (unsigned short)610, (unsigned short)611, (unsigned short)612, (unsigned short)616, (unsigned short)617, (unsigned short)618, (unsigned short)619, (unsigned short)620, (unsigned short)621, (unsigned short)622, (unsigned short)623, (unsigned short)624, (unsigned short)625, (unsigned short)626, (unsigned short)627, (unsigned short)628, (unsigned short)629, (unsigned short)630, (unsigned short)631, (unsigned short)632, (unsigned short)633, (unsigned short)634, (unsigned short)639, (unsigned short)640, (unsigned short)641, (unsigned short)642, (unsigned short)643, (unsigned short)646, (unsigned short)647, (unsigned short)648, (unsigned short)649, (unsigned short)650, (unsigned short)655, (unsigned short)656, (unsigned short)659, (unsigned short)661, (unsigned short)666, (unsigned short)667, (unsigned short)671, (unsigned short)672, (unsigned short)676, (unsigned short)680, (unsigned short)681, (unsigned short)685, (unsigned short)687, (unsigned short)689, (unsigned short)691, (unsigned short)693, (unsigned short)696, (unsigned short)698, (unsigned short)700, (unsigned short)702, (unsigned short)704, (unsigned short)707, (unsigned short)709, (unsigned short)711, (unsigned short)713, (unsigned short)715, (unsigned short)718, (unsigned short)720, (unsigned short)722, (unsigned short)724, (unsigned short)726, (unsigned short)731, (unsigned short)732, (unsigned short)733, (unsigned short)734, (unsigned short)735, (unsigned short)736, (unsigned short)737, (unsigned short)738, (unsigned short)742, (unsigned short)744, (unsigned short)749, (unsigned short)751, (unsigned short)753, (unsigned short)755, (unsigned short)757, (unsigned short)762, (unsigned short)763, (unsigned short)767, (unsigned short)769, (unsigned short)770, (unsigned short)771, (unsigned short)772, (unsigned short)776, (unsigned short)778, (unsigned short)783, (unsigned short)785, (unsigned short)791, (unsigned short)793, (unsigned short)795, (unsigned short)797, (unsigned short)799, (unsigned short)801, (unsigned short)803, (unsigned short)805, (unsigned short)807, (unsigned short)809, (unsigned short)811, (unsigned short)816, (unsigned short)818, (unsigned short)820, (unsigned short)822, (unsigned short)824, (unsigned short)829, (unsigned short)830, (unsigned short)831, (unsigned short)832, (unsigned short)833, (unsigned short)834, (unsigned short)838, (unsigned short)839, (unsigned short)840, (unsigned short)841, (unsigned short)842, (unsigned short)843, (unsigned short)889, (unsigned short)890, (unsigned short)892, (unsigned short)898, (unsigned short)900, (unsigned short)902, (unsigned short)904, (unsigned short)906, (unsigned short)911, (unsigned short)912, (unsigned short)915, (unsigned short)917, (unsigned short)919, (unsigned short)925, (unsigned short)926, (unsigned short)927, (unsigned short)929, (unsigned short)934, (unsigned short)938, (unsigned short)940, (unsigned short)942, (unsigned short)947, (unsigned short)948, (unsigned short)952, (unsigned short)953, (unsigned short)954, (unsigned short)955, (unsigned short)959, (unsigned short)960, (unsigned short)964, (unsigned short)965, (unsigned short)969, (unsigned short)970, (unsigned short)971, (unsigned short)975, (unsigned short)976, (unsigned short)980, (unsigned short)981, (unsigned short)990, (unsigned short)992, (unsigned short)994, (unsigned short)1010, (unsigned short)1011, (unsigned short)1032, (unsigned short)1034, (unsigned short)1039, (unsigned short)1040, (unsigned short)1041, (unsigned short)1042, (unsigned short)1043, (unsigned short)1044, (unsigned short)1048, (unsigned short)1050, (unsigned short)1052, (unsigned short)1057, (unsigned short)1058, (unsigned short)1062, (unsigned short)1063, (unsigned short)1066, (unsigned short)1070, (unsigned short)1071, (unsigned short)1072, (unsigned short)1076, (unsigned short)1080, (unsigned short)1088, (unsigned short)1093, (unsigned short)1094, (unsigned short)1098, (unsigned short)1099, (unsigned short)1100, (unsigned short)1104, (unsigned short)1105, (unsigned short)1106, (unsigned short)1107, (unsigned short)1109, (unsigned short)1110, (unsigned short)1111, (unsigned short)1115, (unsigned short)1116, (unsigned short)1117, (unsigned short)1118, (unsigned short)1119, (unsigned short)1123, (unsigned short)1127, (unsigned short)1129, (unsigned short)1134, (unsigned short)1136, (unsigned short)1138, (unsigned short)1140, (unsigned short)1145, (unsigned short)1147, (unsigned short)1152, (unsigned short)1154, (unsigned short)1159, (unsigned short)1164, (unsigned short)1169, (unsigned short)1171, (unsigned short)1176, (unsigned short)1178, (unsigned short)1180, (unsigned short)1182, (unsigned short)1184, (unsigned short)1190, (unsigned short)1195, (unsigned short)1200, (unsigned short)1201, (unsigned short)1205, (unsigned short)1207, (unsigned short)1212, (unsigned short)1217, (unsigned short)1218, (unsigned short)1219, (unsigned short)1220, (unsigned short)1221, (unsigned short)1222, (unsigned short)1226, (unsigned short)1227, (unsigned short)1228, (unsigned short)1232
 };
 
 static const char * const yytname[] =
@@ -136,6 +145,8 @@ void * calloc(size_t nmemb, size_t size);
 
 void free(void * ptr);
 
+void * malloc(size_t size);
+
 void * realloc(void * ptr, size_t size);
 
 long int strtol(const char * nptr, char ** endptr, int base);
@@ -1207,7 +1218,7 @@ struct Location yylsa[200];
 struct Location * yyls;
 struct Location * yylsp;
 struct Location yyerror_range[2];
-unsigned int yystacksize;
+size_t yystacksize;
 int yyn;
 int yyresult;
 int yytoken;
@@ -1239,7 +1250,7 @@ yysetstate:
 *yyssp = yystate;
 if(yyss + yystacksize - 1 <= yyssp)
 {
-unsigned int yysize = yyssp - yyss + 1;
+size_t yysize = yyssp - yyss + 1;
 
 if(10000 <= yystacksize)
 goto yyexhaustedlab;
@@ -1254,7 +1265,7 @@ if(!yyptr)
 goto yyexhaustedlab;
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyss_alloc, yyss, (yysize) * sizeof (*(yyss)));
 yyss = &(*yyptr).yyss_alloc;
@@ -1263,7 +1274,7 @@ yyptr += yynewbytes / sizeof (*yyptr);
 }while((0));
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyvs_alloc, yyvs, (yysize) * sizeof (*(yyvs)));
 yyvs = &(*yyptr).yyvs_alloc;
@@ -1272,7 +1283,7 @@ yyptr += yynewbytes / sizeof (*yyptr);
 }while((0));
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyls_alloc, yyls, (yysize) * sizeof (*(yyls)));
 yyls = &(*yyptr).yyls_alloc;
index d1ea6c6..0dc06ce 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
index c92b1c0..d02a43c 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 extern unsigned int inCompiler;
index 12096b8..2500193 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
@@ -64,7 +73,7 @@ typedef unsigned short int yytype_uint16;
 
 typedef short int yytype_int16;
 
-void * malloc(size_t size);
+void * malloc(size_t);
 
 void free(void *);
 
@@ -85,7 +94,7 @@ static const yytype_int16 yyrhs[] =
 
 static const yytype_uint16 yyrline[] =
 {
-(unsigned short)0, (unsigned short)282, (unsigned short)282, (unsigned short)301, (unsigned short)340, (unsigned short)341, (unsigned short)421, (unsigned short)425, (unsigned short)428, (unsigned short)429, (unsigned short)430, (unsigned short)469, (unsigned short)471, (unsigned short)476, (unsigned short)481, (unsigned short)486, (unsigned short)488, (unsigned short)493, (unsigned short)495, (unsigned short)500, (unsigned short)502, (unsigned short)507, (unsigned short)509, (unsigned short)511, (unsigned short)513, (unsigned short)515, (unsigned short)519, (unsigned short)523, (unsigned short)536, (unsigned short)538, (unsigned short)540, (unsigned short)542, (unsigned short)544, (unsigned short)550, (unsigned short)552, (unsigned short)557, (unsigned short)562, (unsigned short)567, (unsigned short)569, (unsigned short)571, (unsigned short)576, (unsigned short)577, (unsigned short)581, (unsigned short)582, (unsigned short)593, (unsigned short)597, (unsigned short)598, (unsigned short)600, (unsigned short)605, (unsigned short)606, (unsigned short)608, (unsigned short)611, (unsigned short)623, (unsigned short)634, (unsigned short)653, (unsigned short)655, (unsigned short)660, (unsigned short)661, (unsigned short)662, (unsigned short)663, (unsigned short)664, (unsigned short)665, (unsigned short)666, (unsigned short)667, (unsigned short)680, (unsigned short)684, (unsigned short)685, (unsigned short)686, (unsigned short)687, (unsigned short)691, (unsigned short)692, (unsigned short)693, (unsigned short)694, (unsigned short)695, (unsigned short)696, (unsigned short)697, (unsigned short)701, (unsigned short)703, (unsigned short)708, (unsigned short)710, (unsigned short)712, (unsigned short)714, (unsigned short)716, (unsigned short)746, (unsigned short)748, (unsigned short)753, (unsigned short)755, (unsigned short)757, (unsigned short)759, (unsigned short)761, (unsigned short)790, (unsigned short)792, (unsigned short)794, (unsigned short)799, (unsigned short)801, (unsigned short)806, (unsigned short)808, (unsigned short)812, (unsigned short)814, (unsigned short)816, (unsigned short)818, (unsigned short)823, (unsigned short)826, (unsigned short)829, (unsigned short)832, (unsigned short)897, (unsigned short)899, (unsigned short)904, (unsigned short)906, (unsigned short)908, (unsigned short)910, (unsigned short)912, (unsigned short)943, (unsigned short)947, (unsigned short)948, (unsigned short)949, (unsigned short)953, (unsigned short)954, (unsigned short)955, (unsigned short)959, (unsigned short)960, (unsigned short)961, (unsigned short)962, (unsigned short)966, (unsigned short)969, (unsigned short)972, (unsigned short)975, (unsigned short)978, (unsigned short)983, (unsigned short)984, (unsigned short)986, (unsigned short)988, (unsigned short)990, (unsigned short)992, (unsigned short)997, (unsigned short)1001, (unsigned short)1004, (unsigned short)1007, (unsigned short)1010, (unsigned short)1013, (unsigned short)1018, (unsigned short)1019, (unsigned short)1021, (unsigned short)1026, (unsigned short)1030, (unsigned short)1032, (unsigned short)1037, (unsigned short)1039, (unsigned short)1044, (unsigned short)1046, (unsigned short)1051, (unsigned short)1056, (unsigned short)1058, (unsigned short)1063, (unsigned short)1065, (unsigned short)1067, (unsigned short)1069, (unsigned short)1074, (unsigned short)1076, (unsigned short)1078, (unsigned short)1080, (unsigned short)1085, (unsigned short)1086, (unsigned short)1087, (unsigned short)1088, (unsigned short)1089, (unsigned short)1090, (unsigned short)1091, (unsigned short)1092, (unsigned short)1093, (unsigned short)1094, (unsigned short)1095, (unsigned short)1097, (unsigned short)1098, (unsigned short)1100, (unsigned short)1104, (unsigned short)1107, (unsigned short)1108, (unsigned short)1109, (unsigned short)1110, (unsigned short)1111, (unsigned short)1112, (unsigned short)1113, (unsigned short)1114, (unsigned short)1115, (unsigned short)1116, (unsigned short)1117, (unsigned short)1118, (unsigned short)1119, (unsigned short)1120, (unsigned short)1122, (unsigned short)1123, (unsigned short)1127, (unsigned short)1128, (unsigned short)1129, (unsigned short)1133, (unsigned short)1137, (unsigned short)1138, (unsigned short)1139, (unsigned short)1143, (unsigned short)1144, (unsigned short)1145, (unsigned short)1146, (unsigned short)1147, (unsigned short)1151, (unsigned short)1152, (unsigned short)1164, (unsigned short)1165, (unsigned short)1169, (unsigned short)1170, (unsigned short)1171, (unsigned short)1172, (unsigned short)1173, (unsigned short)1174, (unsigned short)1175, (unsigned short)1176, (unsigned short)1180, (unsigned short)1184, (unsigned short)1185, (unsigned short)1189, (unsigned short)1197, (unsigned short)1198, (unsigned short)1202, (unsigned short)1203, (unsigned short)1204, (unsigned short)1208, (unsigned short)1209, (unsigned short)1213, (unsigned short)1214, (unsigned short)1215, (unsigned short)1216, (unsigned short)1217, (unsigned short)1218, (unsigned short)1258, (unsigned short)1259, (unsigned short)1263, (unsigned short)1271, (unsigned short)1272, (unsigned short)1280, (unsigned short)1281, (unsigned short)1283, (unsigned short)1284, (unsigned short)1293, (unsigned short)1294, (unsigned short)1298, (unsigned short)1305, (unsigned short)1312, (unsigned short)1318, (unsigned short)1325, (unsigned short)1331, (unsigned short)1340, (unsigned short)1347, (unsigned short)1353, (unsigned short)1359, (unsigned short)1365, (unsigned short)1371, (unsigned short)1377, (unsigned short)1388, (unsigned short)1393, (unsigned short)1394, (unsigned short)1399, (unsigned short)1400, (unsigned short)1401, (unsigned short)1405, (unsigned short)1409, (unsigned short)1410, (unsigned short)1411, (unsigned short)1412, (unsigned short)1413, (unsigned short)1414, (unsigned short)1415, (unsigned short)1428, (unsigned short)1429, (unsigned short)1430, (unsigned short)1431, (unsigned short)1432, (unsigned short)1433, (unsigned short)1434, (unsigned short)1435, (unsigned short)1436, (unsigned short)1437, (unsigned short)1438, (unsigned short)1439, (unsigned short)1440, (unsigned short)1441, (unsigned short)1442, (unsigned short)1443, (unsigned short)1444, (unsigned short)1445, (unsigned short)1446, (unsigned short)1447, (unsigned short)1448, (unsigned short)1449, (unsigned short)1450, (unsigned short)1451, (unsigned short)1453, (unsigned short)1454, (unsigned short)1455, (unsigned short)1456, (unsigned short)1457, (unsigned short)1459, (unsigned short)1460, (unsigned short)1464, (unsigned short)1468, (unsigned short)1472, (unsigned short)1473, (unsigned short)1477, (unsigned short)1479, (unsigned short)1480, (unsigned short)1481, (unsigned short)1482, (unsigned short)1483, (unsigned short)1484, (unsigned short)1485, (unsigned short)1486, (unsigned short)1487, (unsigned short)1489, (unsigned short)1490, (unsigned short)1491, (unsigned short)1492, (unsigned short)1493, (unsigned short)1494, (unsigned short)1495, (unsigned short)1496, (unsigned short)1523, (unsigned short)1524, (unsigned short)1525, (unsigned short)1526, (unsigned short)1530, (unsigned short)1531, (unsigned short)1532, (unsigned short)1533, (unsigned short)1534, (unsigned short)1538, (unsigned short)1539, (unsigned short)1540, (unsigned short)1541, (unsigned short)1543, (unsigned short)1544, (unsigned short)1545, (unsigned short)1546, (unsigned short)1549, (unsigned short)1550, (unsigned short)1554, (unsigned short)1555, (unsigned short)1564, (unsigned short)1565, (unsigned short)1566, (unsigned short)1567, (unsigned short)1568, (unsigned short)1569, (unsigned short)1570, (unsigned short)1571, (unsigned short)1575, (unsigned short)1576, (unsigned short)1580, (unsigned short)1581, (unsigned short)1582, (unsigned short)1583, (unsigned short)1584, (unsigned short)1585, (unsigned short)1586, (unsigned short)1590, (unsigned short)1591, (unsigned short)1592, (unsigned short)1593, (unsigned short)1594, (unsigned short)1598, (unsigned short)1599, (unsigned short)1600, (unsigned short)1601, (unsigned short)1602, (unsigned short)1606, (unsigned short)1614, (unsigned short)1615, (unsigned short)1616, (unsigned short)1617, (unsigned short)1618, (unsigned short)1619, (unsigned short)1620, (unsigned short)1621, (unsigned short)1622, (unsigned short)1626, (unsigned short)1627, (unsigned short)1628, (unsigned short)1629, (unsigned short)1630, (unsigned short)1632, (unsigned short)1633, (unsigned short)1634, (unsigned short)1635, (unsigned short)1639, (unsigned short)1640, (unsigned short)1641, (unsigned short)1643, (unsigned short)1644, (unsigned short)1648, (unsigned short)1649, (unsigned short)1650, (unsigned short)1652, (unsigned short)1653, (unsigned short)1657, (unsigned short)1658, (unsigned short)1659, (unsigned short)1661, (unsigned short)1662, (unsigned short)1666, (unsigned short)1667, (unsigned short)1668, (unsigned short)1672, (unsigned short)1673, (unsigned short)1674, (unsigned short)1678, (unsigned short)1679, (unsigned short)1680, (unsigned short)1681, (unsigned short)1682, (unsigned short)1684, (unsigned short)1685, (unsigned short)1686, (unsigned short)1687, (unsigned short)1689, (unsigned short)1690, (unsigned short)1691, (unsigned short)1692, (unsigned short)1694, (unsigned short)1695, (unsigned short)1696, (unsigned short)1697, (unsigned short)1701, (unsigned short)1702, (unsigned short)1703, (unsigned short)1704, (unsigned short)1705, (unsigned short)1707, (unsigned short)1708, (unsigned short)1709, (unsigned short)1710, (unsigned short)1714, (unsigned short)1715, (unsigned short)1716, (unsigned short)1717, (unsigned short)1718, (unsigned short)1719, (unsigned short)1720, (unsigned short)1721, (unsigned short)1722, (unsigned short)1723, (unsigned short)1724, (unsigned short)1728, (unsigned short)1729, (unsigned short)1730, (unsigned short)1731, (unsigned short)1735, (unsigned short)1736, (unsigned short)1737, (unsigned short)1741, (unsigned short)1742, (unsigned short)1743, (unsigned short)1744, (unsigned short)1746, (unsigned short)1747, (unsigned short)1749, (unsigned short)1750, (unsigned short)1755, (unsigned short)1757, (unsigned short)1762, (unsigned short)1790, (unsigned short)1791, (unsigned short)1792, (unsigned short)1793, (unsigned short)1795, (unsigned short)1796, (unsigned short)1797, (unsigned short)1798, (unsigned short)1800, (unsigned short)1801, (unsigned short)1805, (unsigned short)1806, (unsigned short)1815, (unsigned short)1816, (unsigned short)1820, (unsigned short)1821, (unsigned short)1822, (unsigned short)1823, (unsigned short)1824, (unsigned short)1825, (unsigned short)1826, (unsigned short)1830, (unsigned short)1831, (unsigned short)1835, (unsigned short)1839, (unsigned short)1843, (unsigned short)1850, (unsigned short)1851, (unsigned short)1852, (unsigned short)1853, (unsigned short)1854, (unsigned short)1858, (unsigned short)1859, (unsigned short)1902, (unsigned short)1903, (unsigned short)1904, (unsigned short)1905, (unsigned short)1906, (unsigned short)1907, (unsigned short)1908, (unsigned short)1912, (unsigned short)1913, (unsigned short)1914, (unsigned short)1915, (unsigned short)1916, (unsigned short)1923, (unsigned short)1924, (unsigned short)1925, (unsigned short)1926, (unsigned short)1930, (unsigned short)1931, (unsigned short)1932, (unsigned short)1934, (unsigned short)1935, (unsigned short)1939, (unsigned short)1940, (unsigned short)1941, (unsigned short)1943, (unsigned short)1944, (unsigned short)1948, (unsigned short)1949, (unsigned short)1950, (unsigned short)1952, (unsigned short)1953, (unsigned short)1957, (unsigned short)1958, (unsigned short)1959, (unsigned short)1963, (unsigned short)1964, (unsigned short)1965, (unsigned short)1969, (unsigned short)1970, (unsigned short)1971, (unsigned short)1972, (unsigned short)1973, (unsigned short)1974, (unsigned short)1975, (unsigned short)1976, (unsigned short)1977, (unsigned short)1979, (unsigned short)1980, (unsigned short)1981, (unsigned short)1982, (unsigned short)1983, (unsigned short)1984, (unsigned short)1985, (unsigned short)1986, (unsigned short)1988, (unsigned short)1989, (unsigned short)1990, (unsigned short)1991, (unsigned short)1993, (unsigned short)1994, (unsigned short)1995, (unsigned short)1996, (unsigned short)1998, (unsigned short)2006, (unsigned short)2010, (unsigned short)2015, (unsigned short)2022, (unsigned short)2023, (unsigned short)2027, (unsigned short)2032, (unsigned short)2033, (unsigned short)2037, (unsigned short)2038, (unsigned short)2039, (unsigned short)2040, (unsigned short)2046, (unsigned short)2047, (unsigned short)2048, (unsigned short)2052, (unsigned short)2053, (unsigned short)2054, (unsigned short)2055, (unsigned short)2059, (unsigned short)2061, (unsigned short)2065, (unsigned short)2066, (unsigned short)2067, (unsigned short)2068, (unsigned short)2069, (unsigned short)2070, (unsigned short)2071, (unsigned short)2075, (unsigned short)2076, (unsigned short)2077, (unsigned short)2078, (unsigned short)2079, (unsigned short)2080, (unsigned short)2081, (unsigned short)2085, (unsigned short)2086, (unsigned short)2087, (unsigned short)2091, (unsigned short)2092, (unsigned short)2093, (unsigned short)2097, (unsigned short)2101, (unsigned short)2102, (unsigned short)2106, (unsigned short)2107, (unsigned short)2108, (unsigned short)2112, (unsigned short)2113, (unsigned short)2115, (unsigned short)2116, (unsigned short)2117, (unsigned short)2118, (unsigned short)2119, (unsigned short)2121, (unsigned short)2122, (unsigned short)2123, (unsigned short)2124, (unsigned short)2125, (unsigned short)2127, (unsigned short)2128, (unsigned short)2132, (unsigned short)2133, (unsigned short)2137, (unsigned short)2138, (unsigned short)2139, (unsigned short)2143, (unsigned short)2144, (unsigned short)2145, (unsigned short)2146, (unsigned short)2147, (unsigned short)2148, (unsigned short)2149, (unsigned short)2150, (unsigned short)2151, (unsigned short)2153, (unsigned short)2154, (unsigned short)2156, (unsigned short)2157, (unsigned short)2158, (unsigned short)2159, (unsigned short)2160, (unsigned short)2162, (unsigned short)2163, (unsigned short)2164, (unsigned short)2165, (unsigned short)2169, (unsigned short)2170, (unsigned short)2174, (unsigned short)2175, (unsigned short)2179, (unsigned short)2183, (unsigned short)2184, (unsigned short)2185, (unsigned short)2190, (unsigned short)2191, (unsigned short)2195, (unsigned short)2196, (unsigned short)2197, (unsigned short)2198, (unsigned short)2199, (unsigned short)2200, (unsigned short)2201, (unsigned short)2202, (unsigned short)2203, (unsigned short)2204, (unsigned short)2205, (unsigned short)2206, (unsigned short)2207, (unsigned short)2208, (unsigned short)2209, (unsigned short)2210, (unsigned short)2211, (unsigned short)2212, (unsigned short)2213, (unsigned short)2214, (unsigned short)2215, (unsigned short)2216, (unsigned short)2217, (unsigned short)2218, (unsigned short)2219, (unsigned short)2220, (unsigned short)2224, (unsigned short)2225, (unsigned short)2226, (unsigned short)2227, (unsigned short)2228, (unsigned short)2229, (unsigned short)2230, (unsigned short)2231, (unsigned short)2232, (unsigned short)2233, (unsigned short)2234, (unsigned short)2235, (unsigned short)2236, (unsigned short)2237, (unsigned short)2238, (unsigned short)2239, (unsigned short)2240, (unsigned short)2241, (unsigned short)2242, (unsigned short)2243, (unsigned short)2244, (unsigned short)2245, (unsigned short)2246, (unsigned short)2247, (unsigned short)2253, (unsigned short)2255, (unsigned short)2257, (unsigned short)2259, (unsigned short)2261, (unsigned short)2263, (unsigned short)2265, (unsigned short)2267, (unsigned short)2269, (unsigned short)2271, (unsigned short)2276, (unsigned short)2277, (unsigned short)2281, (unsigned short)2287, (unsigned short)2293, (unsigned short)2300, (unsigned short)2310, (unsigned short)2311, (unsigned short)2312, (unsigned short)2313, (unsigned short)2317, (unsigned short)2318, (unsigned short)2319, (unsigned short)2321, (unsigned short)2322, (unsigned short)2323, (unsigned short)2325, (unsigned short)2326, (unsigned short)2327, (unsigned short)2331, (unsigned short)2335, (unsigned short)2343, (unsigned short)2352, (unsigned short)2361, (unsigned short)2362, (unsigned short)2364, (unsigned short)2365, (unsigned short)2369, (unsigned short)2376, (unsigned short)2383, (unsigned short)2386, (unsigned short)2399, (unsigned short)2413, (unsigned short)2416, (unsigned short)2418, (unsigned short)2420, (unsigned short)2425, (unsigned short)2426, (unsigned short)2430, (unsigned short)2431, (unsigned short)2432, (unsigned short)2433, (unsigned short)2434, (unsigned short)2435, (unsigned short)2436, (unsigned short)2437, (unsigned short)2441, (unsigned short)2442, (unsigned short)2443, (unsigned short)2444, (unsigned short)2445, (unsigned short)2446, (unsigned short)2447, (unsigned short)2448, (unsigned short)2449, (unsigned short)2450, (unsigned short)2454, (unsigned short)2455, (unsigned short)2456, (unsigned short)2457, (unsigned short)2458, (unsigned short)2459, (unsigned short)2460, (unsigned short)2461, (unsigned short)2462, (unsigned short)2463, (unsigned short)2467, (unsigned short)2468, (unsigned short)2469, (unsigned short)2470, (unsigned short)2471, (unsigned short)2472, (unsigned short)2473, (unsigned short)2474, (unsigned short)2475, (unsigned short)2476, (unsigned short)2477, (unsigned short)2478, (unsigned short)2482, (unsigned short)2483, (unsigned short)2484, (unsigned short)2485, (unsigned short)2486, (unsigned short)2487, (unsigned short)2488, (unsigned short)2489, (unsigned short)2490, (unsigned short)2491, (unsigned short)2495, (unsigned short)2496, (unsigned short)2500, (unsigned short)2501, (unsigned short)2502, (unsigned short)2503, (unsigned short)2504, (unsigned short)2505, (unsigned short)2506, (unsigned short)2507, (unsigned short)2508, (unsigned short)2510, (unsigned short)2512, (unsigned short)2520, (unsigned short)2530, (unsigned short)2531, (unsigned short)2535, (unsigned short)2536, (unsigned short)2537, (unsigned short)2538, (unsigned short)2539, (unsigned short)2540, (unsigned short)2541, (unsigned short)2542, (unsigned short)2543, (unsigned short)2551, (unsigned short)2560, (unsigned short)2561, (unsigned short)2562, (unsigned short)2563, (unsigned short)2564, (unsigned short)2565, (unsigned short)2566, (unsigned short)2567, (unsigned short)2568, (unsigned short)2569, (unsigned short)2570, (unsigned short)2571, (unsigned short)2572, (unsigned short)2580, (unsigned short)2589, (unsigned short)2590, (unsigned short)2591, (unsigned short)2592, (unsigned short)2593, (unsigned short)2594, (unsigned short)2595, (unsigned short)2596, (unsigned short)2597, (unsigned short)2598, (unsigned short)2599, (unsigned short)2600, (unsigned short)2601, (unsigned short)2609, (unsigned short)2618, (unsigned short)2619, (unsigned short)2623, (unsigned short)2624, (unsigned short)2625, (unsigned short)2626, (unsigned short)2627, (unsigned short)2631, (unsigned short)2632, (unsigned short)2639, (unsigned short)2641, (unsigned short)2650, (unsigned short)2659, (unsigned short)2668, (unsigned short)2677, (unsigned short)2678, (unsigned short)2679, (unsigned short)2680, (unsigned short)2684, (unsigned short)2685, (unsigned short)2686, (unsigned short)2687, (unsigned short)2688, (unsigned short)2689, (unsigned short)2690, (unsigned short)2691, (unsigned short)2692, (unsigned short)2696, (unsigned short)2700, (unsigned short)2701, (unsigned short)2702, (unsigned short)2703, (unsigned short)2704, (unsigned short)2709, (unsigned short)2718, (unsigned short)2727, (unsigned short)2736, (unsigned short)2750, (unsigned short)2751, (unsigned short)2756, (unsigned short)2760, (unsigned short)2761, (unsigned short)2762, (unsigned short)2763, (unsigned short)2764, (unsigned short)2769, (unsigned short)2778, (unsigned short)2787, (unsigned short)2796, (unsigned short)2810, (unsigned short)2811, (unsigned short)2860, (unsigned short)2861, (unsigned short)2862, (unsigned short)2863, (unsigned short)2875, (unsigned short)2876, (unsigned short)2877, (unsigned short)2882, (unsigned short)2883, (unsigned short)2884, (unsigned short)2885, (unsigned short)2886, (unsigned short)2890, (unsigned short)2891, (unsigned short)2895, (unsigned short)2896, (unsigned short)2897, (unsigned short)2901, (unsigned short)2902, (unsigned short)2906, (unsigned short)2907, (unsigned short)2908, (unsigned short)2909, (unsigned short)2910, (unsigned short)2911, (unsigned short)2912, (unsigned short)2913, (unsigned short)2914, (unsigned short)2915, (unsigned short)2916, (unsigned short)2917, (unsigned short)2918, (unsigned short)2919, (unsigned short)2920, (unsigned short)2921, (unsigned short)2925, (unsigned short)2926, (unsigned short)2927, (unsigned short)2928, (unsigned short)2929, (unsigned short)2930, (unsigned short)2931, (unsigned short)2932, (unsigned short)2936, (unsigned short)2937, (unsigned short)2938, (unsigned short)2939, (unsigned short)2943, (unsigned short)2944, (unsigned short)2945, (unsigned short)2946, (unsigned short)2947, (unsigned short)2951, (unsigned short)2952, (unsigned short)2953, (unsigned short)2954, (unsigned short)2955, (unsigned short)2959, (unsigned short)2960, (unsigned short)2962, (unsigned short)2964, (unsigned short)2966, (unsigned short)2971, (unsigned short)2972, (unsigned short)2974, (unsigned short)2976, (unsigned short)2981, (unsigned short)2982, (unsigned short)2983, (unsigned short)2984, (unsigned short)2988, (unsigned short)2989, (unsigned short)2990, (unsigned short)2991, (unsigned short)2995, (unsigned short)2996, (unsigned short)2997, (unsigned short)2998, (unsigned short)3002, (unsigned short)3003, (unsigned short)3004, (unsigned short)3005, (unsigned short)3009, (unsigned short)3010, (unsigned short)3011, (unsigned short)3012, (unsigned short)3016, (unsigned short)3017, (unsigned short)3018, (unsigned short)3035, (unsigned short)3036, (unsigned short)3037, (unsigned short)3038, (unsigned short)3051, (unsigned short)3068, (unsigned short)3069, (unsigned short)3074, (unsigned short)3075, (unsigned short)3079, (unsigned short)3080, (unsigned short)3081, (unsigned short)3082, (unsigned short)3085, (unsigned short)3086, (unsigned short)3090, (unsigned short)3091, (unsigned short)3092, (unsigned short)3096, (unsigned short)3100, (unsigned short)3104, (unsigned short)3105, (unsigned short)3106, (unsigned short)3107, (unsigned short)3108, (unsigned short)3117, (unsigned short)3126, (unsigned short)3127, (unsigned short)3128, (unsigned short)3129, (unsigned short)3133, (unsigned short)3134, (unsigned short)3138, (unsigned short)3139, (unsigned short)3144, (unsigned short)3145, (unsigned short)3146, (unsigned short)3147, (unsigned short)3148, (unsigned short)3149, (unsigned short)3168, (unsigned short)3169, (unsigned short)3173, (unsigned short)3174, (unsigned short)3175, (unsigned short)3176, (unsigned short)3177, (unsigned short)3178, (unsigned short)3180, (unsigned short)3181, (unsigned short)3182, (unsigned short)3183, (unsigned short)3187, (unsigned short)3188, (unsigned short)3189, (unsigned short)3190, (unsigned short)3191, (unsigned short)3193, (unsigned short)3194, (unsigned short)3195, (unsigned short)3199, (unsigned short)3200, (unsigned short)3201, (unsigned short)3202, (unsigned short)3203, (unsigned short)3204, (unsigned short)3208, (unsigned short)3209, (unsigned short)3210, (unsigned short)3215, (unsigned short)3216, (unsigned short)3217, (unsigned short)3218, (unsigned short)3219, (unsigned short)3220, (unsigned short)3221, (unsigned short)3222, (unsigned short)3223, (unsigned short)3224, (unsigned short)3225, (unsigned short)3226, (unsigned short)3227, (unsigned short)3231, (unsigned short)3232, (unsigned short)3233, (unsigned short)3234, (unsigned short)3235, (unsigned short)3236, (unsigned short)3237, (unsigned short)3241, (unsigned short)3242, (unsigned short)3243, (unsigned short)3247, (unsigned short)3248, (unsigned short)3249, (unsigned short)3253, (unsigned short)3254, (unsigned short)3255, (unsigned short)3256, (unsigned short)3258, (unsigned short)3259, (unsigned short)3260, (unsigned short)3262, (unsigned short)3263, (unsigned short)3264, (unsigned short)3265, (unsigned short)3267, (unsigned short)3268, (unsigned short)3269, (unsigned short)3273, (unsigned short)3274, (unsigned short)3275, (unsigned short)3276, (unsigned short)3277, (unsigned short)3279, (unsigned short)3280, (unsigned short)3281, (unsigned short)3282, (unsigned short)3283, (unsigned short)3287, (unsigned short)3288, (unsigned short)3289, (unsigned short)3290, (unsigned short)3291, (unsigned short)3292, (unsigned short)3293, (unsigned short)3295, (unsigned short)3296, (unsigned short)3297, (unsigned short)3298, (unsigned short)3299, (unsigned short)3303, (unsigned short)3304, (unsigned short)3305, (unsigned short)3309, (unsigned short)3310, (unsigned short)3314, (unsigned short)3315, (unsigned short)3316, (unsigned short)3317, (unsigned short)3321, (unsigned short)3322, (unsigned short)3323, (unsigned short)3325, (unsigned short)3326, (unsigned short)3327, (unsigned short)3331, (unsigned short)3335, (unsigned short)3336, (unsigned short)3338, (unsigned short)3339, (unsigned short)3340, (unsigned short)3344, (unsigned short)3345, (unsigned short)3346, (unsigned short)3347, (unsigned short)3351, (unsigned short)3352, (unsigned short)3356, (unsigned short)3357, (unsigned short)3358, (unsigned short)3362, (unsigned short)3363, (unsigned short)3364, (unsigned short)3365, (unsigned short)3366, (unsigned short)3367, (unsigned short)3368, (unsigned short)3372, (unsigned short)3373, (unsigned short)3374, (unsigned short)3375, (unsigned short)3379, (unsigned short)3380, (unsigned short)3381, (unsigned short)3382, (unsigned short)3386, (unsigned short)3390, (unsigned short)3394, (unsigned short)3396, (unsigned short)3399, (unsigned short)3405, (unsigned short)3406, (unsigned short)3407, (unsigned short)3411, (unsigned short)3412, (unsigned short)3413, (unsigned short)3414, (unsigned short)3415, (unsigned short)3416, (unsigned short)3420, (unsigned short)3421, (unsigned short)3425, (unsigned short)3426, (unsigned short)3427, (unsigned short)3429, (unsigned short)3430, (unsigned short)3432, (unsigned short)3433, (unsigned short)3434, (unsigned short)3435, (unsigned short)3436, (unsigned short)3438, (unsigned short)3439, (unsigned short)3443, (unsigned short)3444, (unsigned short)3445, (unsigned short)3446, (unsigned short)3450, (unsigned short)3451, (unsigned short)3452, (unsigned short)3453, (unsigned short)3455, (unsigned short)3456, (unsigned short)3457, (unsigned short)3458, (unsigned short)3459, (unsigned short)3460, (unsigned short)3461, (unsigned short)3464, (unsigned short)3468, (unsigned short)3469, (unsigned short)3473, (unsigned short)3474, (unsigned short)3478, (unsigned short)3479, (unsigned short)3480, (unsigned short)3481, (unsigned short)3482, (unsigned short)3483, (unsigned short)3484, (unsigned short)3485, (unsigned short)3489, (unsigned short)3490, (unsigned short)3491, (unsigned short)3492, (unsigned short)3498, (unsigned short)3499, (unsigned short)3501, (unsigned short)3502, (unsigned short)3505, (unsigned short)3506, (unsigned short)3509, (unsigned short)3510, (unsigned short)3511, (unsigned short)3512, (unsigned short)3513, (unsigned short)3514, (unsigned short)3518, (unsigned short)3519, (unsigned short)3531, (unsigned short)3532, (unsigned short)3535, (unsigned short)3538, (unsigned short)3540, (unsigned short)3541, (unsigned short)3542, (unsigned short)3552, (unsigned short)3554, (unsigned short)3555, (unsigned short)3557, (unsigned short)3558, (unsigned short)3559, (unsigned short)3560, (unsigned short)3570, (unsigned short)3571, (unsigned short)3572, (unsigned short)3573, (unsigned short)3574, (unsigned short)3575, (unsigned short)3579, (unsigned short)3580, (unsigned short)3589, (unsigned short)3591, (unsigned short)3592, (unsigned short)3594, (unsigned short)3596, (unsigned short)3600, (unsigned short)3601, (unsigned short)3602, (unsigned short)3603, (unsigned short)3604, (unsigned short)3608, (unsigned short)3609, (unsigned short)3610, (unsigned short)3612, (unsigned short)3617, (unsigned short)3618, (unsigned short)3619, (unsigned short)3623, (unsigned short)3624, (unsigned short)3625, (unsigned short)3629, (unsigned short)3633, (unsigned short)3634, (unsigned short)3635, (unsigned short)3639, (unsigned short)3640, (unsigned short)3644, (unsigned short)3645, (unsigned short)3649, (unsigned short)3650, (unsigned short)3651, (unsigned short)3652, (unsigned short)3656, (unsigned short)3660, (unsigned short)3664, (unsigned short)3668
+(unsigned short)0, (unsigned short)283, (unsigned short)283, (unsigned short)302, (unsigned short)341, (unsigned short)342, (unsigned short)422, (unsigned short)426, (unsigned short)429, (unsigned short)430, (unsigned short)431, (unsigned short)470, (unsigned short)472, (unsigned short)477, (unsigned short)482, (unsigned short)487, (unsigned short)489, (unsigned short)494, (unsigned short)496, (unsigned short)501, (unsigned short)503, (unsigned short)508, (unsigned short)510, (unsigned short)512, (unsigned short)514, (unsigned short)516, (unsigned short)520, (unsigned short)524, (unsigned short)537, (unsigned short)539, (unsigned short)541, (unsigned short)543, (unsigned short)545, (unsigned short)551, (unsigned short)553, (unsigned short)558, (unsigned short)563, (unsigned short)568, (unsigned short)570, (unsigned short)572, (unsigned short)577, (unsigned short)578, (unsigned short)582, (unsigned short)583, (unsigned short)594, (unsigned short)598, (unsigned short)599, (unsigned short)601, (unsigned short)606, (unsigned short)607, (unsigned short)609, (unsigned short)612, (unsigned short)624, (unsigned short)635, (unsigned short)654, (unsigned short)656, (unsigned short)661, (unsigned short)662, (unsigned short)663, (unsigned short)664, (unsigned short)665, (unsigned short)666, (unsigned short)667, (unsigned short)668, (unsigned short)681, (unsigned short)685, (unsigned short)686, (unsigned short)687, (unsigned short)688, (unsigned short)692, (unsigned short)693, (unsigned short)694, (unsigned short)695, (unsigned short)696, (unsigned short)697, (unsigned short)698, (unsigned short)702, (unsigned short)704, (unsigned short)709, (unsigned short)711, (unsigned short)713, (unsigned short)715, (unsigned short)717, (unsigned short)747, (unsigned short)749, (unsigned short)754, (unsigned short)756, (unsigned short)758, (unsigned short)760, (unsigned short)762, (unsigned short)791, (unsigned short)793, (unsigned short)795, (unsigned short)800, (unsigned short)802, (unsigned short)807, (unsigned short)809, (unsigned short)813, (unsigned short)815, (unsigned short)817, (unsigned short)819, (unsigned short)824, (unsigned short)827, (unsigned short)830, (unsigned short)833, (unsigned short)898, (unsigned short)900, (unsigned short)905, (unsigned short)907, (unsigned short)909, (unsigned short)911, (unsigned short)913, (unsigned short)944, (unsigned short)948, (unsigned short)949, (unsigned short)950, (unsigned short)954, (unsigned short)955, (unsigned short)956, (unsigned short)960, (unsigned short)961, (unsigned short)962, (unsigned short)963, (unsigned short)967, (unsigned short)970, (unsigned short)973, (unsigned short)976, (unsigned short)979, (unsigned short)984, (unsigned short)985, (unsigned short)987, (unsigned short)989, (unsigned short)991, (unsigned short)993, (unsigned short)998, (unsigned short)1002, (unsigned short)1005, (unsigned short)1008, (unsigned short)1011, (unsigned short)1014, (unsigned short)1019, (unsigned short)1020, (unsigned short)1022, (unsigned short)1027, (unsigned short)1031, (unsigned short)1033, (unsigned short)1038, (unsigned short)1040, (unsigned short)1045, (unsigned short)1047, (unsigned short)1052, (unsigned short)1057, (unsigned short)1059, (unsigned short)1064, (unsigned short)1066, (unsigned short)1068, (unsigned short)1070, (unsigned short)1075, (unsigned short)1077, (unsigned short)1079, (unsigned short)1081, (unsigned short)1086, (unsigned short)1087, (unsigned short)1088, (unsigned short)1089, (unsigned short)1090, (unsigned short)1091, (unsigned short)1092, (unsigned short)1093, (unsigned short)1094, (unsigned short)1095, (unsigned short)1096, (unsigned short)1098, (unsigned short)1099, (unsigned short)1101, (unsigned short)1105, (unsigned short)1108, (unsigned short)1109, (unsigned short)1110, (unsigned short)1111, (unsigned short)1112, (unsigned short)1113, (unsigned short)1114, (unsigned short)1115, (unsigned short)1116, (unsigned short)1117, (unsigned short)1118, (unsigned short)1119, (unsigned short)1120, (unsigned short)1121, (unsigned short)1123, (unsigned short)1124, (unsigned short)1128, (unsigned short)1129, (unsigned short)1130, (unsigned short)1134, (unsigned short)1138, (unsigned short)1139, (unsigned short)1140, (unsigned short)1144, (unsigned short)1145, (unsigned short)1146, (unsigned short)1147, (unsigned short)1148, (unsigned short)1152, (unsigned short)1153, (unsigned short)1165, (unsigned short)1166, (unsigned short)1170, (unsigned short)1171, (unsigned short)1172, (unsigned short)1173, (unsigned short)1174, (unsigned short)1175, (unsigned short)1176, (unsigned short)1177, (unsigned short)1181, (unsigned short)1185, (unsigned short)1186, (unsigned short)1190, (unsigned short)1198, (unsigned short)1199, (unsigned short)1203, (unsigned short)1204, (unsigned short)1205, (unsigned short)1209, (unsigned short)1210, (unsigned short)1214, (unsigned short)1215, (unsigned short)1216, (unsigned short)1217, (unsigned short)1218, (unsigned short)1219, (unsigned short)1259, (unsigned short)1260, (unsigned short)1264, (unsigned short)1272, (unsigned short)1273, (unsigned short)1281, (unsigned short)1282, (unsigned short)1284, (unsigned short)1285, (unsigned short)1294, (unsigned short)1295, (unsigned short)1299, (unsigned short)1306, (unsigned short)1313, (unsigned short)1319, (unsigned short)1326, (unsigned short)1332, (unsigned short)1341, (unsigned short)1348, (unsigned short)1354, (unsigned short)1360, (unsigned short)1366, (unsigned short)1372, (unsigned short)1378, (unsigned short)1389, (unsigned short)1394, (unsigned short)1395, (unsigned short)1400, (unsigned short)1401, (unsigned short)1402, (unsigned short)1406, (unsigned short)1410, (unsigned short)1411, (unsigned short)1412, (unsigned short)1413, (unsigned short)1414, (unsigned short)1415, (unsigned short)1416, (unsigned short)1429, (unsigned short)1430, (unsigned short)1431, (unsigned short)1432, (unsigned short)1433, (unsigned short)1434, (unsigned short)1435, (unsigned short)1436, (unsigned short)1437, (unsigned short)1438, (unsigned short)1439, (unsigned short)1440, (unsigned short)1441, (unsigned short)1442, (unsigned short)1443, (unsigned short)1444, (unsigned short)1445, (unsigned short)1446, (unsigned short)1447, (unsigned short)1448, (unsigned short)1449, (unsigned short)1450, (unsigned short)1451, (unsigned short)1452, (unsigned short)1454, (unsigned short)1455, (unsigned short)1456, (unsigned short)1457, (unsigned short)1458, (unsigned short)1460, (unsigned short)1461, (unsigned short)1465, (unsigned short)1469, (unsigned short)1473, (unsigned short)1474, (unsigned short)1478, (unsigned short)1480, (unsigned short)1481, (unsigned short)1482, (unsigned short)1483, (unsigned short)1484, (unsigned short)1485, (unsigned short)1486, (unsigned short)1487, (unsigned short)1488, (unsigned short)1490, (unsigned short)1491, (unsigned short)1492, (unsigned short)1493, (unsigned short)1494, (unsigned short)1495, (unsigned short)1496, (unsigned short)1497, (unsigned short)1524, (unsigned short)1525, (unsigned short)1526, (unsigned short)1527, (unsigned short)1531, (unsigned short)1532, (unsigned short)1533, (unsigned short)1534, (unsigned short)1535, (unsigned short)1539, (unsigned short)1540, (unsigned short)1541, (unsigned short)1542, (unsigned short)1544, (unsigned short)1545, (unsigned short)1546, (unsigned short)1547, (unsigned short)1550, (unsigned short)1551, (unsigned short)1555, (unsigned short)1556, (unsigned short)1565, (unsigned short)1566, (unsigned short)1567, (unsigned short)1568, (unsigned short)1569, (unsigned short)1570, (unsigned short)1571, (unsigned short)1572, (unsigned short)1576, (unsigned short)1577, (unsigned short)1581, (unsigned short)1582, (unsigned short)1583, (unsigned short)1584, (unsigned short)1585, (unsigned short)1586, (unsigned short)1587, (unsigned short)1591, (unsigned short)1592, (unsigned short)1593, (unsigned short)1594, (unsigned short)1595, (unsigned short)1599, (unsigned short)1600, (unsigned short)1601, (unsigned short)1602, (unsigned short)1603, (unsigned short)1607, (unsigned short)1615, (unsigned short)1616, (unsigned short)1617, (unsigned short)1618, (unsigned short)1619, (unsigned short)1620, (unsigned short)1621, (unsigned short)1622, (unsigned short)1623, (unsigned short)1627, (unsigned short)1628, (unsigned short)1629, (unsigned short)1630, (unsigned short)1631, (unsigned short)1633, (unsigned short)1634, (unsigned short)1635, (unsigned short)1636, (unsigned short)1640, (unsigned short)1641, (unsigned short)1642, (unsigned short)1644, (unsigned short)1645, (unsigned short)1649, (unsigned short)1650, (unsigned short)1651, (unsigned short)1653, (unsigned short)1654, (unsigned short)1658, (unsigned short)1659, (unsigned short)1660, (unsigned short)1662, (unsigned short)1663, (unsigned short)1667, (unsigned short)1668, (unsigned short)1669, (unsigned short)1673, (unsigned short)1674, (unsigned short)1675, (unsigned short)1679, (unsigned short)1680, (unsigned short)1681, (unsigned short)1682, (unsigned short)1683, (unsigned short)1685, (unsigned short)1686, (unsigned short)1687, (unsigned short)1688, (unsigned short)1690, (unsigned short)1691, (unsigned short)1692, (unsigned short)1693, (unsigned short)1695, (unsigned short)1696, (unsigned short)1697, (unsigned short)1698, (unsigned short)1702, (unsigned short)1703, (unsigned short)1704, (unsigned short)1705, (unsigned short)1706, (unsigned short)1708, (unsigned short)1709, (unsigned short)1710, (unsigned short)1711, (unsigned short)1715, (unsigned short)1716, (unsigned short)1717, (unsigned short)1718, (unsigned short)1719, (unsigned short)1720, (unsigned short)1721, (unsigned short)1722, (unsigned short)1723, (unsigned short)1724, (unsigned short)1725, (unsigned short)1729, (unsigned short)1730, (unsigned short)1731, (unsigned short)1732, (unsigned short)1736, (unsigned short)1737, (unsigned short)1738, (unsigned short)1742, (unsigned short)1743, (unsigned short)1744, (unsigned short)1745, (unsigned short)1747, (unsigned short)1748, (unsigned short)1750, (unsigned short)1751, (unsigned short)1756, (unsigned short)1758, (unsigned short)1763, (unsigned short)1791, (unsigned short)1792, (unsigned short)1793, (unsigned short)1794, (unsigned short)1796, (unsigned short)1797, (unsigned short)1798, (unsigned short)1799, (unsigned short)1801, (unsigned short)1802, (unsigned short)1806, (unsigned short)1807, (unsigned short)1816, (unsigned short)1817, (unsigned short)1821, (unsigned short)1822, (unsigned short)1823, (unsigned short)1824, (unsigned short)1825, (unsigned short)1826, (unsigned short)1827, (unsigned short)1831, (unsigned short)1832, (unsigned short)1836, (unsigned short)1840, (unsigned short)1844, (unsigned short)1851, (unsigned short)1852, (unsigned short)1853, (unsigned short)1854, (unsigned short)1855, (unsigned short)1859, (unsigned short)1860, (unsigned short)1903, (unsigned short)1904, (unsigned short)1905, (unsigned short)1906, (unsigned short)1907, (unsigned short)1908, (unsigned short)1909, (unsigned short)1913, (unsigned short)1914, (unsigned short)1915, (unsigned short)1916, (unsigned short)1917, (unsigned short)1924, (unsigned short)1925, (unsigned short)1926, (unsigned short)1927, (unsigned short)1931, (unsigned short)1932, (unsigned short)1933, (unsigned short)1935, (unsigned short)1936, (unsigned short)1940, (unsigned short)1941, (unsigned short)1942, (unsigned short)1944, (unsigned short)1945, (unsigned short)1949, (unsigned short)1950, (unsigned short)1951, (unsigned short)1953, (unsigned short)1954, (unsigned short)1958, (unsigned short)1959, (unsigned short)1960, (unsigned short)1964, (unsigned short)1965, (unsigned short)1966, (unsigned short)1970, (unsigned short)1971, (unsigned short)1972, (unsigned short)1973, (unsigned short)1974, (unsigned short)1975, (unsigned short)1976, (unsigned short)1977, (unsigned short)1978, (unsigned short)1980, (unsigned short)1981, (unsigned short)1982, (unsigned short)1983, (unsigned short)1984, (unsigned short)1985, (unsigned short)1986, (unsigned short)1987, (unsigned short)1989, (unsigned short)1990, (unsigned short)1991, (unsigned short)1992, (unsigned short)1994, (unsigned short)1995, (unsigned short)1996, (unsigned short)1997, (unsigned short)1999, (unsigned short)2007, (unsigned short)2011, (unsigned short)2016, (unsigned short)2023, (unsigned short)2024, (unsigned short)2028, (unsigned short)2033, (unsigned short)2034, (unsigned short)2038, (unsigned short)2039, (unsigned short)2040, (unsigned short)2041, (unsigned short)2047, (unsigned short)2048, (unsigned short)2049, (unsigned short)2053, (unsigned short)2054, (unsigned short)2055, (unsigned short)2056, (unsigned short)2060, (unsigned short)2062, (unsigned short)2066, (unsigned short)2067, (unsigned short)2068, (unsigned short)2069, (unsigned short)2070, (unsigned short)2071, (unsigned short)2072, (unsigned short)2076, (unsigned short)2077, (unsigned short)2078, (unsigned short)2079, (unsigned short)2080, (unsigned short)2081, (unsigned short)2082, (unsigned short)2086, (unsigned short)2087, (unsigned short)2088, (unsigned short)2092, (unsigned short)2093, (unsigned short)2094, (unsigned short)2098, (unsigned short)2102, (unsigned short)2103, (unsigned short)2107, (unsigned short)2108, (unsigned short)2109, (unsigned short)2113, (unsigned short)2114, (unsigned short)2116, (unsigned short)2117, (unsigned short)2118, (unsigned short)2119, (unsigned short)2120, (unsigned short)2122, (unsigned short)2123, (unsigned short)2124, (unsigned short)2125, (unsigned short)2126, (unsigned short)2128, (unsigned short)2129, (unsigned short)2133, (unsigned short)2134, (unsigned short)2138, (unsigned short)2139, (unsigned short)2140, (unsigned short)2144, (unsigned short)2145, (unsigned short)2146, (unsigned short)2147, (unsigned short)2148, (unsigned short)2149, (unsigned short)2150, (unsigned short)2151, (unsigned short)2152, (unsigned short)2154, (unsigned short)2155, (unsigned short)2157, (unsigned short)2158, (unsigned short)2159, (unsigned short)2160, (unsigned short)2161, (unsigned short)2163, (unsigned short)2164, (unsigned short)2165, (unsigned short)2166, (unsigned short)2170, (unsigned short)2171, (unsigned short)2175, (unsigned short)2176, (unsigned short)2180, (unsigned short)2184, (unsigned short)2185, (unsigned short)2186, (unsigned short)2191, (unsigned short)2192, (unsigned short)2196, (unsigned short)2197, (unsigned short)2198, (unsigned short)2199, (unsigned short)2200, (unsigned short)2201, (unsigned short)2202, (unsigned short)2203, (unsigned short)2204, (unsigned short)2205, (unsigned short)2206, (unsigned short)2207, (unsigned short)2208, (unsigned short)2209, (unsigned short)2210, (unsigned short)2211, (unsigned short)2212, (unsigned short)2213, (unsigned short)2214, (unsigned short)2215, (unsigned short)2216, (unsigned short)2217, (unsigned short)2218, (unsigned short)2219, (unsigned short)2220, (unsigned short)2221, (unsigned short)2225, (unsigned short)2226, (unsigned short)2227, (unsigned short)2228, (unsigned short)2229, (unsigned short)2230, (unsigned short)2231, (unsigned short)2232, (unsigned short)2233, (unsigned short)2234, (unsigned short)2235, (unsigned short)2236, (unsigned short)2237, (unsigned short)2238, (unsigned short)2239, (unsigned short)2240, (unsigned short)2241, (unsigned short)2242, (unsigned short)2243, (unsigned short)2244, (unsigned short)2245, (unsigned short)2246, (unsigned short)2247, (unsigned short)2248, (unsigned short)2254, (unsigned short)2256, (unsigned short)2258, (unsigned short)2260, (unsigned short)2262, (unsigned short)2264, (unsigned short)2266, (unsigned short)2268, (unsigned short)2270, (unsigned short)2272, (unsigned short)2277, (unsigned short)2278, (unsigned short)2282, (unsigned short)2288, (unsigned short)2294, (unsigned short)2301, (unsigned short)2311, (unsigned short)2312, (unsigned short)2313, (unsigned short)2314, (unsigned short)2318, (unsigned short)2319, (unsigned short)2320, (unsigned short)2322, (unsigned short)2323, (unsigned short)2324, (unsigned short)2326, (unsigned short)2327, (unsigned short)2328, (unsigned short)2332, (unsigned short)2336, (unsigned short)2344, (unsigned short)2353, (unsigned short)2362, (unsigned short)2363, (unsigned short)2365, (unsigned short)2366, (unsigned short)2370, (unsigned short)2377, (unsigned short)2384, (unsigned short)2387, (unsigned short)2400, (unsigned short)2414, (unsigned short)2417, (unsigned short)2419, (unsigned short)2421, (unsigned short)2426, (unsigned short)2427, (unsigned short)2431, (unsigned short)2432, (unsigned short)2433, (unsigned short)2434, (unsigned short)2435, (unsigned short)2436, (unsigned short)2437, (unsigned short)2438, (unsigned short)2442, (unsigned short)2443, (unsigned short)2444, (unsigned short)2445, (unsigned short)2446, (unsigned short)2447, (unsigned short)2448, (unsigned short)2449, (unsigned short)2450, (unsigned short)2451, (unsigned short)2455, (unsigned short)2456, (unsigned short)2457, (unsigned short)2458, (unsigned short)2459, (unsigned short)2460, (unsigned short)2461, (unsigned short)2462, (unsigned short)2463, (unsigned short)2464, (unsigned short)2468, (unsigned short)2469, (unsigned short)2470, (unsigned short)2471, (unsigned short)2472, (unsigned short)2473, (unsigned short)2474, (unsigned short)2475, (unsigned short)2476, (unsigned short)2477, (unsigned short)2478, (unsigned short)2479, (unsigned short)2483, (unsigned short)2484, (unsigned short)2485, (unsigned short)2486, (unsigned short)2487, (unsigned short)2488, (unsigned short)2489, (unsigned short)2490, (unsigned short)2491, (unsigned short)2492, (unsigned short)2496, (unsigned short)2497, (unsigned short)2501, (unsigned short)2502, (unsigned short)2503, (unsigned short)2504, (unsigned short)2505, (unsigned short)2506, (unsigned short)2507, (unsigned short)2508, (unsigned short)2509, (unsigned short)2511, (unsigned short)2513, (unsigned short)2521, (unsigned short)2531, (unsigned short)2532, (unsigned short)2536, (unsigned short)2537, (unsigned short)2538, (unsigned short)2539, (unsigned short)2540, (unsigned short)2541, (unsigned short)2542, (unsigned short)2543, (unsigned short)2544, (unsigned short)2552, (unsigned short)2561, (unsigned short)2562, (unsigned short)2563, (unsigned short)2564, (unsigned short)2565, (unsigned short)2566, (unsigned short)2567, (unsigned short)2568, (unsigned short)2569, (unsigned short)2570, (unsigned short)2571, (unsigned short)2572, (unsigned short)2573, (unsigned short)2581, (unsigned short)2590, (unsigned short)2591, (unsigned short)2592, (unsigned short)2593, (unsigned short)2594, (unsigned short)2595, (unsigned short)2596, (unsigned short)2597, (unsigned short)2598, (unsigned short)2599, (unsigned short)2600, (unsigned short)2601, (unsigned short)2602, (unsigned short)2610, (unsigned short)2619, (unsigned short)2620, (unsigned short)2624, (unsigned short)2625, (unsigned short)2626, (unsigned short)2627, (unsigned short)2628, (unsigned short)2632, (unsigned short)2633, (unsigned short)2640, (unsigned short)2642, (unsigned short)2651, (unsigned short)2660, (unsigned short)2669, (unsigned short)2678, (unsigned short)2679, (unsigned short)2680, (unsigned short)2681, (unsigned short)2685, (unsigned short)2686, (unsigned short)2687, (unsigned short)2688, (unsigned short)2689, (unsigned short)2690, (unsigned short)2691, (unsigned short)2692, (unsigned short)2693, (unsigned short)2697, (unsigned short)2701, (unsigned short)2702, (unsigned short)2703, (unsigned short)2704, (unsigned short)2705, (unsigned short)2710, (unsigned short)2719, (unsigned short)2728, (unsigned short)2737, (unsigned short)2751, (unsigned short)2752, (unsigned short)2757, (unsigned short)2761, (unsigned short)2762, (unsigned short)2763, (unsigned short)2764, (unsigned short)2765, (unsigned short)2770, (unsigned short)2779, (unsigned short)2788, (unsigned short)2797, (unsigned short)2811, (unsigned short)2812, (unsigned short)2861, (unsigned short)2862, (unsigned short)2863, (unsigned short)2864, (unsigned short)2876, (unsigned short)2877, (unsigned short)2878, (unsigned short)2883, (unsigned short)2884, (unsigned short)2885, (unsigned short)2886, (unsigned short)2887, (unsigned short)2891, (unsigned short)2892, (unsigned short)2896, (unsigned short)2897, (unsigned short)2898, (unsigned short)2902, (unsigned short)2903, (unsigned short)2907, (unsigned short)2908, (unsigned short)2909, (unsigned short)2910, (unsigned short)2911, (unsigned short)2912, (unsigned short)2913, (unsigned short)2914, (unsigned short)2915, (unsigned short)2916, (unsigned short)2917, (unsigned short)2918, (unsigned short)2919, (unsigned short)2920, (unsigned short)2921, (unsigned short)2922, (unsigned short)2926, (unsigned short)2927, (unsigned short)2928, (unsigned short)2929, (unsigned short)2930, (unsigned short)2931, (unsigned short)2932, (unsigned short)2933, (unsigned short)2937, (unsigned short)2938, (unsigned short)2939, (unsigned short)2940, (unsigned short)2944, (unsigned short)2945, (unsigned short)2946, (unsigned short)2947, (unsigned short)2948, (unsigned short)2952, (unsigned short)2953, (unsigned short)2954, (unsigned short)2955, (unsigned short)2956, (unsigned short)2960, (unsigned short)2961, (unsigned short)2963, (unsigned short)2965, (unsigned short)2967, (unsigned short)2972, (unsigned short)2973, (unsigned short)2975, (unsigned short)2977, (unsigned short)2982, (unsigned short)2983, (unsigned short)2984, (unsigned short)2985, (unsigned short)2989, (unsigned short)2990, (unsigned short)2991, (unsigned short)2992, (unsigned short)2996, (unsigned short)2997, (unsigned short)2998, (unsigned short)2999, (unsigned short)3003, (unsigned short)3004, (unsigned short)3005, (unsigned short)3006, (unsigned short)3010, (unsigned short)3011, (unsigned short)3012, (unsigned short)3013, (unsigned short)3017, (unsigned short)3018, (unsigned short)3019, (unsigned short)3036, (unsigned short)3037, (unsigned short)3038, (unsigned short)3039, (unsigned short)3052, (unsigned short)3069, (unsigned short)3070, (unsigned short)3075, (unsigned short)3076, (unsigned short)3080, (unsigned short)3081, (unsigned short)3082, (unsigned short)3083, (unsigned short)3086, (unsigned short)3087, (unsigned short)3091, (unsigned short)3092, (unsigned short)3093, (unsigned short)3097, (unsigned short)3101, (unsigned short)3105, (unsigned short)3106, (unsigned short)3107, (unsigned short)3108, (unsigned short)3109, (unsigned short)3118, (unsigned short)3127, (unsigned short)3128, (unsigned short)3129, (unsigned short)3130, (unsigned short)3134, (unsigned short)3135, (unsigned short)3139, (unsigned short)3140, (unsigned short)3145, (unsigned short)3146, (unsigned short)3147, (unsigned short)3148, (unsigned short)3149, (unsigned short)3150, (unsigned short)3169, (unsigned short)3170, (unsigned short)3174, (unsigned short)3175, (unsigned short)3176, (unsigned short)3177, (unsigned short)3178, (unsigned short)3179, (unsigned short)3181, (unsigned short)3182, (unsigned short)3183, (unsigned short)3184, (unsigned short)3188, (unsigned short)3189, (unsigned short)3190, (unsigned short)3191, (unsigned short)3192, (unsigned short)3194, (unsigned short)3195, (unsigned short)3196, (unsigned short)3200, (unsigned short)3201, (unsigned short)3202, (unsigned short)3203, (unsigned short)3204, (unsigned short)3205, (unsigned short)3209, (unsigned short)3210, (unsigned short)3211, (unsigned short)3216, (unsigned short)3217, (unsigned short)3218, (unsigned short)3219, (unsigned short)3220, (unsigned short)3221, (unsigned short)3222, (unsigned short)3223, (unsigned short)3224, (unsigned short)3225, (unsigned short)3226, (unsigned short)3227, (unsigned short)3228, (unsigned short)3232, (unsigned short)3233, (unsigned short)3234, (unsigned short)3235, (unsigned short)3236, (unsigned short)3237, (unsigned short)3238, (unsigned short)3242, (unsigned short)3243, (unsigned short)3244, (unsigned short)3248, (unsigned short)3249, (unsigned short)3250, (unsigned short)3254, (unsigned short)3255, (unsigned short)3256, (unsigned short)3257, (unsigned short)3259, (unsigned short)3260, (unsigned short)3261, (unsigned short)3263, (unsigned short)3264, (unsigned short)3265, (unsigned short)3266, (unsigned short)3268, (unsigned short)3269, (unsigned short)3270, (unsigned short)3274, (unsigned short)3275, (unsigned short)3276, (unsigned short)3277, (unsigned short)3278, (unsigned short)3280, (unsigned short)3281, (unsigned short)3282, (unsigned short)3283, (unsigned short)3284, (unsigned short)3288, (unsigned short)3289, (unsigned short)3290, (unsigned short)3291, (unsigned short)3292, (unsigned short)3293, (unsigned short)3294, (unsigned short)3296, (unsigned short)3297, (unsigned short)3298, (unsigned short)3299, (unsigned short)3300, (unsigned short)3304, (unsigned short)3305, (unsigned short)3306, (unsigned short)3310, (unsigned short)3311, (unsigned short)3315, (unsigned short)3316, (unsigned short)3317, (unsigned short)3318, (unsigned short)3322, (unsigned short)3323, (unsigned short)3324, (unsigned short)3326, (unsigned short)3327, (unsigned short)3328, (unsigned short)3332, (unsigned short)3336, (unsigned short)3337, (unsigned short)3339, (unsigned short)3340, (unsigned short)3341, (unsigned short)3345, (unsigned short)3346, (unsigned short)3347, (unsigned short)3348, (unsigned short)3352, (unsigned short)3353, (unsigned short)3357, (unsigned short)3358, (unsigned short)3359, (unsigned short)3363, (unsigned short)3364, (unsigned short)3365, (unsigned short)3366, (unsigned short)3367, (unsigned short)3368, (unsigned short)3369, (unsigned short)3373, (unsigned short)3374, (unsigned short)3375, (unsigned short)3376, (unsigned short)3380, (unsigned short)3381, (unsigned short)3382, (unsigned short)3383, (unsigned short)3387, (unsigned short)3391, (unsigned short)3395, (unsigned short)3397, (unsigned short)3400, (unsigned short)3406, (unsigned short)3407, (unsigned short)3408, (unsigned short)3412, (unsigned short)3413, (unsigned short)3414, (unsigned short)3415, (unsigned short)3416, (unsigned short)3417, (unsigned short)3421, (unsigned short)3422, (unsigned short)3426, (unsigned short)3427, (unsigned short)3428, (unsigned short)3430, (unsigned short)3431, (unsigned short)3433, (unsigned short)3434, (unsigned short)3435, (unsigned short)3436, (unsigned short)3437, (unsigned short)3439, (unsigned short)3440, (unsigned short)3444, (unsigned short)3445, (unsigned short)3446, (unsigned short)3447, (unsigned short)3451, (unsigned short)3452, (unsigned short)3453, (unsigned short)3454, (unsigned short)3456, (unsigned short)3457, (unsigned short)3458, (unsigned short)3459, (unsigned short)3460, (unsigned short)3461, (unsigned short)3462, (unsigned short)3465, (unsigned short)3469, (unsigned short)3470, (unsigned short)3474, (unsigned short)3475, (unsigned short)3479, (unsigned short)3480, (unsigned short)3481, (unsigned short)3482, (unsigned short)3483, (unsigned short)3484, (unsigned short)3485, (unsigned short)3486, (unsigned short)3490, (unsigned short)3491, (unsigned short)3492, (unsigned short)3493, (unsigned short)3499, (unsigned short)3500, (unsigned short)3502, (unsigned short)3503, (unsigned short)3506, (unsigned short)3507, (unsigned short)3510, (unsigned short)3511, (unsigned short)3512, (unsigned short)3513, (unsigned short)3514, (unsigned short)3515, (unsigned short)3519, (unsigned short)3520, (unsigned short)3532, (unsigned short)3533, (unsigned short)3536, (unsigned short)3539, (unsigned short)3541, (unsigned short)3542, (unsigned short)3543, (unsigned short)3553, (unsigned short)3555, (unsigned short)3556, (unsigned short)3558, (unsigned short)3559, (unsigned short)3560, (unsigned short)3561, (unsigned short)3571, (unsigned short)3572, (unsigned short)3573, (unsigned short)3574, (unsigned short)3575, (unsigned short)3576, (unsigned short)3580, (unsigned short)3581, (unsigned short)3590, (unsigned short)3592, (unsigned short)3593, (unsigned short)3595, (unsigned short)3597, (unsigned short)3601, (unsigned short)3602, (unsigned short)3603, (unsigned short)3604, (unsigned short)3605, (unsigned short)3609, (unsigned short)3610, (unsigned short)3611, (unsigned short)3613, (unsigned short)3618, (unsigned short)3619, (unsigned short)3620, (unsigned short)3624, (unsigned short)3625, (unsigned short)3626, (unsigned short)3630, (unsigned short)3634, (unsigned short)3635, (unsigned short)3636, (unsigned short)3640, (unsigned short)3641, (unsigned short)3645, (unsigned short)3646, (unsigned short)3650, (unsigned short)3651, (unsigned short)3652, (unsigned short)3653, (unsigned short)3657, (unsigned short)3661, (unsigned short)3665, (unsigned short)3669
 };
 
 static const char * const yytname[] =
@@ -144,6 +153,8 @@ void * calloc(size_t nmemb, size_t size);
 
 void free(void * ptr);
 
+void * malloc(size_t size);
+
 void * realloc(void * ptr, size_t size);
 
 long int strtol(const char * nptr, char ** endptr, int base);
@@ -2954,7 +2965,7 @@ struct Location yylsa[200];
 struct Location * yyls;
 struct Location * yylsp;
 struct Location yyerror_range[2];
-unsigned int yystacksize;
+size_t yystacksize;
 int yyn;
 int yyresult;
 int yytoken;
@@ -2986,7 +2997,7 @@ yysetstate:
 *yyssp = yystate;
 if(yyss + yystacksize - 1 <= yyssp)
 {
-unsigned int yysize = yyssp - yyss + 1;
+size_t yysize = yyssp - yyss + 1;
 
 if(10000 <= yystacksize)
 goto yyexhaustedlab;
@@ -3001,7 +3012,7 @@ if(!yyptr)
 goto yyexhaustedlab;
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyss_alloc, yyss, (yysize) * sizeof (*(yyss)));
 yyss = &(*yyptr).yyss_alloc;
@@ -3010,7 +3021,7 @@ yyptr += yynewbytes / sizeof (*yyptr);
 }while((0));
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyvs_alloc, yyvs, (yysize) * sizeof (*(yyvs)));
 yyvs = &(*yyptr).yyvs_alloc;
@@ -3019,7 +3030,7 @@ yyptr += yynewbytes / sizeof (*yyptr);
 }while((0));
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyls_alloc, yyls, (yysize) * sizeof (*(yyls)));
 yyls = &(*yyptr).yyls_alloc;
index 24580ba..c5be560 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 void exit(int status);
index 94459de..cc2e7dd 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 extern int yychar;
index 48e9cea..f59fedb 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
@@ -3226,7 +3235,7 @@ void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ece
 {
 struct External * external;
 
-outputLine = 38;
+outputLine = 47;
 for(external = ast->first; external; external = external->next)
 {
 switch(external->type)
index 9779e55..d8611d4 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
index 814947b..feef8b1 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
index 2d3edd0..5da396b 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
index 2ea8ea5..2ccdb42 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
index 3e7eb03..0860d08 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
index 524f539..3824fb7 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
@@ -1776,10 +1785,7 @@ spec->__anon1.__anon1.extDecl->__anon1.s = __ecereNameSpace__ecere__sys__CopyStr
 else if(!strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "stdcall") || !strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "_stdcall") || !strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "__stdcall") || !strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "__stdcall__"))
 {
 (__ecereNameSpace__ecere__com__eSystem_Delete(spec->__anon1.__anon1.extDecl->__anon1.s), spec->__anon1.__anon1.extDecl->__anon1.s = 0);
-if(targetPlatform == 1)
-spec->__anon1.__anon1.extDecl->__anon1.s = __ecereNameSpace__ecere__sys__CopyString("__attribute__((__stdcall__))");
-else
-spec->__anon1.__anon1.extDecl->__anon1.s = __ecereNameSpace__ecere__sys__CopyString("");
+spec->__anon1.__anon1.extDecl->__anon1.s = __ecereNameSpace__ecere__sys__CopyString("stdcall");
 }
 }
 break;
@@ -1859,10 +1865,7 @@ decl->__anon1.extended.extended->__anon1.s = __ecereNameSpace__ecere__sys__CopyS
 else if(decl->__anon1.extended.extended->type == 0 && decl->__anon1.extended.extended->__anon1.s && (!strcmp(decl->__anon1.extended.extended->__anon1.s, "stdcall") || !strcmp(decl->__anon1.extended.extended->__anon1.s, "_stdcall") || !strcmp(decl->__anon1.extended.extended->__anon1.s, "__stdcall") || !strcmp(decl->__anon1.extended.extended->__anon1.s, "__stdcall__")))
 {
 (__ecereNameSpace__ecere__com__eSystem_Delete(decl->__anon1.extended.extended->__anon1.s), decl->__anon1.extended.extended->__anon1.s = 0);
-if(targetPlatform == 1)
-decl->__anon1.extended.extended->__anon1.s = __ecereNameSpace__ecere__sys__CopyString("__attribute__((__stdcall__))");
-else
-decl->__anon1.extended.extended->__anon1.s = __ecereNameSpace__ecere__sys__CopyString("");
+decl->__anon1.extended.extended->__anon1.s = __ecereNameSpace__ecere__sys__CopyString("stdcall");
 }
 }
 if(decl->declarator)
index 88d72f0..60c5f1e 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 unsigned int parsingType;
index 1accd71..bc55fb8 100644 (file)
@@ -35,6 +35,15 @@ typedef unsigned __int64 uint64;
 #else
 #define __ENDIAN_PAD(x) 0
 #endif
+#if defined(_WIN32)
+#   if defined(__GNUC__) || defined(__TINYC__)
+#      define stdcall __attribute__((__stdcall__))
+#   else
+#      define stdcall __stdcall
+#   endif
+#else
+#   define stdcall
+#endif
 #include <stdint.h>
 #include <sys/types.h>
 enum yytokentype
@@ -58,7 +67,7 @@ typedef unsigned short int yytype_uint16;
 
 typedef short int yytype_int16;
 
-void * malloc(size_t size);
+void * malloc(size_t);
 
 void free(void *);
 
@@ -79,7 +88,7 @@ static const yytype_int16 yyrhs[] =
 
 static const yytype_uint16 yyrline[] =
 {
-(unsigned short)0, (unsigned short)229, (unsigned short)229, (unsigned short)247, (unsigned short)271, (unsigned short)311, (unsigned short)312, (unsigned short)339, (unsigned short)343, (unsigned short)344, (unsigned short)345, (unsigned short)362, (unsigned short)364, (unsigned short)369, (unsigned short)374, (unsigned short)379, (unsigned short)381, (unsigned short)386, (unsigned short)391, (unsigned short)392, (unsigned short)397, (unsigned short)399, (unsigned short)401, (unsigned short)403, (unsigned short)404, (unsigned short)406, (unsigned short)407, (unsigned short)408, (unsigned short)411, (unsigned short)412, (unsigned short)413, (unsigned short)414, (unsigned short)415, (unsigned short)416, (unsigned short)417, (unsigned short)418, (unsigned short)419, (unsigned short)423, (unsigned short)424, (unsigned short)425, (unsigned short)426, (unsigned short)427, (unsigned short)428, (unsigned short)441, (unsigned short)442, (unsigned short)443, (unsigned short)447, (unsigned short)476, (unsigned short)477, (unsigned short)478, (unsigned short)479, (unsigned short)483, (unsigned short)484, (unsigned short)485, (unsigned short)487, (unsigned short)488, (unsigned short)490, (unsigned short)491, (unsigned short)495, (unsigned short)496, (unsigned short)505, (unsigned short)506, (unsigned short)507, (unsigned short)508, (unsigned short)509, (unsigned short)510, (unsigned short)511, (unsigned short)515, (unsigned short)516, (unsigned short)520, (unsigned short)521, (unsigned short)522, (unsigned short)523, (unsigned short)527, (unsigned short)528, (unsigned short)529, (unsigned short)533, (unsigned short)534, (unsigned short)535, (unsigned short)539, (unsigned short)547, (unsigned short)548, (unsigned short)549, (unsigned short)550, (unsigned short)551, (unsigned short)555, (unsigned short)556, (unsigned short)557, (unsigned short)561, (unsigned short)562, (unsigned short)566, (unsigned short)567, (unsigned short)571, (unsigned short)572, (unsigned short)576, (unsigned short)577, (unsigned short)581, (unsigned short)582, (unsigned short)586, (unsigned short)587, (unsigned short)591, (unsigned short)592, (unsigned short)593, (unsigned short)597, (unsigned short)598, (unsigned short)599, (unsigned short)600, (unsigned short)601, (unsigned short)602, (unsigned short)603, (unsigned short)604, (unsigned short)605, (unsigned short)606, (unsigned short)607, (unsigned short)611, (unsigned short)612, (unsigned short)616, (unsigned short)620, (unsigned short)621, (unsigned short)622, (unsigned short)623, (unsigned short)627, (unsigned short)628, (unsigned short)629, (unsigned short)630, (unsigned short)631, (unsigned short)632, (unsigned short)633, (unsigned short)634, (unsigned short)638, (unsigned short)639, (unsigned short)640, (unsigned short)641, (unsigned short)642, (unsigned short)643, (unsigned short)644, (unsigned short)645, (unsigned short)646, (unsigned short)647, (unsigned short)651, (unsigned short)652, (unsigned short)653, (unsigned short)654, (unsigned short)655, (unsigned short)656, (unsigned short)657, (unsigned short)658, (unsigned short)659, (unsigned short)660, (unsigned short)664, (unsigned short)665, (unsigned short)666, (unsigned short)667, (unsigned short)668, (unsigned short)669, (unsigned short)670, (unsigned short)671, (unsigned short)672, (unsigned short)673, (unsigned short)674, (unsigned short)675, (unsigned short)679, (unsigned short)680, (unsigned short)684, (unsigned short)685, (unsigned short)686, (unsigned short)687, (unsigned short)688, (unsigned short)689, (unsigned short)690, (unsigned short)691, (unsigned short)692, (unsigned short)700, (unsigned short)709, (unsigned short)710, (unsigned short)711, (unsigned short)712, (unsigned short)713, (unsigned short)714, (unsigned short)715, (unsigned short)716, (unsigned short)717, (unsigned short)718, (unsigned short)719, (unsigned short)720, (unsigned short)721, (unsigned short)729, (unsigned short)738, (unsigned short)739, (unsigned short)743, (unsigned short)744, (unsigned short)748, (unsigned short)749, (unsigned short)750, (unsigned short)751, (unsigned short)752, (unsigned short)753, (unsigned short)757, (unsigned short)758, (unsigned short)759, (unsigned short)763, (unsigned short)764, (unsigned short)765, (unsigned short)770, (unsigned short)771, (unsigned short)772, (unsigned short)773, (unsigned short)774, (unsigned short)778, (unsigned short)779, (unsigned short)783, (unsigned short)784, (unsigned short)785, (unsigned short)789, (unsigned short)790, (unsigned short)794, (unsigned short)798, (unsigned short)799, (unsigned short)800, (unsigned short)805, (unsigned short)806, (unsigned short)807, (unsigned short)808, (unsigned short)809, (unsigned short)810, (unsigned short)811, (unsigned short)812, (unsigned short)813, (unsigned short)814, (unsigned short)815, (unsigned short)816, (unsigned short)817, (unsigned short)818, (unsigned short)819, (unsigned short)820, (unsigned short)821, (unsigned short)822, (unsigned short)823, (unsigned short)824, (unsigned short)825, (unsigned short)826, (unsigned short)827, (unsigned short)828, (unsigned short)832, (unsigned short)833, (unsigned short)834, (unsigned short)835, (unsigned short)836, (unsigned short)837, (unsigned short)838, (unsigned short)839, (unsigned short)840, (unsigned short)841, (unsigned short)842, (unsigned short)843, (unsigned short)844, (unsigned short)845, (unsigned short)846, (unsigned short)847, (unsigned short)848, (unsigned short)849, (unsigned short)850, (unsigned short)851, (unsigned short)852, (unsigned short)853, (unsigned short)858, (unsigned short)859, (unsigned short)860, (unsigned short)861, (unsigned short)862, (unsigned short)865, (unsigned short)866, (unsigned short)867, (unsigned short)868, (unsigned short)869, (unsigned short)874, (unsigned short)875, (unsigned short)878, (unsigned short)880, (unsigned short)885, (unsigned short)886, (unsigned short)891, (unsigned short)892, (unsigned short)903, (unsigned short)907, (unsigned short)909, (unsigned short)910, (unsigned short)912, (unsigned short)913, (unsigned short)937, (unsigned short)952, (unsigned short)953, (unsigned short)957, (unsigned short)958, (unsigned short)962, (unsigned short)963, (unsigned short)967, (unsigned short)971, (unsigned short)972, (unsigned short)976, (unsigned short)978, (unsigned short)980, (unsigned short)982, (unsigned short)984, (unsigned short)987, (unsigned short)989, (unsigned short)991, (unsigned short)993, (unsigned short)995, (unsigned short)998, (unsigned short)1000, (unsigned short)1002, (unsigned short)1004, (unsigned short)1006, (unsigned short)1009, (unsigned short)1011, (unsigned short)1013, (unsigned short)1015, (unsigned short)1017, (unsigned short)1022, (unsigned short)1023, (unsigned short)1024, (unsigned short)1025, (unsigned short)1026, (unsigned short)1027, (unsigned short)1028, (unsigned short)1029, (unsigned short)1033, (unsigned short)1035, (unsigned short)1040, (unsigned short)1042, (unsigned short)1044, (unsigned short)1046, (unsigned short)1048, (unsigned short)1053, (unsigned short)1054, (unsigned short)1058, (unsigned short)1060, (unsigned short)1061, (unsigned short)1062, (unsigned short)1063, (unsigned short)1067, (unsigned short)1069, (unsigned short)1074, (unsigned short)1076, (unsigned short)1082, (unsigned short)1084, (unsigned short)1086, (unsigned short)1088, (unsigned short)1090, (unsigned short)1092, (unsigned short)1094, (unsigned short)1096, (unsigned short)1098, (unsigned short)1100, (unsigned short)1102, (unsigned short)1107, (unsigned short)1109, (unsigned short)1111, (unsigned short)1113, (unsigned short)1115, (unsigned short)1120, (unsigned short)1121, (unsigned short)1122, (unsigned short)1123, (unsigned short)1124, (unsigned short)1125, (unsigned short)1129, (unsigned short)1130, (unsigned short)1131, (unsigned short)1132, (unsigned short)1133, (unsigned short)1134, (unsigned short)1180, (unsigned short)1181, (unsigned short)1183, (unsigned short)1185, (unsigned short)1190, (unsigned short)1192, (unsigned short)1194, (unsigned short)1196, (unsigned short)1198, (unsigned short)1203, (unsigned short)1204, (unsigned short)1207, (unsigned short)1209, (unsigned short)1211, (unsigned short)1217, (unsigned short)1221, (unsigned short)1223, (unsigned short)1225, (unsigned short)1230, (unsigned short)1231, (unsigned short)1232, (unsigned short)1234, (unsigned short)1239, (unsigned short)1240, (unsigned short)1241, (unsigned short)1242, (unsigned short)1243, (unsigned short)1247, (unsigned short)1248, (unsigned short)1252, (unsigned short)1253, (unsigned short)1254, (unsigned short)1255, (unsigned short)1259, (unsigned short)1260, (unsigned short)1264, (unsigned short)1265, (unsigned short)1269, (unsigned short)1270, (unsigned short)1271, (unsigned short)1272, (unsigned short)1273, (unsigned short)1284, (unsigned short)1309, (unsigned short)1310, (unsigned short)1314, (unsigned short)1315, (unsigned short)1319, (unsigned short)1320, (unsigned short)1324, (unsigned short)1326, (unsigned short)1328, (unsigned short)1344, (unsigned short)1346, (unsigned short)1368, (unsigned short)1370, (unsigned short)1375, (unsigned short)1376, (unsigned short)1377, (unsigned short)1378, (unsigned short)1379, (unsigned short)1380, (unsigned short)1384, (unsigned short)1386, (unsigned short)1388, (unsigned short)1393, (unsigned short)1394, (unsigned short)1398, (unsigned short)1399, (unsigned short)1402, (unsigned short)1406, (unsigned short)1407, (unsigned short)1408, (unsigned short)1412, (unsigned short)1416, (unsigned short)1424, (unsigned short)1429, (unsigned short)1430, (unsigned short)1434, (unsigned short)1435, (unsigned short)1436, (unsigned short)1440, (unsigned short)1441, (unsigned short)1442, (unsigned short)1443, (unsigned short)1445, (unsigned short)1446, (unsigned short)1447, (unsigned short)1451, (unsigned short)1452, (unsigned short)1453, (unsigned short)1454, (unsigned short)1455, (unsigned short)1459, (unsigned short)1463, (unsigned short)1465, (unsigned short)1470, (unsigned short)1472, (unsigned short)1497, (unsigned short)1499, (unsigned short)1501, (unsigned short)1503, (unsigned short)1508, (unsigned short)1510, (unsigned short)1514, (unsigned short)1516, (unsigned short)1518, (unsigned short)1520, (unsigned short)1522, (unsigned short)1528, (unsigned short)1530, (unsigned short)1535, (unsigned short)1540, (unsigned short)1541, (unsigned short)1545, (unsigned short)1547, (unsigned short)1552, (unsigned short)1557, (unsigned short)1558, (unsigned short)1559, (unsigned short)1560, (unsigned short)1561, (unsigned short)1562, (unsigned short)1566, (unsigned short)1567, (unsigned short)1568, (unsigned short)1572, (unsigned short)1573
+(unsigned short)0, (unsigned short)230, (unsigned short)230, (unsigned short)248, (unsigned short)272, (unsigned short)312, (unsigned short)313, (unsigned short)340, (unsigned short)344, (unsigned short)345, (unsigned short)346, (unsigned short)363, (unsigned short)365, (unsigned short)370, (unsigned short)375, (unsigned short)380, (unsigned short)382, (unsigned short)387, (unsigned short)392, (unsigned short)393, (unsigned short)398, (unsigned short)400, (unsigned short)402, (unsigned short)404, (unsigned short)405, (unsigned short)407, (unsigned short)408, (unsigned short)409, (unsigned short)412, (unsigned short)413, (unsigned short)414, (unsigned short)415, (unsigned short)416, (unsigned short)417, (unsigned short)418, (unsigned short)419, (unsigned short)420, (unsigned short)424, (unsigned short)425, (unsigned short)426, (unsigned short)427, (unsigned short)428, (unsigned short)429, (unsigned short)442, (unsigned short)443, (unsigned short)444, (unsigned short)448, (unsigned short)477, (unsigned short)478, (unsigned short)479, (unsigned short)480, (unsigned short)484, (unsigned short)485, (unsigned short)486, (unsigned short)488, (unsigned short)489, (unsigned short)491, (unsigned short)492, (unsigned short)496, (unsigned short)497, (unsigned short)506, (unsigned short)507, (unsigned short)508, (unsigned short)509, (unsigned short)510, (unsigned short)511, (unsigned short)512, (unsigned short)516, (unsigned short)517, (unsigned short)521, (unsigned short)522, (unsigned short)523, (unsigned short)524, (unsigned short)528, (unsigned short)529, (unsigned short)530, (unsigned short)534, (unsigned short)535, (unsigned short)536, (unsigned short)540, (unsigned short)548, (unsigned short)549, (unsigned short)550, (unsigned short)551, (unsigned short)552, (unsigned short)556, (unsigned short)557, (unsigned short)558, (unsigned short)562, (unsigned short)563, (unsigned short)567, (unsigned short)568, (unsigned short)572, (unsigned short)573, (unsigned short)577, (unsigned short)578, (unsigned short)582, (unsigned short)583, (unsigned short)587, (unsigned short)588, (unsigned short)592, (unsigned short)593, (unsigned short)594, (unsigned short)598, (unsigned short)599, (unsigned short)600, (unsigned short)601, (unsigned short)602, (unsigned short)603, (unsigned short)604, (unsigned short)605, (unsigned short)606, (unsigned short)607, (unsigned short)608, (unsigned short)612, (unsigned short)613, (unsigned short)617, (unsigned short)621, (unsigned short)622, (unsigned short)623, (unsigned short)624, (unsigned short)628, (unsigned short)629, (unsigned short)630, (unsigned short)631, (unsigned short)632, (unsigned short)633, (unsigned short)634, (unsigned short)635, (unsigned short)639, (unsigned short)640, (unsigned short)641, (unsigned short)642, (unsigned short)643, (unsigned short)644, (unsigned short)645, (unsigned short)646, (unsigned short)647, (unsigned short)648, (unsigned short)652, (unsigned short)653, (unsigned short)654, (unsigned short)655, (unsigned short)656, (unsigned short)657, (unsigned short)658, (unsigned short)659, (unsigned short)660, (unsigned short)661, (unsigned short)665, (unsigned short)666, (unsigned short)667, (unsigned short)668, (unsigned short)669, (unsigned short)670, (unsigned short)671, (unsigned short)672, (unsigned short)673, (unsigned short)674, (unsigned short)675, (unsigned short)676, (unsigned short)680, (unsigned short)681, (unsigned short)685, (unsigned short)686, (unsigned short)687, (unsigned short)688, (unsigned short)689, (unsigned short)690, (unsigned short)691, (unsigned short)692, (unsigned short)693, (unsigned short)701, (unsigned short)710, (unsigned short)711, (unsigned short)712, (unsigned short)713, (unsigned short)714, (unsigned short)715, (unsigned short)716, (unsigned short)717, (unsigned short)718, (unsigned short)719, (unsigned short)720, (unsigned short)721, (unsigned short)722, (unsigned short)730, (unsigned short)739, (unsigned short)740, (unsigned short)744, (unsigned short)745, (unsigned short)749, (unsigned short)750, (unsigned short)751, (unsigned short)752, (unsigned short)753, (unsigned short)754, (unsigned short)758, (unsigned short)759, (unsigned short)760, (unsigned short)764, (unsigned short)765, (unsigned short)766, (unsigned short)771, (unsigned short)772, (unsigned short)773, (unsigned short)774, (unsigned short)775, (unsigned short)779, (unsigned short)780, (unsigned short)784, (unsigned short)785, (unsigned short)786, (unsigned short)790, (unsigned short)791, (unsigned short)795, (unsigned short)799, (unsigned short)800, (unsigned short)801, (unsigned short)806, (unsigned short)807, (unsigned short)808, (unsigned short)809, (unsigned short)810, (unsigned short)811, (unsigned short)812, (unsigned short)813, (unsigned short)814, (unsigned short)815, (unsigned short)816, (unsigned short)817, (unsigned short)818, (unsigned short)819, (unsigned short)820, (unsigned short)821, (unsigned short)822, (unsigned short)823, (unsigned short)824, (unsigned short)825, (unsigned short)826, (unsigned short)827, (unsigned short)828, (unsigned short)829, (unsigned short)833, (unsigned short)834, (unsigned short)835, (unsigned short)836, (unsigned short)837, (unsigned short)838, (unsigned short)839, (unsigned short)840, (unsigned short)841, (unsigned short)842, (unsigned short)843, (unsigned short)844, (unsigned short)845, (unsigned short)846, (unsigned short)847, (unsigned short)848, (unsigned short)849, (unsigned short)850, (unsigned short)851, (unsigned short)852, (unsigned short)853, (unsigned short)854, (unsigned short)859, (unsigned short)860, (unsigned short)861, (unsigned short)862, (unsigned short)863, (unsigned short)866, (unsigned short)867, (unsigned short)868, (unsigned short)869, (unsigned short)870, (unsigned short)875, (unsigned short)876, (unsigned short)879, (unsigned short)881, (unsigned short)886, (unsigned short)887, (unsigned short)892, (unsigned short)893, (unsigned short)904, (unsigned short)908, (unsigned short)910, (unsigned short)911, (unsigned short)913, (unsigned short)914, (unsigned short)938, (unsigned short)953, (unsigned short)954, (unsigned short)958, (unsigned short)959, (unsigned short)963, (unsigned short)964, (unsigned short)968, (unsigned short)972, (unsigned short)973, (unsigned short)977, (unsigned short)979, (unsigned short)981, (unsigned short)983, (unsigned short)985, (unsigned short)988, (unsigned short)990, (unsigned short)992, (unsigned short)994, (unsigned short)996, (unsigned short)999, (unsigned short)1001, (unsigned short)1003, (unsigned short)1005, (unsigned short)1007, (unsigned short)1010, (unsigned short)1012, (unsigned short)1014, (unsigned short)1016, (unsigned short)1018, (unsigned short)1023, (unsigned short)1024, (unsigned short)1025, (unsigned short)1026, (unsigned short)1027, (unsigned short)1028, (unsigned short)1029, (unsigned short)1030, (unsigned short)1034, (unsigned short)1036, (unsigned short)1041, (unsigned short)1043, (unsigned short)1045, (unsigned short)1047, (unsigned short)1049, (unsigned short)1054, (unsigned short)1055, (unsigned short)1059, (unsigned short)1061, (unsigned short)1062, (unsigned short)1063, (unsigned short)1064, (unsigned short)1068, (unsigned short)1070, (unsigned short)1075, (unsigned short)1077, (unsigned short)1083, (unsigned short)1085, (unsigned short)1087, (unsigned short)1089, (unsigned short)1091, (unsigned short)1093, (unsigned short)1095, (unsigned short)1097, (unsigned short)1099, (unsigned short)1101, (unsigned short)1103, (unsigned short)1108, (unsigned short)1110, (unsigned short)1112, (unsigned short)1114, (unsigned short)1116, (unsigned short)1121, (unsigned short)1122, (unsigned short)1123, (unsigned short)1124, (unsigned short)1125, (unsigned short)1126, (unsigned short)1130, (unsigned short)1131, (unsigned short)1132, (unsigned short)1133, (unsigned short)1134, (unsigned short)1135, (unsigned short)1181, (unsigned short)1182, (unsigned short)1184, (unsigned short)1186, (unsigned short)1191, (unsigned short)1193, (unsigned short)1195, (unsigned short)1197, (unsigned short)1199, (unsigned short)1204, (unsigned short)1205, (unsigned short)1208, (unsigned short)1210, (unsigned short)1212, (unsigned short)1218, (unsigned short)1222, (unsigned short)1224, (unsigned short)1226, (unsigned short)1231, (unsigned short)1232, (unsigned short)1233, (unsigned short)1235, (unsigned short)1240, (unsigned short)1241, (unsigned short)1242, (unsigned short)1243, (unsigned short)1244, (unsigned short)1248, (unsigned short)1249, (unsigned short)1253, (unsigned short)1254, (unsigned short)1255, (unsigned short)1256, (unsigned short)1260, (unsigned short)1261, (unsigned short)1265, (unsigned short)1266, (unsigned short)1270, (unsigned short)1271, (unsigned short)1272, (unsigned short)1273, (unsigned short)1274, (unsigned short)1285, (unsigned short)1310, (unsigned short)1311, (unsigned short)1315, (unsigned short)1316, (unsigned short)1320, (unsigned short)1321, (unsigned short)1325, (unsigned short)1327, (unsigned short)1329, (unsigned short)1345, (unsigned short)1347, (unsigned short)1369, (unsigned short)1371, (unsigned short)1376, (unsigned short)1377, (unsigned short)1378, (unsigned short)1379, (unsigned short)1380, (unsigned short)1381, (unsigned short)1385, (unsigned short)1387, (unsigned short)1389, (unsigned short)1394, (unsigned short)1395, (unsigned short)1399, (unsigned short)1400, (unsigned short)1403, (unsigned short)1407, (unsigned short)1408, (unsigned short)1409, (unsigned short)1413, (unsigned short)1417, (unsigned short)1425, (unsigned short)1430, (unsigned short)1431, (unsigned short)1435, (unsigned short)1436, (unsigned short)1437, (unsigned short)1441, (unsigned short)1442, (unsigned short)1443, (unsigned short)1444, (unsigned short)1446, (unsigned short)1447, (unsigned short)1448, (unsigned short)1452, (unsigned short)1453, (unsigned short)1454, (unsigned short)1455, (unsigned short)1456, (unsigned short)1460, (unsigned short)1464, (unsigned short)1466, (unsigned short)1471, (unsigned short)1473, (unsigned short)1498, (unsigned short)1500, (unsigned short)1502, (unsigned short)1504, (unsigned short)1509, (unsigned short)1511, (unsigned short)1515, (unsigned short)1517, (unsigned short)1519, (unsigned short)1521, (unsigned short)1523, (unsigned short)1529, (unsigned short)1531, (unsigned short)1536, (unsigned short)1541, (unsigned short)1542, (unsigned short)1546, (unsigned short)1548, (unsigned short)1553, (unsigned short)1558, (unsigned short)1559, (unsigned short)1560, (unsigned short)1561, (unsigned short)1562, (unsigned short)1563, (unsigned short)1567, (unsigned short)1568, (unsigned short)1569, (unsigned short)1573, (unsigned short)1574
 };
 
 static const char * const yytname[] =
@@ -138,6 +147,8 @@ void * calloc(size_t nmemb, size_t size);
 
 void free(void * ptr);
 
+void * malloc(size_t size);
+
 void * realloc(void * ptr, size_t size);
 
 long int strtol(const char * nptr, char ** endptr, int base);
@@ -2093,7 +2104,7 @@ struct Location yylsa[200];
 struct Location * yyls;
 struct Location * yylsp;
 struct Location yyerror_range[2];
-unsigned int yystacksize;
+size_t yystacksize;
 int yyn;
 int yyresult;
 int yytoken;
@@ -2125,7 +2136,7 @@ yysetstate:
 *yyssp = yystate;
 if(yyss + yystacksize - 1 <= yyssp)
 {
-unsigned int yysize = yyssp - yyss + 1;
+size_t yysize = yyssp - yyss + 1;
 
 if(10000 <= yystacksize)
 goto yyexhaustedlab;
@@ -2140,7 +2151,7 @@ if(!yyptr)
 goto yyexhaustedlab;
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyss_alloc, yyss, (yysize) * sizeof (*(yyss)));
 yyss = &(*yyptr).yyss_alloc;
@@ -2149,7 +2160,7 @@ yyptr += yynewbytes / sizeof (*yyptr);
 }while((0));
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyvs_alloc, yyvs, (yysize) * sizeof (*(yyvs)));
 yyvs = &(*yyptr).yyvs_alloc;
@@ -2158,7 +2169,7 @@ yyptr += yynewbytes / sizeof (*yyptr);
 }while((0));
 do
 {
-unsigned int yynewbytes;
+size_t yynewbytes;
 
 __builtin_memcpy(&(*yyptr).yyls_alloc, yyls, (yysize) * sizeof (*(yyls)));
 yyls = &(*yyptr).yyls_alloc;
diff --git a/compiler/ecc/Makefile.bootstrap b/compiler/ecc/Makefile.bootstrap
new file mode 100644 (file)
index 0000000..1179555
--- /dev/null
@@ -0,0 +1,131 @@
+.PHONY: all objdir cleantarget clean realclean distclean
+
+# CORE VARIABLES
+
+MODULE := ecc
+VERSION := 
+CONFIG := bootstrap
+ifndef COMPILER
+COMPILER := default
+endif
+
+TARGET_TYPE = executable
+
+# FLAGS
+
+ECFLAGS =
+ifndef DEBIAN_PACKAGE
+CFLAGS =
+LDFLAGS =
+endif
+PRJ_CFLAGS =
+CECFLAGS =
+OFLAGS =
+LIBS =
+
+ifdef DEBUG
+NOSTRIP := y
+endif
+
+CONSOLE = -mconsole
+
+# INCLUDES
+
+_CF_DIR = .configs/
+
+include $(_CF_DIR)crossplatform.mk
+include $(_CF_DIR)$(TARGET_PLATFORM)-$(COMPILER).cf
+
+# POST-INCLUDES VARIABLES
+
+OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
+
+RES = 
+
+_ECSOURCES = \
+       ecc.ec
+
+ECSOURCES = $(call shwspace,$(_ECSOURCES))
+
+_COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES))))
+
+_SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES))))
+
+_IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES))))
+
+_ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES))))
+
+_BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES))))
+
+COBJECTS = $(call shwspace,$(_COBJECTS))
+
+SYMBOLS = $(call shwspace,$(_SYMBOLS))
+
+IMPORTS = $(call shwspace,$(_IMPORTS))
+
+ECOBJECTS = $(call shwspace,$(_ECOBJECTS))
+
+BOWLS = $(call shwspace,$(_BOWLS))
+
+SOURCES = $(ECSOURCES)
+
+PRJ_CFLAGS += \
+        $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
+                        -DECERE_BOOTSTRAP \
+                        -DECERE_STATIC
+
+ECFLAGS += -module $(MODULE)
+ECFLAGS += \
+        -nolinenumbers
+
+CECFLAGS += -cpp $(_CPP)
+
+# TARGETS
+
+all: objdir $(COBJECTS) $(OBJ)$(MODULE).main.c
+
+objdir:
+       $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
+       $(if $(ECERE_SDK_SRC),$(if $(wildcard $(call escspace,$(ECERE_SDK_SRC)/crossplatform.mk)),,@$(call echo,Ecere SDK Source Warning: The value of ECERE_SDK_SRC is pointing to an incorrect ($(ECERE_SDK_SRC)) location.)),)
+       $(if $(ECERE_SDK_SRC),,$(if $(ECP_DEBUG)$(ECC_DEBUG)$(ECS_DEBUG),@$(call echo,ECC Debug Warning: Please define ECERE_SDK_SRC before using ECP_DEBUG, ECC_DEBUG or ECS_DEBUG),))
+
+$(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
+       @$(call rmq,$(OBJ)symbols.lst)
+       @$(call touch,$(OBJ)symbols.lst)
+       @$(call echo,$(SYMBOLS)) >> $(OBJ)symbols.lst
+       @$(call echo,$(IMPORTS)) >> $(OBJ)symbols.lst
+       $(ECS) -console $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@)
+
+$(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(SYMBOLS): | objdir
+
+# SYMBOL RULES
+
+$(OBJ)ecc.sym: ecc.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,ecc.ec) -o $(call quote_path,$@)
+
+# C OBJECT RULES
+
+$(OBJ)ecc.c: ecc.ec $(OBJ)ecc.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,ecc.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+cleantarget: objdir
+       $(call rmq,$(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
+       $(call rmq,$(OBJ)symbols.lst)
+       $(call rmq,$(OBJ)objects.lst)
+
+clean: cleantarget
+       $(call rmq,$(_ECOBJECTS))
+       $(call rmq,$(_COBJECTS))
+       $(call rmq,$(_BOWLS))
+       $(call rmq,$(_IMPORTS))
+       $(call rmq,$(_SYMBOLS))
+
+realclean: cleantarget
+       $(call rmrq,$(OBJ))
+
+distclean: cleantarget
+       $(call rmrq,obj/)
index af19791..93aeb5b 100644 (file)
@@ -688,6 +688,17 @@ class CompilerApp : Application
                      output.Printf("#else\n");
                         output.Printf("#define __ENDIAN_PAD(x) 0\n");
                      output.Printf("#endif\n");
+
+                     output.Printf("#if defined(_WIN32)\n");
+                     output.Printf("#   if defined(__GNUC__) || defined(__TINYC__)\n");
+                     output.Printf("#      define stdcall __attribute__((__stdcall__))\n");
+                     output.Printf("#   else\n");
+                     output.Printf("#      define stdcall __stdcall\n");
+                     output.Printf("#   endif\n");
+                     output.Printf("#else\n");
+                     output.Printf("#   define stdcall\n");
+                     output.Printf("#endif\n");
+
                      if(buildingBootStrap)
                      {
                         //output.Printf("#ifdef __MINGW32__\n");
diff --git a/compiler/ecp/Makefile.bootstrap b/compiler/ecp/Makefile.bootstrap
new file mode 100644 (file)
index 0000000..ee89375
--- /dev/null
@@ -0,0 +1,133 @@
+.PHONY: all objdir cleantarget clean realclean distclean
+
+# CORE VARIABLES
+
+MODULE := ecp
+VERSION := 
+CONFIG := bootstrap
+ifndef COMPILER
+COMPILER := default
+endif
+
+TARGET_TYPE = executable
+
+# FLAGS
+
+ECFLAGS =
+ifndef DEBIAN_PACKAGE
+CFLAGS =
+LDFLAGS =
+endif
+PRJ_CFLAGS =
+CECFLAGS =
+OFLAGS =
+LIBS =
+
+ifdef DEBUG
+NOSTRIP := y
+endif
+
+CONSOLE = -mconsole
+
+# INCLUDES
+
+_CF_DIR = .configs/
+
+include $(_CF_DIR)crossplatform.mk
+include $(_CF_DIR)$(TARGET_PLATFORM)-$(COMPILER).cf
+
+# POST-INCLUDES VARIABLES
+
+OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
+
+RES = 
+
+_ECSOURCES = \
+       ecp.ec
+
+ECSOURCES = $(call shwspace,$(_ECSOURCES))
+
+_COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES))))
+
+_SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES))))
+
+_IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES))))
+
+_ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES))))
+
+_BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES))))
+
+COBJECTS = $(call shwspace,$(_COBJECTS))
+
+SYMBOLS = $(call shwspace,$(_SYMBOLS))
+
+IMPORTS = $(call shwspace,$(_IMPORTS))
+
+ECOBJECTS = $(call shwspace,$(_ECOBJECTS))
+
+BOWLS = $(call shwspace,$(_BOWLS))
+
+SOURCES = $(ECSOURCES)
+
+PRJ_CFLAGS += \
+        $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
+                        -DECERE_BOOTSTRAP \
+                        -DECERE_STATIC
+
+ECFLAGS += -module $(MODULE)
+ECFLAGS += \
+        -nolinenumbers
+
+# PLATFORM-SPECIFIC OPTIONS
+
+CECFLAGS += -cpp $(_CPP)
+
+# TARGETS
+
+all: objdir $(COBJECTS) $(OBJ)$(MODULE).main.c
+
+objdir:
+       $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
+       $(if $(ECERE_SDK_SRC),$(if $(wildcard $(call escspace,$(ECERE_SDK_SRC)/crossplatform.mk)),,@$(call echo,Ecere SDK Source Warning: The value of ECERE_SDK_SRC is pointing to an incorrect ($(ECERE_SDK_SRC)) location.)),)
+       $(if $(ECERE_SDK_SRC),,$(if $(ECP_DEBUG)$(ECC_DEBUG)$(ECS_DEBUG),@$(call echo,ECC Debug Warning: Please define ECERE_SDK_SRC before using ECP_DEBUG, ECC_DEBUG or ECS_DEBUG),))
+
+$(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
+       @$(call rmq,$(OBJ)symbols.lst)
+       @$(call touch,$(OBJ)symbols.lst)
+       @$(call echo,$(SYMBOLS)) >> $(OBJ)symbols.lst
+       @$(call echo,$(IMPORTS)) >> $(OBJ)symbols.lst
+       $(ECS) -console $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@)
+
+$(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(SYMBOLS): | objdir
+
+# SYMBOL RULES
+
+$(OBJ)ecp.sym: ecp.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,ecp.ec) -o $(call quote_path,$@)
+
+# C OBJECT RULES
+
+$(OBJ)ecp.c: ecp.ec $(OBJ)ecp.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,ecp.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+cleantarget: objdir
+       $(call rmq,$(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
+       $(call rmq,$(OBJ)symbols.lst)
+       $(call rmq,$(OBJ)objects.lst)
+
+clean: cleantarget
+       $(call rmq,$(_ECOBJECTS))
+       $(call rmq,$(_COBJECTS))
+       $(call rmq,$(_BOWLS))
+       $(call rmq,$(_IMPORTS))
+       $(call rmq,$(_SYMBOLS))
+
+realclean: cleantarget
+       $(call rmrq,$(OBJ))
+
+distclean: cleantarget
+       $(call rmrq,obj/)
diff --git a/compiler/ecs/Makefile.bootstrap b/compiler/ecs/Makefile.bootstrap
new file mode 100644 (file)
index 0000000..6275717
--- /dev/null
@@ -0,0 +1,131 @@
+.PHONY: all objdir cleantarget clean realclean distclean
+
+# CORE VARIABLES
+
+MODULE := ecs
+VERSION := 
+CONFIG := bootstrap
+ifndef COMPILER
+COMPILER := default
+endif
+
+TARGET_TYPE = executable
+
+# FLAGS
+
+ECFLAGS =
+ifndef DEBIAN_PACKAGE
+CFLAGS =
+LDFLAGS =
+endif
+PRJ_CFLAGS =
+CECFLAGS =
+OFLAGS =
+LIBS =
+
+ifdef DEBUG
+NOSTRIP := y
+endif
+
+CONSOLE = -mconsole
+
+# INCLUDES
+
+_CF_DIR = .configs/
+
+include $(_CF_DIR)crossplatform.mk
+include $(_CF_DIR)$(TARGET_PLATFORM)-$(COMPILER).cf
+
+# POST-INCLUDES VARIABLES
+
+OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
+
+RES = 
+
+_ECSOURCES = \
+       ecs.ec
+
+ECSOURCES = $(call shwspace,$(_ECSOURCES))
+
+_COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES))))
+
+_SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES))))
+
+_IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES))))
+
+_ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES))))
+
+_BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES))))
+
+COBJECTS = $(call shwspace,$(_COBJECTS))
+
+SYMBOLS = $(call shwspace,$(_SYMBOLS))
+
+IMPORTS = $(call shwspace,$(_IMPORTS))
+
+ECOBJECTS = $(call shwspace,$(_ECOBJECTS))
+
+BOWLS = $(call shwspace,$(_BOWLS))
+
+SOURCES = $(ECSOURCES)
+
+PRJ_CFLAGS += \
+        $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
+                        -DECERE_BOOTSTRAP \
+                        -DECERE_STATIC
+
+ECFLAGS += -module $(MODULE)
+ECFLAGS += \
+        -nolinenumbers
+
+CECFLAGS += -cpp $(_CPP)
+
+# TARGETS
+
+all: objdir $(COBJECTS) $(OBJ)$(MODULE).main.c
+
+objdir:
+       $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
+       $(if $(ECERE_SDK_SRC),$(if $(wildcard $(call escspace,$(ECERE_SDK_SRC)/crossplatform.mk)),,@$(call echo,Ecere SDK Source Warning: The value of ECERE_SDK_SRC is pointing to an incorrect ($(ECERE_SDK_SRC)) location.)),)
+       $(if $(ECERE_SDK_SRC),,$(if $(ECP_DEBUG)$(ECC_DEBUG)$(ECS_DEBUG),@$(call echo,ECC Debug Warning: Please define ECERE_SDK_SRC before using ECP_DEBUG, ECC_DEBUG or ECS_DEBUG),))
+
+$(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
+       @$(call rmq,$(OBJ)symbols.lst)
+       @$(call touch,$(OBJ)symbols.lst)
+       @$(call echo,$(SYMBOLS)) >> $(OBJ)symbols.lst
+       @$(call echo,$(IMPORTS)) >> $(OBJ)symbols.lst
+       $(ECS) -console $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@)
+
+$(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(SYMBOLS): | objdir
+
+# SYMBOL RULES
+
+$(OBJ)ecs.sym: ecs.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,ecs.ec) -o $(call quote_path,$@)
+
+# C OBJECT RULES
+
+$(OBJ)ecs.c: ecs.ec $(OBJ)ecs.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,ecs.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+cleantarget: objdir
+       $(call rmq,$(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
+       $(call rmq,$(OBJ)symbols.lst)
+       $(call rmq,$(OBJ)objects.lst)
+
+clean: cleantarget
+       $(call rmq,$(_ECOBJECTS))
+       $(call rmq,$(_COBJECTS))
+       $(call rmq,$(_BOWLS))
+       $(call rmq,$(_IMPORTS))
+       $(call rmq,$(_SYMBOLS))
+
+realclean: cleantarget
+       $(call rmrq,$(OBJ))
+
+distclean: cleantarget
+       $(call rmrq,obj/)
diff --git a/compiler/libec/Makefile.bootstrap b/compiler/libec/Makefile.bootstrap
new file mode 100644 (file)
index 0000000..94c206c
--- /dev/null
@@ -0,0 +1,260 @@
+.PHONY: all objdir cleantarget clean realclean distclean
+
+# CORE VARIABLES
+
+MODULE := ec
+VERSION := 0.44
+CONFIG := bootstrap
+ifndef COMPILER
+COMPILER := default
+endif
+
+TARGET_TYPE = staticlib
+
+# FLAGS
+
+ECFLAGS =
+ifndef DEBIAN_PACKAGE
+CFLAGS =
+LDFLAGS =
+endif
+PRJ_CFLAGS =
+CECFLAGS =
+OFLAGS =
+LIBS =
+
+ifdef DEBUG
+NOSTRIP := y
+endif
+
+CONSOLE = -mwindows
+
+# INCLUDES
+
+_CF_DIR = .configs/
+
+include $(_CF_DIR)crossplatform.mk
+include $(_CF_DIR)$(TARGET_PLATFORM)-$(COMPILER).cf
+
+# POST-INCLUDES VARIABLES
+
+OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
+
+_ECSOURCES = \
+       src/ast.ec \
+       src/copy.ec \
+       src/dbpass.ec \
+       src/ecdefs.ec \
+       src/expression.ec \
+       src/firstPass.ec \
+       src/freeAst.ec \
+       src/grammar.ec \
+       src/lexer.ec \
+       src/loadSymbols.ec \
+       src/output.ec \
+       src/pass0.ec \
+       src/pass1.ec \
+       src/pass15.ec \
+       src/pass16.ec \
+       src/pass2.ec \
+       src/pass3.ec \
+       src/shortcuts.ec \
+       src/type.ec
+
+ECSOURCES = $(call shwspace,$(_ECSOURCES))
+
+_COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES))))
+
+_SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES))))
+
+_IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES))))
+
+_ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES))))
+
+_BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES))))
+
+COBJECTS = $(call shwspace,$(_COBJECTS))
+
+SYMBOLS = $(call shwspace,$(_SYMBOLS))
+
+IMPORTS = $(call shwspace,$(_IMPORTS))
+
+ECOBJECTS = $(call shwspace,$(_ECOBJECTS))
+
+BOWLS = $(call shwspace,$(_BOWLS))
+
+SOURCES = $(ECSOURCES) \
+       ../bootstrap/bsl.c
+
+PRJ_CFLAGS += \
+        $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
+                        -DECERE_BOOTSTRAP \
+                        -DECERE_STATIC
+
+CUSTOM1_PRJ_CFLAGS = \
+                        -I../bootstrap/include \
+        $(PRJ_CFLAGS)
+
+ECFLAGS += -module $(MODULE)
+ECFLAGS += \
+        -nolinenumbers
+
+CECFLAGS += -cpp $(_CPP)
+
+# TARGETS
+
+all: objdir $(COBJECTS) $(OBJ)$(MODULE).main.c
+
+objdir:
+       $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
+       $(if $(ECERE_SDK_SRC),$(if $(wildcard $(call escspace,$(ECERE_SDK_SRC)/crossplatform.mk)),,@$(call echo,Ecere SDK Source Warning: The value of ECERE_SDK_SRC is pointing to an incorrect ($(ECERE_SDK_SRC)) location.)),)
+       $(if $(ECERE_SDK_SRC),,$(if $(ECP_DEBUG)$(ECC_DEBUG)$(ECS_DEBUG),@$(call echo,ECC Debug Warning: Please define ECERE_SDK_SRC before using ECP_DEBUG, ECC_DEBUG or ECS_DEBUG),))
+
+$(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
+       @$(call rmq,$(OBJ)symbols.lst)
+       @$(call touch,$(OBJ)symbols.lst)
+       @$(call echo,$(SYMBOLS)) >> $(OBJ)symbols.lst
+       @$(call echo,$(IMPORTS)) >> $(OBJ)symbols.lst
+       $(ECS) $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@)
+
+$(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(SYMBOLS): | objdir
+
+# SYMBOL RULES
+
+$(OBJ)ast.sym: src/ast.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/ast.ec) -o $(call quote_path,$@)
+
+$(OBJ)copy.sym: src/copy.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/copy.ec) -o $(call quote_path,$@)
+
+$(OBJ)dbpass.sym: src/dbpass.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/dbpass.ec) -o $(call quote_path,$@)
+
+$(OBJ)ecdefs.sym: src/ecdefs.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/ecdefs.ec) -o $(call quote_path,$@)
+
+$(OBJ)expression.sym: src/expression.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/expression.ec) -o $(call quote_path,$@)
+
+$(OBJ)firstPass.sym: src/firstPass.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/firstPass.ec) -o $(call quote_path,$@)
+
+$(OBJ)freeAst.sym: src/freeAst.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/freeAst.ec) -o $(call quote_path,$@)
+
+$(OBJ)grammar.sym: src/grammar.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/grammar.ec) -o $(call quote_path,$@)
+
+$(OBJ)lexer.sym: src/lexer.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/lexer.ec) -o $(call quote_path,$@)
+
+$(OBJ)loadSymbols.sym: src/loadSymbols.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/loadSymbols.ec) -o $(call quote_path,$@)
+
+$(OBJ)output.sym: src/output.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/output.ec) -o $(call quote_path,$@)
+
+$(OBJ)pass0.sym: src/pass0.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass0.ec) -o $(call quote_path,$@)
+
+$(OBJ)pass1.sym: src/pass1.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass1.ec) -o $(call quote_path,$@)
+
+$(OBJ)pass15.sym: src/pass15.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass15.ec) -o $(call quote_path,$@)
+
+$(OBJ)pass16.sym: src/pass16.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass16.ec) -o $(call quote_path,$@)
+
+$(OBJ)pass2.sym: src/pass2.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass2.ec) -o $(call quote_path,$@)
+
+$(OBJ)pass3.sym: src/pass3.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/pass3.ec) -o $(call quote_path,$@)
+
+$(OBJ)shortcuts.sym: src/shortcuts.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/shortcuts.ec) -o $(call quote_path,$@)
+
+$(OBJ)type.sym: src/type.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/type.ec) -o $(call quote_path,$@)
+
+# C OBJECT RULES
+
+$(OBJ)ast.c: src/ast.ec $(OBJ)ast.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/ast.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)copy.c: src/copy.ec $(OBJ)copy.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/copy.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)dbpass.c: src/dbpass.ec $(OBJ)dbpass.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/dbpass.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)ecdefs.c: src/ecdefs.ec $(OBJ)ecdefs.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/ecdefs.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)expression.c: src/expression.ec $(OBJ)expression.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/expression.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)firstPass.c: src/firstPass.ec $(OBJ)firstPass.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/firstPass.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)freeAst.c: src/freeAst.ec $(OBJ)freeAst.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/freeAst.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)grammar.c: src/grammar.ec $(OBJ)grammar.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/grammar.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)lexer.c: src/lexer.ec $(OBJ)lexer.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/lexer.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)loadSymbols.c: src/loadSymbols.ec $(OBJ)loadSymbols.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/loadSymbols.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)output.c: src/output.ec $(OBJ)output.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/output.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)pass0.c: src/pass0.ec $(OBJ)pass0.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass0.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)pass1.c: src/pass1.ec $(OBJ)pass1.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass1.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)pass15.c: src/pass15.ec $(OBJ)pass15.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass15.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)pass16.c: src/pass16.ec $(OBJ)pass16.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass16.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)pass2.c: src/pass2.ec $(OBJ)pass2.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass2.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)pass3.c: src/pass3.ec $(OBJ)pass3.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/pass3.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)shortcuts.c: src/shortcuts.ec $(OBJ)shortcuts.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/shortcuts.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)type.c: src/type.ec $(OBJ)type.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/type.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+cleantarget: objdir
+       $(call rmq,$(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
+       $(call rmq,$(OBJ)symbols.lst)
+       $(call rmq,$(OBJ)objects.lst)
+
+clean: cleantarget
+       $(call rmq,$(_ECOBJECTS))
+       $(call rmq,$(_COBJECTS))
+       $(call rmq,$(_BOWLS))
+       $(call rmq,$(_IMPORTS))
+       $(call rmq,$(_SYMBOLS))
+
+realclean: cleantarget
+       $(call rmrq,$(OBJ))
+
+distclean: cleantarget
+       $(call rmrq,obj/)
index cfcc1a3..49ac659 100644 (file)
@@ -72,6 +72,7 @@
 
 import "ecdefs"
 
+#define YYSIZE_T size_t
 #define YYLTYPE Location
 #include "grammar.h"
 
@@ -103,7 +104,7 @@ default:
 
 
 /* Line 189 of yacc.c  */
-#line 107 "expression.ec"
+#line 108 "expression.ec"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -256,7 +257,7 @@ typedef union YYSTYPE
 {
 
 /* Line 214 of yacc.c  */
-#line 37 "expression.y"
+#line 38 "expression.y"
 
    int i;
    AccessMode declMode;
@@ -293,7 +294,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 297 "expression.ec"
+#line 298 "expression.ec"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -318,7 +319,7 @@ typedef struct YYLTYPE
 
 
 /* Line 264 of yacc.c  */
-#line 322 "expression.ec"
+#line 323 "expression.ec"
 
 #ifdef short
 # undef short
@@ -800,49 +801,49 @@ static const yytype_int16 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   214,   214,   219,   220,   225,   227,   229,   231,   232,
-     234,   235,   236,   239,   240,   241,   242,   243,   244,   245,
-     246,   247,   251,   255,   256,   257,   258,   259,   260,   273,
-     274,   275,   305,   306,   307,   308,   312,   313,   314,   317,
-     318,   321,   322,   326,   327,   336,   337,   338,   339,   340,
-     341,   342,   346,   347,   351,   352,   353,   354,   358,   359,
-     360,   364,   365,   366,   370,   371,   372,   373,   374,   378,
-     379,   380,   384,   385,   389,   390,   394,   395,   399,   400,
-     404,   405,   409,   410,   414,   415,   416,   418,   419,   423,
-     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
-     437,   438,   442,   446,   447,   448,   449,   453,   454,   455,
-     456,   457,   458,   459,   460,   464,   465,   466,   467,   468,
-     469,   470,   471,   472,   473,   478,   479,   480,   481,   482,
-     483,   484,   485,   489,   490,   491,   492,   493,   494,   495,
-     496,   497,   498,   502,   503,   507,   508,   512,   513,   514,
-     515,   516,   517,   521,   522,   526,   527,   528,   533,   534,
-     535,   536,   537,   541,   542,   546,   547,   548,   552,   553,
-     557,   558,   559,   563,   588,   592,   593,   594,   595,   596,
-     597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
-     607,   608,   609,   610,   611,   615,   616,   617,   618,   619,
-     620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-     630,   631,   632,   633,   638,   639,   640,   641,   642,   645,
-     646,   647,   648,   649,   654,   655,   658,   660,   665,   666,
-     670,   671,   675,   679,   680,   684,   686,   688,   690,   692,
-     695,   697,   699,   701,   703,   706,   708,   710,   712,   714,
-     717,   719,   721,   723,   725,   730,   731,   732,   733,   734,
-     735,   736,   737,   741,   743,   748,   750,   752,   754,   756,
-     761,   762,   766,   768,   769,   770,   771,   775,   777,   782,
-     784,   790,   792,   794,   796,   798,   800,   802,   804,   806,
-     808,   810,   815,   817,   819,   821,   823,   828,   829,   830,
-     831,   832,   833,   837,   838,   839,   840,   841,   842,   888,
-     889,   891,   897,   899,   901,   903,   905,   910,   911,   914,
-     916,   918,   924,   925,   926,   928,   933,   937,   939,   941,
-     946,   947,   951,   952,   953,   954,   958,   959,   963,   964,
-     968,   969,   970,   974,   975,   979,   980,   989,   991,   993,
-    1009,  1010,  1031,  1033,  1038,  1039,  1040,  1041,  1042,  1043,
-    1047,  1049,  1051,  1056,  1057,  1061,  1062,  1065,  1069,  1070,
-    1071,  1075,  1079,  1087,  1092,  1093,  1097,  1098,  1099,  1103,
-    1104,  1105,  1106,  1108,  1109,  1110,  1114,  1115,  1116,  1117,
-    1118,  1122,  1126,  1128,  1133,  1135,  1137,  1139,  1144,  1146,
-    1151,  1153,  1158,  1163,  1168,  1170,  1175,  1177,  1179,  1181,
-    1183,  1189,  1194,  1199,  1200,  1204,  1206,  1211,  1216,  1217,
-    1218,  1219,  1220,  1221,  1225,  1226,  1227,  1231
+       0,   215,   215,   220,   221,   226,   228,   230,   232,   233,
+     235,   236,   237,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   252,   256,   257,   258,   259,   260,   261,   274,
+     275,   276,   306,   307,   308,   309,   313,   314,   315,   318,
+     319,   322,   323,   327,   328,   337,   338,   339,   340,   341,
+     342,   343,   347,   348,   352,   353,   354,   355,   359,   360,
+     361,   365,   366,   367,   371,   372,   373,   374,   375,   379,
+     380,   381,   385,   386,   390,   391,   395,   396,   400,   401,
+     405,   406,   410,   411,   415,   416,   417,   419,   420,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     438,   439,   443,   447,   448,   449,   450,   454,   455,   456,
+     457,   458,   459,   460,   461,   465,   466,   467,   468,   469,
+     470,   471,   472,   473,   474,   479,   480,   481,   482,   483,
+     484,   485,   486,   490,   491,   492,   493,   494,   495,   496,
+     497,   498,   499,   503,   504,   508,   509,   513,   514,   515,
+     516,   517,   518,   522,   523,   527,   528,   529,   534,   535,
+     536,   537,   538,   542,   543,   547,   548,   549,   553,   554,
+     558,   559,   560,   564,   589,   593,   594,   595,   596,   597,
+     598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
+     608,   609,   610,   611,   612,   616,   617,   618,   619,   620,
+     621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
+     631,   632,   633,   634,   639,   640,   641,   642,   643,   646,
+     647,   648,   649,   650,   655,   656,   659,   661,   666,   667,
+     671,   672,   676,   680,   681,   685,   687,   689,   691,   693,
+     696,   698,   700,   702,   704,   707,   709,   711,   713,   715,
+     718,   720,   722,   724,   726,   731,   732,   733,   734,   735,
+     736,   737,   738,   742,   744,   749,   751,   753,   755,   757,
+     762,   763,   767,   769,   770,   771,   772,   776,   778,   783,
+     785,   791,   793,   795,   797,   799,   801,   803,   805,   807,
+     809,   811,   816,   818,   820,   822,   824,   829,   830,   831,
+     832,   833,   834,   838,   839,   840,   841,   842,   843,   889,
+     890,   892,   898,   900,   902,   904,   906,   911,   912,   915,
+     917,   919,   925,   926,   927,   929,   934,   938,   940,   942,
+     947,   948,   952,   953,   954,   955,   959,   960,   964,   965,
+     969,   970,   971,   975,   976,   980,   981,   990,   992,   994,
+    1010,  1011,  1032,  1034,  1039,  1040,  1041,  1042,  1043,  1044,
+    1048,  1050,  1052,  1057,  1058,  1062,  1063,  1066,  1070,  1071,
+    1072,  1076,  1080,  1088,  1093,  1094,  1098,  1099,  1100,  1104,
+    1105,  1106,  1107,  1109,  1110,  1111,  1115,  1116,  1117,  1118,
+    1119,  1123,  1127,  1129,  1134,  1136,  1138,  1140,  1145,  1147,
+    1152,  1154,  1159,  1164,  1169,  1171,  1176,  1178,  1180,  1182,
+    1184,  1190,  1195,  1200,  1201,  1205,  1207,  1212,  1217,  1218,
+    1219,  1220,  1221,  1222,  1226,  1227,  1228,  1232
 };
 #endif
 
@@ -3399,857 +3400,857 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
       case 145: /* "identifier" */
 
 /* Line 1009 of yacc.c  */
-#line 156 "expression.y"
+#line 157 "expression.y"
        { FreeIdentifier((yyvaluep->id)); };
 
 /* Line 1009 of yacc.c  */
-#line 3407 "expression.ec"
+#line 3408 "expression.ec"
        break;
       case 146: /* "primary_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3416 "expression.ec"
+#line 3417 "expression.ec"
        break;
       case 149: /* "postfix_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3425 "expression.ec"
+#line 3426 "expression.ec"
        break;
       case 150: /* "argument_expression_list" */
 
 /* Line 1009 of yacc.c  */
-#line 191 "expression.y"
+#line 192 "expression.y"
        { FreeList((yyvaluep->list), FreeExpression); };
 
 /* Line 1009 of yacc.c  */
-#line 3434 "expression.ec"
+#line 3435 "expression.ec"
        break;
       case 152: /* "unary_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3443 "expression.ec"
+#line 3444 "expression.ec"
        break;
       case 154: /* "cast_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3452 "expression.ec"
+#line 3453 "expression.ec"
        break;
       case 155: /* "multiplicative_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3461 "expression.ec"
+#line 3462 "expression.ec"
        break;
       case 156: /* "additive_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3470 "expression.ec"
+#line 3471 "expression.ec"
        break;
       case 157: /* "shift_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3479 "expression.ec"
+#line 3480 "expression.ec"
        break;
       case 158: /* "relational_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3488 "expression.ec"
+#line 3489 "expression.ec"
        break;
       case 159: /* "equality_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3497 "expression.ec"
+#line 3498 "expression.ec"
        break;
       case 160: /* "and_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3506 "expression.ec"
+#line 3507 "expression.ec"
        break;
       case 161: /* "exclusive_or_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3515 "expression.ec"
+#line 3516 "expression.ec"
        break;
       case 162: /* "inclusive_or_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3524 "expression.ec"
+#line 3525 "expression.ec"
        break;
       case 163: /* "logical_and_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3533 "expression.ec"
+#line 3534 "expression.ec"
        break;
       case 164: /* "logical_or_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3542 "expression.ec"
+#line 3543 "expression.ec"
        break;
       case 165: /* "conditional_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3551 "expression.ec"
+#line 3552 "expression.ec"
        break;
       case 166: /* "assignment_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3560 "expression.ec"
+#line 3561 "expression.ec"
        break;
       case 168: /* "expression" */
 
 /* Line 1009 of yacc.c  */
-#line 191 "expression.y"
+#line 192 "expression.y"
        { FreeList((yyvaluep->list), FreeExpression); };
 
 /* Line 1009 of yacc.c  */
-#line 3569 "expression.ec"
+#line 3570 "expression.ec"
        break;
       case 169: /* "constant_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 158 "expression.y"
+#line 159 "expression.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3578 "expression.ec"
+#line 3579 "expression.ec"
        break;
       case 170: /* "declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 177 "expression.y"
+#line 178 "expression.y"
        { FreeDeclaration((yyvaluep->declaration)); };
 
 /* Line 1009 of yacc.c  */
-#line 3587 "expression.ec"
+#line 3588 "expression.ec"
        break;
       case 171: /* "specifier_qualifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 193 "expression.y"
+#line 194 "expression.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 3596 "expression.ec"
+#line 3597 "expression.ec"
        break;
       case 172: /* "declaration_specifiers" */
 
 /* Line 1009 of yacc.c  */
-#line 193 "expression.y"
+#line 194 "expression.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 3605 "expression.ec"
+#line 3606 "expression.ec"
        break;
       case 175: /* "init_declarator_list" */
 
 /* Line 1009 of yacc.c  */
-#line 197 "expression.y"
+#line 198 "expression.y"
        { FreeList((yyvaluep->list), FreeInitDeclarator); };
 
 /* Line 1009 of yacc.c  */
-#line 3614 "expression.ec"
+#line 3615 "expression.ec"
        break;
       case 176: /* "init_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 172 "expression.y"
+#line 173 "expression.y"
        { FreeInitDeclarator((yyvaluep->initDeclarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3623 "expression.ec"
+#line 3624 "expression.ec"
        break;
       case 177: /* "storage_class_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3632 "expression.ec"
+#line 3633 "expression.ec"
        break;
       case 178: /* "ext_decl" */
 
 /* Line 1009 of yacc.c  */
-#line 205 "expression.y"
+#line 206 "expression.y"
        { FreeExtDecl((yyvaluep->extDecl)); };
 
 /* Line 1009 of yacc.c  */
-#line 3641 "expression.ec"
+#line 3642 "expression.ec"
        break;
       case 180: /* "attribute_word" */
 
 /* Line 1009 of yacc.c  */
-#line 188 "expression.y"
+#line 189 "expression.y"
        { delete (yyvaluep->string); };
 
 /* Line 1009 of yacc.c  */
-#line 3650 "expression.ec"
+#line 3651 "expression.ec"
        break;
       case 181: /* "attribute" */
 
 /* Line 1009 of yacc.c  */
-#line 206 "expression.y"
+#line 207 "expression.y"
        { FreeAttribute((yyvaluep->attribute)); };
 
 /* Line 1009 of yacc.c  */
-#line 3659 "expression.ec"
+#line 3660 "expression.ec"
        break;
       case 182: /* "attribs_list" */
 
 /* Line 1009 of yacc.c  */
-#line 207 "expression.y"
+#line 208 "expression.y"
        { FreeList((yyvaluep->list), FreeAttribute); };
 
 /* Line 1009 of yacc.c  */
-#line 3668 "expression.ec"
+#line 3669 "expression.ec"
        break;
       case 183: /* "attrib" */
 
 /* Line 1009 of yacc.c  */
-#line 204 "expression.y"
+#line 205 "expression.y"
        { FreeAttrib((yyvaluep->attrib)); };
 
 /* Line 1009 of yacc.c  */
-#line 3677 "expression.ec"
+#line 3678 "expression.ec"
        break;
       case 184: /* "type_qualifier" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3686 "expression.ec"
+#line 3687 "expression.ec"
        break;
       case 185: /* "type" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3695 "expression.ec"
+#line 3696 "expression.ec"
        break;
       case 186: /* "strict_type" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3704 "expression.ec"
+#line 3705 "expression.ec"
        break;
       case 187: /* "type_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3713 "expression.ec"
+#line 3714 "expression.ec"
        break;
       case 188: /* "strict_type_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3722 "expression.ec"
+#line 3723 "expression.ec"
        break;
       case 189: /* "struct_or_union_specifier_compound" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3731 "expression.ec"
+#line 3732 "expression.ec"
        break;
       case 190: /* "struct_or_union_specifier_nocompound" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3740 "expression.ec"
+#line 3741 "expression.ec"
        break;
       case 192: /* "struct_declaration_list" */
 
 /* Line 1009 of yacc.c  */
-#line 200 "expression.y"
+#line 201 "expression.y"
        { FreeList((yyvaluep->list), FreeClassDef); };
 
 /* Line 1009 of yacc.c  */
-#line 3749 "expression.ec"
+#line 3750 "expression.ec"
        break;
       case 193: /* "default_property" */
 
 /* Line 1009 of yacc.c  */
-#line 181 "expression.y"
+#line 182 "expression.y"
        { FreeMemberInit((yyvaluep->memberInit)); };
 
 /* Line 1009 of yacc.c  */
-#line 3758 "expression.ec"
+#line 3759 "expression.ec"
        break;
       case 194: /* "default_property_list" */
 
 /* Line 1009 of yacc.c  */
-#line 201 "expression.y"
+#line 202 "expression.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 3767 "expression.ec"
+#line 3768 "expression.ec"
        break;
       case 195: /* "property" */
 
 /* Line 1009 of yacc.c  */
-#line 189 "expression.y"
+#line 190 "expression.y"
        { FreeProperty((yyvaluep->prop)); };
 
 /* Line 1009 of yacc.c  */
-#line 3776 "expression.ec"
+#line 3777 "expression.ec"
        break;
       case 196: /* "struct_declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 187 "expression.y"
+#line 188 "expression.y"
        { FreeClassDef((yyvaluep->classDef)); };
 
 /* Line 1009 of yacc.c  */
-#line 3785 "expression.ec"
+#line 3786 "expression.ec"
        break;
       case 197: /* "struct_declarator_list" */
 
 /* Line 1009 of yacc.c  */
-#line 194 "expression.y"
+#line 195 "expression.y"
        { FreeList((yyvaluep->list), FreeDeclarator); };
 
 /* Line 1009 of yacc.c  */
-#line 3794 "expression.ec"
+#line 3795 "expression.ec"
        break;
       case 198: /* "struct_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3803 "expression.ec"
+#line 3804 "expression.ec"
        break;
       case 199: /* "enum_specifier_nocompound" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3812 "expression.ec"
+#line 3813 "expression.ec"
        break;
       case 200: /* "enum_specifier_compound" */
 
 /* Line 1009 of yacc.c  */
-#line 164 "expression.y"
+#line 165 "expression.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3821 "expression.ec"
+#line 3822 "expression.ec"
        break;
       case 201: /* "enumerator_list" */
 
 /* Line 1009 of yacc.c  */
-#line 192 "expression.y"
+#line 193 "expression.y"
        { FreeList((yyvaluep->list), FreeEnumerator); };
 
 /* Line 1009 of yacc.c  */
-#line 3830 "expression.ec"
+#line 3831 "expression.ec"
        break;
       case 202: /* "enumerator" */
 
 /* Line 1009 of yacc.c  */
-#line 166 "expression.y"
+#line 167 "expression.y"
        { FreeEnumerator((yyvaluep->enumerator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3839 "expression.ec"
+#line 3840 "expression.ec"
        break;
       case 203: /* "direct_abstract_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3848 "expression.ec"
+#line 3849 "expression.ec"
        break;
       case 204: /* "direct_abstract_declarator_noarray" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3857 "expression.ec"
+#line 3858 "expression.ec"
        break;
       case 205: /* "abstract_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3866 "expression.ec"
+#line 3867 "expression.ec"
        break;
       case 206: /* "abstract_declarator_noarray" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3875 "expression.ec"
+#line 3876 "expression.ec"
        break;
       case 207: /* "declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3884 "expression.ec"
+#line 3885 "expression.ec"
        break;
       case 208: /* "direct_declarator_nofunction" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3893 "expression.ec"
+#line 3894 "expression.ec"
        break;
       case 209: /* "declarator_function" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3902 "expression.ec"
+#line 3903 "expression.ec"
        break;
       case 210: /* "direct_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3911 "expression.ec"
+#line 3912 "expression.ec"
        break;
       case 211: /* "direct_declarator_function_start" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3920 "expression.ec"
+#line 3921 "expression.ec"
        break;
       case 212: /* "direct_declarator_function" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "expression.y"
+#line 168 "expression.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 3929 "expression.ec"
+#line 3930 "expression.ec"
        break;
       case 213: /* "type_qualifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 193 "expression.y"
+#line 194 "expression.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 3938 "expression.ec"
+#line 3939 "expression.ec"
        break;
       case 214: /* "pointer" */
 
 /* Line 1009 of yacc.c  */
-#line 157 "expression.y"
+#line 158 "expression.y"
        { FreePointer((yyvaluep->pointer)); };
 
 /* Line 1009 of yacc.c  */
-#line 3947 "expression.ec"
+#line 3948 "expression.ec"
        break;
       case 215: /* "parameter_type_list" */
 
 /* Line 1009 of yacc.c  */
-#line 198 "expression.y"
+#line 199 "expression.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 3956 "expression.ec"
+#line 3957 "expression.ec"
        break;
       case 216: /* "parameter_list" */
 
 /* Line 1009 of yacc.c  */
-#line 198 "expression.y"
+#line 199 "expression.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 3965 "expression.ec"
+#line 3966 "expression.ec"
        break;
       case 217: /* "parameter_declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 173 "expression.y"
+#line 174 "expression.y"
        { FreeTypeName((yyvaluep->typeName)); };
 
 /* Line 1009 of yacc.c  */
-#line 3974 "expression.ec"
+#line 3975 "expression.ec"
        break;
       case 218: /* "identifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 198 "expression.y"
+#line 199 "expression.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 3983 "expression.ec"
+#line 3984 "expression.ec"
        break;
       case 219: /* "type_name" */
 
 /* Line 1009 of yacc.c  */
-#line 173 "expression.y"
+#line 174 "expression.y"
        { FreeTypeName((yyvaluep->typeName)); };
 
 /* Line 1009 of yacc.c  */
-#line 3992 "expression.ec"
+#line 3993 "expression.ec"
        break;
       case 220: /* "initializer" */
 
 /* Line 1009 of yacc.c  */
-#line 171 "expression.y"
+#line 172 "expression.y"
        { FreeInitializer((yyvaluep->initializer)); };
 
 /* Line 1009 of yacc.c  */
-#line 4001 "expression.ec"
+#line 4002 "expression.ec"
        break;
       case 221: /* "initializer_condition" */
 
 /* Line 1009 of yacc.c  */
-#line 171 "expression.y"
+#line 172 "expression.y"
        { FreeInitializer((yyvaluep->initializer)); };
 
 /* Line 1009 of yacc.c  */
-#line 4010 "expression.ec"
+#line 4011 "expression.ec"
        break;
       case 222: /* "initializer_list" */
 
 /* Line 1009 of yacc.c  */
-#line 196 "expression.y"
+#line 197 "expression.y"
        { FreeList((yyvaluep->list), FreeInitializer); };
 
 /* Line 1009 of yacc.c  */
-#line 4019 "expression.ec"
+#line 4020 "expression.ec"
        break;
       case 223: /* "statement" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "expression.y"
+#line 175 "expression.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4028 "expression.ec"
+#line 4029 "expression.ec"
        break;
       case 224: /* "labeled_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "expression.y"
+#line 175 "expression.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4037 "expression.ec"
+#line 4038 "expression.ec"
        break;
       case 225: /* "declaration_list" */
 
 /* Line 1009 of yacc.c  */
-#line 195 "expression.y"
+#line 196 "expression.y"
        { FreeList((yyvaluep->list), FreeDeclaration); };
 
 /* Line 1009 of yacc.c  */
-#line 4046 "expression.ec"
+#line 4047 "expression.ec"
        break;
       case 226: /* "statement_list" */
 
 /* Line 1009 of yacc.c  */
-#line 199 "expression.y"
+#line 200 "expression.y"
        { FreeList((yyvaluep->list), FreeStatement); };
 
 /* Line 1009 of yacc.c  */
-#line 4055 "expression.ec"
+#line 4056 "expression.ec"
        break;
       case 227: /* "compound_inside" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "expression.y"
+#line 175 "expression.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4064 "expression.ec"
+#line 4065 "expression.ec"
        break;
       case 228: /* "compound_start" */
 
 /* Line 1009 of yacc.c  */
-#line 203 "expression.y"
+#line 204 "expression.y"
        { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
 
 /* Line 1009 of yacc.c  */
-#line 4073 "expression.ec"
+#line 4074 "expression.ec"
        break;
       case 229: /* "compound_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "expression.y"
+#line 175 "expression.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4082 "expression.ec"
+#line 4083 "expression.ec"
        break;
       case 230: /* "expression_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "expression.y"
+#line 175 "expression.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4091 "expression.ec"
+#line 4092 "expression.ec"
        break;
       case 231: /* "selection_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "expression.y"
+#line 175 "expression.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4100 "expression.ec"
+#line 4101 "expression.ec"
        break;
       case 232: /* "iteration_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "expression.y"
+#line 175 "expression.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4109 "expression.ec"
+#line 4110 "expression.ec"
        break;
       case 233: /* "jump_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "expression.y"
+#line 175 "expression.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4118 "expression.ec"
+#line 4119 "expression.ec"
        break;
       case 234: /* "string_literal" */
 
 /* Line 1009 of yacc.c  */
-#line 188 "expression.y"
+#line 189 "expression.y"
        { delete (yyvaluep->string); };
 
 /* Line 1009 of yacc.c  */
-#line 4127 "expression.ec"
+#line 4128 "expression.ec"
        break;
       case 235: /* "instantiation_named" */
 
 /* Line 1009 of yacc.c  */
-#line 179 "expression.y"
+#line 180 "expression.y"
        { FreeInstance((yyvaluep->instance)); };
 
 /* Line 1009 of yacc.c  */
-#line 4136 "expression.ec"
+#line 4137 "expression.ec"
        break;
       case 236: /* "instantiation_unnamed" */
 
 /* Line 1009 of yacc.c  */
-#line 179 "expression.y"
+#line 180 "expression.y"
        { FreeInstance((yyvaluep->instance)); };
 
 /* Line 1009 of yacc.c  */
-#line 4145 "expression.ec"
+#line 4146 "expression.ec"
        break;
       case 238: /* "class_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 183 "expression.y"
+#line 184 "expression.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4154 "expression.ec"
+#line 4155 "expression.ec"
        break;
       case 239: /* "constructor_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 183 "expression.y"
+#line 184 "expression.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4163 "expression.ec"
+#line 4164 "expression.ec"
        break;
       case 240: /* "destructor_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 183 "expression.y"
+#line 184 "expression.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4172 "expression.ec"
+#line 4173 "expression.ec"
        break;
       case 241: /* "virtual_class_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 183 "expression.y"
+#line 184 "expression.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4181 "expression.ec"
+#line 4182 "expression.ec"
        break;
       case 242: /* "class_function_definition" */
 
 /* Line 1009 of yacc.c  */
-#line 183 "expression.y"
+#line 184 "expression.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4190 "expression.ec"
+#line 4191 "expression.ec"
        break;
       case 243: /* "instance_class_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 183 "expression.y"
+#line 184 "expression.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4199 "expression.ec"
+#line 4200 "expression.ec"
        break;
       case 244: /* "instance_class_function_definition" */
 
 /* Line 1009 of yacc.c  */
-#line 183 "expression.y"
+#line 184 "expression.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4208 "expression.ec"
+#line 4209 "expression.ec"
        break;
       case 245: /* "data_member_initialization" */
 
 /* Line 1009 of yacc.c  */
-#line 181 "expression.y"
+#line 182 "expression.y"
        { FreeMemberInit((yyvaluep->memberInit)); };
 
 /* Line 1009 of yacc.c  */
-#line 4217 "expression.ec"
+#line 4218 "expression.ec"
        break;
       case 246: /* "data_member_initialization_list" */
 
 /* Line 1009 of yacc.c  */
-#line 201 "expression.y"
+#line 202 "expression.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 4226 "expression.ec"
+#line 4227 "expression.ec"
        break;
       case 247: /* "data_member_initialization_list_coloned" */
 
 /* Line 1009 of yacc.c  */
-#line 201 "expression.y"
+#line 202 "expression.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 4235 "expression.ec"
+#line 4236 "expression.ec"
        break;
       case 248: /* "members_initialization_list_coloned" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "expression.y"
+#line 203 "expression.y"
        { FreeList((yyvaluep->list), FreeMembersInit); };
 
 /* Line 1009 of yacc.c  */
-#line 4244 "expression.ec"
+#line 4245 "expression.ec"
        break;
       case 249: /* "members_initialization_list" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "expression.y"
+#line 203 "expression.y"
        { FreeList((yyvaluep->list), FreeMembersInit); };
 
 /* Line 1009 of yacc.c  */
-#line 4253 "expression.ec"
+#line 4254 "expression.ec"
        break;
 
       default:
@@ -4581,175 +4582,175 @@ yyreduce:
         case 2:
 
 /* Line 1464 of yacc.c  */
-#line 215 "expression.y"
+#line 216 "expression.y"
     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 4:
 
 /* Line 1464 of yacc.c  */
-#line 221 "expression.y"
+#line 222 "expression.y"
     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 5:
 
 /* Line 1464 of yacc.c  */
-#line 226 "expression.y"
+#line 227 "expression.y"
     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 6:
 
 /* Line 1464 of yacc.c  */
-#line 228 "expression.y"
+#line 229 "expression.y"
     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 7:
 
 /* Line 1464 of yacc.c  */
-#line 230 "expression.y"
+#line 231 "expression.y"
     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 8:
 
 /* Line 1464 of yacc.c  */
-#line 231 "expression.y"
+#line 232 "expression.y"
     { (yyval.exp) = MkExpWideString(yytext); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 9:
 
 /* Line 1464 of yacc.c  */
-#line 233 "expression.y"
+#line 234 "expression.y"
     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 10:
 
 /* Line 1464 of yacc.c  */
-#line 234 "expression.y"
+#line 235 "expression.y"
     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 11:
 
 /* Line 1464 of yacc.c  */
-#line 235 "expression.y"
+#line 236 "expression.y"
     { (yyval.exp) = MkExpIntlString((yyvsp[(4) - (4)].string), (yyvsp[(2) - (4)].string)); delete (yyvsp[(2) - (4)].string); delete (yyvsp[(4) - (4)].string); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 12:
 
 /* Line 1464 of yacc.c  */
-#line 237 "expression.y"
+#line 238 "expression.y"
     { Expression exp = MkExpDummy(); exp.loc.start = (yylsp[(1) - (2)]).end; exp.loc.end = (yylsp[(2) - (2)]).start; (yyval.exp) = MkExpBrackets(MkListOne(exp)); (yyval.exp).loc = (yyloc); yyerror(); ;}
     break;
 
   case 13:
 
 /* Line 1464 of yacc.c  */
-#line 239 "expression.y"
+#line 240 "expression.y"
     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 14:
 
 /* Line 1464 of yacc.c  */
-#line 240 "expression.y"
+#line 241 "expression.y"
     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 15:
 
 /* Line 1464 of yacc.c  */
-#line 241 "expression.y"
+#line 242 "expression.y"
     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 16:
 
 /* Line 1464 of yacc.c  */
-#line 242 "expression.y"
+#line 243 "expression.y"
     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 17:
 
 /* Line 1464 of yacc.c  */
-#line 243 "expression.y"
+#line 244 "expression.y"
     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 18:
 
 /* Line 1464 of yacc.c  */
-#line 244 "expression.y"
+#line 245 "expression.y"
     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 19:
 
 /* Line 1464 of yacc.c  */
-#line 245 "expression.y"
+#line 246 "expression.y"
     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 20:
 
 /* Line 1464 of yacc.c  */
-#line 246 "expression.y"
+#line 247 "expression.y"
     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 21:
 
 /* Line 1464 of yacc.c  */
-#line 247 "expression.y"
+#line 248 "expression.y"
     { (yyval.exp) = MkExpDummy(); yyerror(); ;}
     break;
 
   case 22:
 
 /* Line 1464 of yacc.c  */
-#line 251 "expression.y"
+#line 252 "expression.y"
     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 24:
 
 /* Line 1464 of yacc.c  */
-#line 256 "expression.y"
+#line 257 "expression.y"
     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 25:
 
 /* Line 1464 of yacc.c  */
-#line 257 "expression.y"
+#line 258 "expression.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 26:
 
 /* Line 1464 of yacc.c  */
-#line 258 "expression.y"
+#line 259 "expression.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end; (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 27:
 
 /* Line 1464 of yacc.c  */
-#line 259 "expression.y"
+#line 260 "expression.y"
     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 28:
 
 /* Line 1464 of yacc.c  */
-#line 261 "expression.y"
+#line 262 "expression.y"
     {
       char * constant = (yyvsp[(1) - (2)].exp).type == constantExp ? (yyvsp[(1) - (2)].exp).constant : null;
       int len = constant ? strlen(constant) : 0;
@@ -4767,2037 +4768,2037 @@ yyreduce:
   case 29:
 
 /* Line 1464 of yacc.c  */
-#line 273 "expression.y"
+#line 274 "expression.y"
     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 30:
 
 /* Line 1464 of yacc.c  */
-#line 274 "expression.y"
+#line 275 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 31:
 
 /* Line 1464 of yacc.c  */
-#line 275 "expression.y"
+#line 276 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 32:
 
 /* Line 1464 of yacc.c  */
-#line 305 "expression.y"
+#line 306 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 33:
 
 /* Line 1464 of yacc.c  */
-#line 306 "expression.y"
+#line 307 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 34:
 
 /* Line 1464 of yacc.c  */
-#line 307 "expression.y"
+#line 308 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
     break;
 
   case 35:
 
 /* Line 1464 of yacc.c  */
-#line 308 "expression.y"
+#line 309 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
     break;
 
   case 36:
 
 /* Line 1464 of yacc.c  */
-#line 312 "expression.y"
+#line 313 "expression.y"
     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 37:
 
 /* Line 1464 of yacc.c  */
-#line 313 "expression.y"
+#line 314 "expression.y"
     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 38:
 
 /* Line 1464 of yacc.c  */
-#line 314 "expression.y"
+#line 315 "expression.y"
     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 39:
 
 /* Line 1464 of yacc.c  */
-#line 317 "expression.y"
+#line 318 "expression.y"
     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 40:
 
 /* Line 1464 of yacc.c  */
-#line 318 "expression.y"
+#line 319 "expression.y"
     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 41:
 
 /* Line 1464 of yacc.c  */
-#line 321 "expression.y"
+#line 322 "expression.y"
     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 42:
 
 /* Line 1464 of yacc.c  */
-#line 322 "expression.y"
+#line 323 "expression.y"
     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 45:
 
 /* Line 1464 of yacc.c  */
-#line 336 "expression.y"
+#line 337 "expression.y"
     { (yyval.i) = '&'; ;}
     break;
 
   case 46:
 
 /* Line 1464 of yacc.c  */
-#line 337 "expression.y"
+#line 338 "expression.y"
     { (yyval.i) = '*'; ;}
     break;
 
   case 47:
 
 /* Line 1464 of yacc.c  */
-#line 338 "expression.y"
+#line 339 "expression.y"
     { (yyval.i) = '+'; ;}
     break;
 
   case 48:
 
 /* Line 1464 of yacc.c  */
-#line 339 "expression.y"
+#line 340 "expression.y"
     { (yyval.i) = '-'; ;}
     break;
 
   case 49:
 
 /* Line 1464 of yacc.c  */
-#line 340 "expression.y"
+#line 341 "expression.y"
     { (yyval.i) = '~'; ;}
     break;
 
   case 50:
 
 /* Line 1464 of yacc.c  */
-#line 341 "expression.y"
+#line 342 "expression.y"
     { (yyval.i) = '!'; ;}
     break;
 
   case 51:
 
 /* Line 1464 of yacc.c  */
-#line 342 "expression.y"
+#line 343 "expression.y"
     { (yyval.i) = DELETE; ;}
     break;
 
   case 53:
 
 /* Line 1464 of yacc.c  */
-#line 347 "expression.y"
+#line 348 "expression.y"
     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 55:
 
 /* Line 1464 of yacc.c  */
-#line 352 "expression.y"
+#line 353 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 56:
 
 /* Line 1464 of yacc.c  */
-#line 353 "expression.y"
+#line 354 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 57:
 
 /* Line 1464 of yacc.c  */
-#line 354 "expression.y"
+#line 355 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 59:
 
 /* Line 1464 of yacc.c  */
-#line 359 "expression.y"
+#line 360 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 60:
 
 /* Line 1464 of yacc.c  */
-#line 360 "expression.y"
+#line 361 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 62:
 
 /* Line 1464 of yacc.c  */
-#line 365 "expression.y"
+#line 366 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 63:
 
 /* Line 1464 of yacc.c  */
-#line 366 "expression.y"
+#line 367 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 65:
 
 /* Line 1464 of yacc.c  */
-#line 371 "expression.y"
+#line 372 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '<', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 66:
 
 /* Line 1464 of yacc.c  */
-#line 372 "expression.y"
+#line 373 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 67:
 
 /* Line 1464 of yacc.c  */
-#line 373 "expression.y"
+#line 374 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 68:
 
 /* Line 1464 of yacc.c  */
-#line 374 "expression.y"
+#line 375 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 70:
 
 /* Line 1464 of yacc.c  */
-#line 379 "expression.y"
+#line 380 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 71:
 
 /* Line 1464 of yacc.c  */
-#line 380 "expression.y"
+#line 381 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 73:
 
 /* Line 1464 of yacc.c  */
-#line 385 "expression.y"
+#line 386 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 75:
 
 /* Line 1464 of yacc.c  */
-#line 390 "expression.y"
+#line 391 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 77:
 
 /* Line 1464 of yacc.c  */
-#line 395 "expression.y"
+#line 396 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 79:
 
 /* Line 1464 of yacc.c  */
-#line 400 "expression.y"
+#line 401 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 81:
 
 /* Line 1464 of yacc.c  */
-#line 405 "expression.y"
+#line 406 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 83:
 
 /* Line 1464 of yacc.c  */
-#line 410 "expression.y"
+#line 411 "expression.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 85:
 
 /* Line 1464 of yacc.c  */
-#line 415 "expression.y"
+#line 416 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 86:
 
 /* Line 1464 of yacc.c  */
-#line 416 "expression.y"
+#line 417 "expression.y"
     { yyerror(); (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 87:
 
 /* Line 1464 of yacc.c  */
-#line 418 "expression.y"
+#line 419 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 88:
 
 /* Line 1464 of yacc.c  */
-#line 419 "expression.y"
+#line 420 "expression.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 89:
 
 /* Line 1464 of yacc.c  */
-#line 423 "expression.y"
+#line 424 "expression.y"
     { (yyval.i) = '='; ;}
     break;
 
   case 90:
 
 /* Line 1464 of yacc.c  */
-#line 424 "expression.y"
+#line 425 "expression.y"
     { (yyval.i) = MUL_ASSIGN; ;}
     break;
 
   case 91:
 
 /* Line 1464 of yacc.c  */
-#line 425 "expression.y"
+#line 426 "expression.y"
     { (yyval.i) = DIV_ASSIGN; ;}
     break;
 
   case 92:
 
 /* Line 1464 of yacc.c  */
-#line 426 "expression.y"
+#line 427 "expression.y"
     { (yyval.i) = MOD_ASSIGN; ;}
     break;
 
   case 93:
 
 /* Line 1464 of yacc.c  */
-#line 427 "expression.y"
+#line 428 "expression.y"
     { (yyval.i) = ADD_ASSIGN; ;}
     break;
 
   case 94:
 
 /* Line 1464 of yacc.c  */
-#line 428 "expression.y"
+#line 429 "expression.y"
     { (yyval.i) = SUB_ASSIGN; ;}
     break;
 
   case 95:
 
 /* Line 1464 of yacc.c  */
-#line 429 "expression.y"
+#line 430 "expression.y"
     { (yyval.i) = LEFT_ASSIGN; ;}
     break;
 
   case 96:
 
 /* Line 1464 of yacc.c  */
-#line 430 "expression.y"
+#line 431 "expression.y"
     { (yyval.i) = RIGHT_ASSIGN; ;}
     break;
 
   case 97:
 
 /* Line 1464 of yacc.c  */
-#line 431 "expression.y"
+#line 432 "expression.y"
     { (yyval.i) = AND_ASSIGN; ;}
     break;
 
   case 98:
 
 /* Line 1464 of yacc.c  */
-#line 432 "expression.y"
+#line 433 "expression.y"
     { (yyval.i) = XOR_ASSIGN; ;}
     break;
 
   case 99:
 
 /* Line 1464 of yacc.c  */
-#line 433 "expression.y"
+#line 434 "expression.y"
     { (yyval.i) = OR_ASSIGN; ;}
     break;
 
   case 100:
 
 /* Line 1464 of yacc.c  */
-#line 437 "expression.y"
+#line 438 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 101:
 
 /* Line 1464 of yacc.c  */
-#line 438 "expression.y"
+#line 439 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 103:
 
 /* Line 1464 of yacc.c  */
-#line 446 "expression.y"
+#line 447 "expression.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 104:
 
 /* Line 1464 of yacc.c  */
-#line 447 "expression.y"
+#line 448 "expression.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 105:
 
 /* Line 1464 of yacc.c  */
-#line 448 "expression.y"
+#line 449 "expression.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 106:
 
 /* Line 1464 of yacc.c  */
-#line 449 "expression.y"
+#line 450 "expression.y"
     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 107:
 
 /* Line 1464 of yacc.c  */
-#line 453 "expression.y"
+#line 454 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 108:
 
 /* Line 1464 of yacc.c  */
-#line 454 "expression.y"
+#line 455 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 109:
 
 /* Line 1464 of yacc.c  */
-#line 455 "expression.y"
+#line 456 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 110:
 
 /* Line 1464 of yacc.c  */
-#line 456 "expression.y"
+#line 457 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 111:
 
 /* Line 1464 of yacc.c  */
-#line 457 "expression.y"
+#line 458 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 112:
 
 /* Line 1464 of yacc.c  */
-#line 458 "expression.y"
+#line 459 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 113:
 
 /* Line 1464 of yacc.c  */
-#line 459 "expression.y"
+#line 460 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 114:
 
 /* Line 1464 of yacc.c  */
-#line 460 "expression.y"
+#line 461 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 115:
 
 /* Line 1464 of yacc.c  */
-#line 464 "expression.y"
+#line 465 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 116:
 
 /* Line 1464 of yacc.c  */
-#line 465 "expression.y"
+#line 466 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 117:
 
 /* Line 1464 of yacc.c  */
-#line 466 "expression.y"
+#line 467 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 118:
 
 /* Line 1464 of yacc.c  */
-#line 467 "expression.y"
+#line 468 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 119:
 
 /* Line 1464 of yacc.c  */
-#line 468 "expression.y"
+#line 469 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 120:
 
 /* Line 1464 of yacc.c  */
-#line 469 "expression.y"
+#line 470 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 121:
 
 /* Line 1464 of yacc.c  */
-#line 470 "expression.y"
+#line 471 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 122:
 
 /* Line 1464 of yacc.c  */
-#line 471 "expression.y"
+#line 472 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 123:
 
 /* Line 1464 of yacc.c  */
-#line 472 "expression.y"
+#line 473 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 124:
 
 /* Line 1464 of yacc.c  */
-#line 473 "expression.y"
+#line 474 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 125:
 
 /* Line 1464 of yacc.c  */
-#line 478 "expression.y"
+#line 479 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 126:
 
 /* Line 1464 of yacc.c  */
-#line 479 "expression.y"
+#line 480 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 127:
 
 /* Line 1464 of yacc.c  */
-#line 480 "expression.y"
+#line 481 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 128:
 
 /* Line 1464 of yacc.c  */
-#line 481 "expression.y"
+#line 482 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 129:
 
 /* Line 1464 of yacc.c  */
-#line 482 "expression.y"
+#line 483 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 130:
 
 /* Line 1464 of yacc.c  */
-#line 483 "expression.y"
+#line 484 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 131:
 
 /* Line 1464 of yacc.c  */
-#line 484 "expression.y"
+#line 485 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 132:
 
 /* Line 1464 of yacc.c  */
-#line 485 "expression.y"
+#line 486 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 133:
 
 /* Line 1464 of yacc.c  */
-#line 489 "expression.y"
+#line 490 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 134:
 
 /* Line 1464 of yacc.c  */
-#line 490 "expression.y"
+#line 491 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 135:
 
 /* Line 1464 of yacc.c  */
-#line 491 "expression.y"
+#line 492 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 136:
 
 /* Line 1464 of yacc.c  */
-#line 492 "expression.y"
+#line 493 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 137:
 
 /* Line 1464 of yacc.c  */
-#line 493 "expression.y"
+#line 494 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 138:
 
 /* Line 1464 of yacc.c  */
-#line 494 "expression.y"
+#line 495 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 139:
 
 /* Line 1464 of yacc.c  */
-#line 495 "expression.y"
+#line 496 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 140:
 
 /* Line 1464 of yacc.c  */
-#line 496 "expression.y"
+#line 497 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 141:
 
 /* Line 1464 of yacc.c  */
-#line 497 "expression.y"
+#line 498 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 142:
 
 /* Line 1464 of yacc.c  */
-#line 498 "expression.y"
+#line 499 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 143:
 
 /* Line 1464 of yacc.c  */
-#line 502 "expression.y"
+#line 503 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
     break;
 
   case 144:
 
 /* Line 1464 of yacc.c  */
-#line 503 "expression.y"
+#line 504 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 145:
 
 /* Line 1464 of yacc.c  */
-#line 507 "expression.y"
+#line 508 "expression.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
     break;
 
   case 146:
 
 /* Line 1464 of yacc.c  */
-#line 508 "expression.y"
+#line 509 "expression.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
     break;
 
   case 147:
 
 /* Line 1464 of yacc.c  */
-#line 512 "expression.y"
+#line 513 "expression.y"
     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
     break;
 
   case 148:
 
 /* Line 1464 of yacc.c  */
-#line 513 "expression.y"
+#line 514 "expression.y"
     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
     break;
 
   case 149:
 
 /* Line 1464 of yacc.c  */
-#line 514 "expression.y"
+#line 515 "expression.y"
     { (yyval.specifier) = MkSpecifier(STATIC); ;}
     break;
 
   case 150:
 
 /* Line 1464 of yacc.c  */
-#line 515 "expression.y"
+#line 516 "expression.y"
     { (yyval.specifier) = MkSpecifier(AUTO); ;}
     break;
 
   case 151:
 
 /* Line 1464 of yacc.c  */
-#line 516 "expression.y"
+#line 517 "expression.y"
     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
     break;
 
   case 152:
 
 /* Line 1464 of yacc.c  */
-#line 517 "expression.y"
+#line 518 "expression.y"
     { (yyval.specifier) = MkSpecifier(THREAD); ;}
     break;
 
   case 153:
 
 /* Line 1464 of yacc.c  */
-#line 521 "expression.y"
+#line 522 "expression.y"
     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
     break;
 
   case 154:
 
 /* Line 1464 of yacc.c  */
-#line 522 "expression.y"
+#line 523 "expression.y"
     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
     break;
 
   case 155:
 
 /* Line 1464 of yacc.c  */
-#line 526 "expression.y"
+#line 527 "expression.y"
     { (yyval.i) = ATTRIB; ;}
     break;
 
   case 156:
 
 /* Line 1464 of yacc.c  */
-#line 527 "expression.y"
+#line 528 "expression.y"
     { (yyval.i) = ATTRIB_DEP; ;}
     break;
 
   case 157:
 
 /* Line 1464 of yacc.c  */
-#line 528 "expression.y"
+#line 529 "expression.y"
     { (yyval.i) = __ATTRIB; ;}
     break;
 
   case 158:
 
 /* Line 1464 of yacc.c  */
-#line 533 "expression.y"
+#line 534 "expression.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 159:
 
 /* Line 1464 of yacc.c  */
-#line 534 "expression.y"
+#line 535 "expression.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 160:
 
 /* Line 1464 of yacc.c  */
-#line 535 "expression.y"
+#line 536 "expression.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 161:
 
 /* Line 1464 of yacc.c  */
-#line 536 "expression.y"
+#line 537 "expression.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 162:
 
 /* Line 1464 of yacc.c  */
-#line 537 "expression.y"
+#line 538 "expression.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 163:
 
 /* Line 1464 of yacc.c  */
-#line 541 "expression.y"
+#line 542 "expression.y"
     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
     break;
 
   case 164:
 
 /* Line 1464 of yacc.c  */
-#line 542 "expression.y"
+#line 543 "expression.y"
     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
     break;
 
   case 165:
 
 /* Line 1464 of yacc.c  */
-#line 546 "expression.y"
+#line 547 "expression.y"
     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
     break;
 
   case 166:
 
 /* Line 1464 of yacc.c  */
-#line 547 "expression.y"
+#line 548 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 167:
 
 /* Line 1464 of yacc.c  */
-#line 548 "expression.y"
+#line 549 "expression.y"
     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 168:
 
 /* Line 1464 of yacc.c  */
-#line 552 "expression.y"
+#line 553 "expression.y"
     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
     break;
 
   case 169:
 
 /* Line 1464 of yacc.c  */
-#line 553 "expression.y"
+#line 554 "expression.y"
     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
     break;
 
   case 170:
 
 /* Line 1464 of yacc.c  */
-#line 557 "expression.y"
+#line 558 "expression.y"
     { (yyval.specifier) = MkSpecifier(CONST); ;}
     break;
 
   case 171:
 
 /* Line 1464 of yacc.c  */
-#line 558 "expression.y"
+#line 559 "expression.y"
     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
     break;
 
   case 172:
 
 /* Line 1464 of yacc.c  */
-#line 559 "expression.y"
+#line 560 "expression.y"
     { (yyval.specifier) = MkSpecifierExtended(MkExtDeclString(CopyString(yytext))); ;}
     break;
 
   case 173:
 
 /* Line 1464 of yacc.c  */
-#line 563 "expression.y"
+#line 564 "expression.y"
     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
     break;
 
   case 174:
 
 /* Line 1464 of yacc.c  */
-#line 588 "expression.y"
+#line 589 "expression.y"
     { (yyval.specifier) = MkSpecifierName(yytext); ;}
     break;
 
   case 175:
 
 /* Line 1464 of yacc.c  */
-#line 592 "expression.y"
+#line 593 "expression.y"
     { (yyval.specifier) = MkSpecifier(VOID); ;}
     break;
 
   case 176:
 
 /* Line 1464 of yacc.c  */
-#line 593 "expression.y"
+#line 594 "expression.y"
     { (yyval.specifier) = MkSpecifier(CHAR); ;}
     break;
 
   case 177:
 
 /* Line 1464 of yacc.c  */
-#line 594 "expression.y"
+#line 595 "expression.y"
     { (yyval.specifier) = MkSpecifier(SHORT); ;}
     break;
 
   case 178:
 
 /* Line 1464 of yacc.c  */
-#line 595 "expression.y"
+#line 596 "expression.y"
     { (yyval.specifier) = MkSpecifier(INT); ;}
     break;
 
   case 179:
 
 /* Line 1464 of yacc.c  */
-#line 596 "expression.y"
+#line 597 "expression.y"
     { (yyval.specifier) = MkSpecifier(UINT); ;}
     break;
 
   case 180:
 
 /* Line 1464 of yacc.c  */
-#line 597 "expression.y"
+#line 598 "expression.y"
     { (yyval.specifier) = MkSpecifier(INT64); ;}
     break;
 
   case 181:
 
 /* Line 1464 of yacc.c  */
-#line 598 "expression.y"
+#line 599 "expression.y"
     { (yyval.specifier) = MkSpecifier(VALIST); ;}
     break;
 
   case 182:
 
 /* Line 1464 of yacc.c  */
-#line 599 "expression.y"
+#line 600 "expression.y"
     { (yyval.specifier) = MkSpecifier(LONG); ;}
     break;
 
   case 183:
 
 /* Line 1464 of yacc.c  */
-#line 600 "expression.y"
+#line 601 "expression.y"
     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
     break;
 
   case 184:
 
 /* Line 1464 of yacc.c  */
-#line 601 "expression.y"
+#line 602 "expression.y"
     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
     break;
 
   case 185:
 
 /* Line 1464 of yacc.c  */
-#line 602 "expression.y"
+#line 603 "expression.y"
     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
     break;
 
   case 186:
 
 /* Line 1464 of yacc.c  */
-#line 603 "expression.y"
+#line 604 "expression.y"
     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
     break;
 
   case 187:
 
 /* Line 1464 of yacc.c  */
-#line 604 "expression.y"
+#line 605 "expression.y"
     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
     break;
 
   case 188:
 
 /* Line 1464 of yacc.c  */
-#line 605 "expression.y"
+#line 606 "expression.y"
     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
     break;
 
   case 189:
 
 /* Line 1464 of yacc.c  */
-#line 606 "expression.y"
+#line 607 "expression.y"
     { (yyval.specifier) = MkSpecifier(BOOL); ;}
     break;
 
   case 193:
 
 /* Line 1464 of yacc.c  */
-#line 610 "expression.y"
+#line 611 "expression.y"
     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 194:
 
 /* Line 1464 of yacc.c  */
-#line 611 "expression.y"
+#line 612 "expression.y"
     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
     break;
 
   case 195:
 
 /* Line 1464 of yacc.c  */
-#line 615 "expression.y"
+#line 616 "expression.y"
     { (yyval.specifier) = MkSpecifier(VOID); ;}
     break;
 
   case 196:
 
 /* Line 1464 of yacc.c  */
-#line 616 "expression.y"
+#line 617 "expression.y"
     { (yyval.specifier) = MkSpecifier(CHAR); ;}
     break;
 
   case 197:
 
 /* Line 1464 of yacc.c  */
-#line 617 "expression.y"
+#line 618 "expression.y"
     { (yyval.specifier) = MkSpecifier(SHORT); ;}
     break;
 
   case 198:
 
 /* Line 1464 of yacc.c  */
-#line 618 "expression.y"
+#line 619 "expression.y"
     { (yyval.specifier) = MkSpecifier(INT); ;}
     break;
 
   case 199:
 
 /* Line 1464 of yacc.c  */
-#line 619 "expression.y"
+#line 620 "expression.y"
     { (yyval.specifier) = MkSpecifier(UINT); ;}
     break;
 
   case 200:
 
 /* Line 1464 of yacc.c  */
-#line 620 "expression.y"
+#line 621 "expression.y"
     { (yyval.specifier) = MkSpecifier(INT64); ;}
     break;
 
   case 201:
 
 /* Line 1464 of yacc.c  */
-#line 621 "expression.y"
+#line 622 "expression.y"
     { (yyval.specifier) = MkSpecifier(VALIST); ;}
     break;
 
   case 202:
 
 /* Line 1464 of yacc.c  */
-#line 622 "expression.y"
+#line 623 "expression.y"
     { (yyval.specifier) = MkSpecifier(LONG); ;}
     break;
 
   case 203:
 
 /* Line 1464 of yacc.c  */
-#line 623 "expression.y"
+#line 624 "expression.y"
     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
     break;
 
   case 204:
 
 /* Line 1464 of yacc.c  */
-#line 624 "expression.y"
+#line 625 "expression.y"
     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
     break;
 
   case 205:
 
 /* Line 1464 of yacc.c  */
-#line 625 "expression.y"
+#line 626 "expression.y"
     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
     break;
 
   case 206:
 
 /* Line 1464 of yacc.c  */
-#line 626 "expression.y"
+#line 627 "expression.y"
     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
     break;
 
   case 207:
 
 /* Line 1464 of yacc.c  */
-#line 627 "expression.y"
+#line 628 "expression.y"
     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
     break;
 
   case 208:
 
 /* Line 1464 of yacc.c  */
-#line 628 "expression.y"
+#line 629 "expression.y"
     { (yyval.specifier) = MkSpecifier(BOOL); ;}
     break;
 
   case 212:
 
 /* Line 1464 of yacc.c  */
-#line 632 "expression.y"
+#line 633 "expression.y"
     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 213:
 
 /* Line 1464 of yacc.c  */
-#line 633 "expression.y"
+#line 634 "expression.y"
     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
     break;
 
   case 214:
 
 /* Line 1464 of yacc.c  */
-#line 638 "expression.y"
+#line 639 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string); ;}
     break;
 
   case 215:
 
 /* Line 1464 of yacc.c  */
-#line 639 "expression.y"
+#line 640 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 216:
 
 /* Line 1464 of yacc.c  */
-#line 640 "expression.y"
+#line 641 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), (yyvsp[(2) - (4)].id), null); if(declMode) DeclClass((yyvsp[(2) - (4)].id)._class, (yyvsp[(2) - (4)].id).string); ;}
     break;
 
   case 217:
 
 /* Line 1464 of yacc.c  */
-#line 641 "expression.y"
+#line 642 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); ;}
     break;
 
   case 218:
 
 /* Line 1464 of yacc.c  */
-#line 643 "expression.y"
+#line 644 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].specifier).nsSpec, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
     break;
 
   case 219:
 
 /* Line 1464 of yacc.c  */
-#line 645 "expression.y"
+#line 646 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (6)].specifierType), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (6)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (6)].id)._class, (yyvsp[(3) - (6)].id).string); ;}
     break;
 
   case 220:
 
 /* Line 1464 of yacc.c  */
-#line 646 "expression.y"
+#line 647 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), null, (yyvsp[(4) - (5)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); ;}
     break;
 
   case 221:
 
 /* Line 1464 of yacc.c  */
-#line 647 "expression.y"
+#line 648 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(3) - (5)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (5)].id)._class, (yyvsp[(3) - (5)].id).string); ;}
     break;
 
   case 222:
 
 /* Line 1464 of yacc.c  */
-#line 648 "expression.y"
+#line 649 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); ;}
     break;
 
   case 223:
 
 /* Line 1464 of yacc.c  */
-#line 650 "expression.y"
+#line 651 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (6)].specifierType), MkIdentifier((yyvsp[(3) - (6)].specifier).name), (yyvsp[(5) - (6)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (6)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (6)].specifier).nsSpec, (yyvsp[(3) - (6)].specifier).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); ;}
     break;
 
   case 224:
 
 /* Line 1464 of yacc.c  */
-#line 654 "expression.y"
+#line 655 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null); if(declMode) DeclClass((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ;}
     break;
 
   case 225:
 
 /* Line 1464 of yacc.c  */
-#line 656 "expression.y"
+#line 657 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 226:
 
 /* Line 1464 of yacc.c  */
-#line 659 "expression.y"
+#line 660 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), (yyvsp[(3) - (3)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl);if(declMode) DeclClass((yyvsp[(3) - (3)].id)._class, (yyvsp[(3) - (3)].id).string); ;}
     break;
 
   case 227:
 
 /* Line 1464 of yacc.c  */
-#line 661 "expression.y"
+#line 662 "expression.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), MkIdentifier((yyvsp[(3) - (3)].specifier).name), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (3)].specifier).nsSpec, (yyvsp[(3) - (3)].specifier).name); FreeSpecifier((yyvsp[(3) - (3)].specifier)); ;}
     break;
 
   case 228:
 
 /* Line 1464 of yacc.c  */
-#line 665 "expression.y"
+#line 666 "expression.y"
     { (yyval.specifierType) = structSpecifier; ;}
     break;
 
   case 229:
 
 /* Line 1464 of yacc.c  */
-#line 666 "expression.y"
+#line 667 "expression.y"
     { (yyval.specifierType) = unionSpecifier; ;}
     break;
 
   case 230:
 
 /* Line 1464 of yacc.c  */
-#line 670 "expression.y"
+#line 671 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
     break;
 
   case 231:
 
 /* Line 1464 of yacc.c  */
-#line 671 "expression.y"
+#line 672 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
     break;
 
   case 232:
 
 /* Line 1464 of yacc.c  */
-#line 675 "expression.y"
+#line 676 "expression.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
     break;
 
   case 233:
 
 /* Line 1464 of yacc.c  */
-#line 679 "expression.y"
+#line 680 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
     break;
 
   case 234:
 
 /* Line 1464 of yacc.c  */
-#line 680 "expression.y"
+#line 681 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); ;}
     break;
 
   case 235:
 
 /* Line 1464 of yacc.c  */
-#line 685 "expression.y"
+#line 686 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 236:
 
 /* Line 1464 of yacc.c  */
-#line 687 "expression.y"
+#line 688 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 237:
 
 /* Line 1464 of yacc.c  */
-#line 689 "expression.y"
+#line 690 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 238:
 
 /* Line 1464 of yacc.c  */
-#line 691 "expression.y"
+#line 692 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 239:
 
 /* Line 1464 of yacc.c  */
-#line 693 "expression.y"
+#line 694 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), null, (yyvsp[(3) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 240:
 
 /* Line 1464 of yacc.c  */
-#line 696 "expression.y"
+#line 697 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (10)].list), (yyvsp[(3) - (10)].declarator), (yyvsp[(4) - (10)].id), (yyvsp[(7) - (10)].stmt), (yyvsp[(9) - (10)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 241:
 
 /* Line 1464 of yacc.c  */
-#line 698 "expression.y"
+#line 699 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (10)].list), (yyvsp[(3) - (10)].declarator), (yyvsp[(4) - (10)].id), (yyvsp[(9) - (10)].stmt), (yyvsp[(7) - (10)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 242:
 
 /* Line 1464 of yacc.c  */
-#line 700 "expression.y"
+#line 701 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), (yyvsp[(7) - (8)].stmt), null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 243:
 
 /* Line 1464 of yacc.c  */
-#line 702 "expression.y"
+#line 703 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), null, (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 244:
 
 /* Line 1464 of yacc.c  */
-#line 704 "expression.y"
+#line 705 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), (yyvsp[(3) - (6)].declarator), (yyvsp[(4) - (6)].id), null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 245:
 
 /* Line 1464 of yacc.c  */
-#line 707 "expression.y"
+#line 708 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(5) - (8)].stmt), (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 246:
 
 /* Line 1464 of yacc.c  */
-#line 709 "expression.y"
+#line 710 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(7) - (8)].stmt), (yyvsp[(5) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 247:
 
 /* Line 1464 of yacc.c  */
-#line 711 "expression.y"
+#line 712 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, (yyvsp[(5) - (6)].stmt), null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 248:
 
 /* Line 1464 of yacc.c  */
-#line 713 "expression.y"
+#line 714 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, null, (yyvsp[(5) - (6)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 249:
 
 /* Line 1464 of yacc.c  */
-#line 715 "expression.y"
+#line 716 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 250:
 
 /* Line 1464 of yacc.c  */
-#line 718 "expression.y"
+#line 719 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 251:
 
 /* Line 1464 of yacc.c  */
-#line 720 "expression.y"
+#line 721 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 252:
 
 /* Line 1464 of yacc.c  */
-#line 722 "expression.y"
+#line 723 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 253:
 
 /* Line 1464 of yacc.c  */
-#line 724 "expression.y"
+#line 725 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 254:
 
 /* Line 1464 of yacc.c  */
-#line 726 "expression.y"
+#line 727 "expression.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 255:
 
 /* Line 1464 of yacc.c  */
-#line 730 "expression.y"
+#line 731 "expression.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 256:
 
 /* Line 1464 of yacc.c  */
-#line 731 "expression.y"
+#line 732 "expression.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 257:
 
 /* Line 1464 of yacc.c  */
-#line 732 "expression.y"
+#line 733 "expression.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
     break;
 
   case 258:
 
 /* Line 1464 of yacc.c  */
-#line 733 "expression.y"
+#line 734 "expression.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
     break;
 
   case 259:
 
 /* Line 1464 of yacc.c  */
-#line 734 "expression.y"
+#line 735 "expression.y"
     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 260:
 
 /* Line 1464 of yacc.c  */
-#line 735 "expression.y"
+#line 736 "expression.y"
     { (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[(1) - (2)].list)); if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).start; (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 261:
 
 /* Line 1464 of yacc.c  */
-#line 736 "expression.y"
+#line 737 "expression.y"
     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 262:
 
 /* Line 1464 of yacc.c  */
-#line 737 "expression.y"
+#line 738 "expression.y"
     { (yyval.classDef) = null; ;}
     break;
 
   case 263:
 
 /* Line 1464 of yacc.c  */
-#line 742 "expression.y"
+#line 743 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
     break;
 
   case 264:
 
 /* Line 1464 of yacc.c  */
-#line 744 "expression.y"
+#line 745 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
     break;
 
   case 265:
 
 /* Line 1464 of yacc.c  */
-#line 749 "expression.y"
+#line 750 "expression.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 266:
 
 /* Line 1464 of yacc.c  */
-#line 751 "expression.y"
+#line 752 "expression.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 267:
 
 /* Line 1464 of yacc.c  */
-#line 753 "expression.y"
+#line 754 "expression.y"
     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 268:
 
 /* Line 1464 of yacc.c  */
-#line 755 "expression.y"
+#line 756 "expression.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 269:
 
 /* Line 1464 of yacc.c  */
-#line 757 "expression.y"
+#line 758 "expression.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 270:
 
 /* Line 1464 of yacc.c  */
-#line 761 "expression.y"
+#line 762 "expression.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); if(declMode) DeclClass((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ;}
     break;
 
   case 271:
 
 /* Line 1464 of yacc.c  */
-#line 762 "expression.y"
+#line 763 "expression.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 272:
 
 /* Line 1464 of yacc.c  */
-#line 767 "expression.y"
+#line 768 "expression.y"
     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 273:
 
 /* Line 1464 of yacc.c  */
-#line 768 "expression.y"
+#line 769 "expression.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string); ;}
     break;
 
   case 274:
 
 /* Line 1464 of yacc.c  */
-#line 769 "expression.y"
+#line 770 "expression.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (7)].id), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass((yyvsp[(2) - (7)].id)._class, (yyvsp[(2) - (7)].id).string); ;}
     break;
 
   case 275:
 
 /* Line 1464 of yacc.c  */
-#line 770 "expression.y"
+#line 771 "expression.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (7)].specifier).name), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass((yyvsp[(2) - (7)].specifier).nsSpec, (yyvsp[(2) - (7)].specifier).name); FreeSpecifier((yyvsp[(2) - (7)].specifier)); ;}
     break;
 
   case 276:
 
 /* Line 1464 of yacc.c  */
-#line 771 "expression.y"
+#line 772 "expression.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].specifier).nsSpec, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
     break;
 
   case 277:
 
 /* Line 1464 of yacc.c  */
-#line 776 "expression.y"
+#line 777 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
     break;
 
   case 278:
 
 /* Line 1464 of yacc.c  */
-#line 778 "expression.y"
+#line 779 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
     break;
 
   case 279:
 
 /* Line 1464 of yacc.c  */
-#line 783 "expression.y"
+#line 784 "expression.y"
     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
     break;
 
   case 280:
 
 /* Line 1464 of yacc.c  */
-#line 785 "expression.y"
+#line 786 "expression.y"
     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 281:
 
 /* Line 1464 of yacc.c  */
-#line 791 "expression.y"
+#line 792 "expression.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 282:
 
 /* Line 1464 of yacc.c  */
-#line 793 "expression.y"
+#line 794 "expression.y"
     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
     break;
 
   case 283:
 
 /* Line 1464 of yacc.c  */
-#line 795 "expression.y"
+#line 796 "expression.y"
     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
     break;
 
   case 284:
 
 /* Line 1464 of yacc.c  */
-#line 797 "expression.y"
+#line 798 "expression.y"
     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
     break;
 
   case 285:
 
 /* Line 1464 of yacc.c  */
-#line 799 "expression.y"
+#line 800 "expression.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 286:
 
 /* Line 1464 of yacc.c  */
-#line 801 "expression.y"
+#line 802 "expression.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 287:
 
 /* Line 1464 of yacc.c  */
-#line 803 "expression.y"
+#line 804 "expression.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 288:
 
 /* Line 1464 of yacc.c  */
-#line 805 "expression.y"
+#line 806 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
     break;
 
   case 289:
 
 /* Line 1464 of yacc.c  */
-#line 807 "expression.y"
+#line 808 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 290:
 
 /* Line 1464 of yacc.c  */
-#line 809 "expression.y"
+#line 810 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 291:
 
 /* Line 1464 of yacc.c  */
-#line 811 "expression.y"
+#line 812 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 292:
 
 /* Line 1464 of yacc.c  */
-#line 816 "expression.y"
+#line 817 "expression.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 293:
 
 /* Line 1464 of yacc.c  */
-#line 818 "expression.y"
+#line 819 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
     break;
 
   case 294:
 
 /* Line 1464 of yacc.c  */
-#line 820 "expression.y"
+#line 821 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 295:
 
 /* Line 1464 of yacc.c  */
-#line 822 "expression.y"
+#line 823 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 296:
 
 /* Line 1464 of yacc.c  */
-#line 824 "expression.y"
+#line 825 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 297:
 
 /* Line 1464 of yacc.c  */
-#line 828 "expression.y"
+#line 829 "expression.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
     break;
 
   case 299:
 
 /* Line 1464 of yacc.c  */
-#line 830 "expression.y"
+#line 831 "expression.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 300:
 
 /* Line 1464 of yacc.c  */
-#line 831 "expression.y"
+#line 832 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
     break;
 
   case 301:
 
 /* Line 1464 of yacc.c  */
-#line 832 "expression.y"
+#line 833 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 302:
 
 /* Line 1464 of yacc.c  */
-#line 833 "expression.y"
+#line 834 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 303:
 
 /* Line 1464 of yacc.c  */
-#line 837 "expression.y"
+#line 838 "expression.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
     break;
 
   case 305:
 
 /* Line 1464 of yacc.c  */
-#line 839 "expression.y"
+#line 840 "expression.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 306:
 
 /* Line 1464 of yacc.c  */
-#line 840 "expression.y"
+#line 841 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
     break;
 
   case 307:
 
 /* Line 1464 of yacc.c  */
-#line 841 "expression.y"
+#line 842 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 308:
 
 /* Line 1464 of yacc.c  */
-#line 842 "expression.y"
+#line 843 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 310:
 
 /* Line 1464 of yacc.c  */
-#line 890 "expression.y"
+#line 891 "expression.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 311:
 
 /* Line 1464 of yacc.c  */
-#line 892 "expression.y"
+#line 893 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 312:
 
 /* Line 1464 of yacc.c  */
-#line 898 "expression.y"
+#line 899 "expression.y"
     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
     break;
 
   case 313:
 
 /* Line 1464 of yacc.c  */
-#line 900 "expression.y"
+#line 901 "expression.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 314:
 
 /* Line 1464 of yacc.c  */
-#line 902 "expression.y"
+#line 903 "expression.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 315:
 
 /* Line 1464 of yacc.c  */
-#line 904 "expression.y"
+#line 905 "expression.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 316:
 
 /* Line 1464 of yacc.c  */
-#line 906 "expression.y"
+#line 907 "expression.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 318:
 
 /* Line 1464 of yacc.c  */
-#line 912 "expression.y"
+#line 913 "expression.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 319:
 
 /* Line 1464 of yacc.c  */
-#line 915 "expression.y"
+#line 916 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 320:
 
 /* Line 1464 of yacc.c  */
-#line 917 "expression.y"
+#line 918 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 321:
 
 /* Line 1464 of yacc.c  */
-#line 919 "expression.y"
+#line 920 "expression.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 324:
 
 /* Line 1464 of yacc.c  */
-#line 927 "expression.y"
+#line 928 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 325:
 
 /* Line 1464 of yacc.c  */
-#line 929 "expression.y"
+#line 930 "expression.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 327:
 
 /* Line 1464 of yacc.c  */
-#line 938 "expression.y"
+#line 939 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 328:
 
 /* Line 1464 of yacc.c  */
-#line 940 "expression.y"
+#line 941 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 329:
 
 /* Line 1464 of yacc.c  */
-#line 942 "expression.y"
+#line 943 "expression.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
     break;
 
   case 330:
 
 /* Line 1464 of yacc.c  */
-#line 946 "expression.y"
+#line 947 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 331:
 
 /* Line 1464 of yacc.c  */
-#line 947 "expression.y"
+#line 948 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
     break;
 
   case 332:
 
 /* Line 1464 of yacc.c  */
-#line 951 "expression.y"
+#line 952 "expression.y"
     { (yyval.pointer) = MkPointer(null, null); ;}
     break;
 
   case 333:
 
 /* Line 1464 of yacc.c  */
-#line 952 "expression.y"
+#line 953 "expression.y"
     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
     break;
 
   case 334:
 
 /* Line 1464 of yacc.c  */
-#line 953 "expression.y"
+#line 954 "expression.y"
     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
     break;
 
   case 335:
 
 /* Line 1464 of yacc.c  */
-#line 954 "expression.y"
+#line 955 "expression.y"
     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
     break;
 
   case 337:
 
 /* Line 1464 of yacc.c  */
-#line 959 "expression.y"
+#line 960 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 338:
 
 /* Line 1464 of yacc.c  */
-#line 963 "expression.y"
+#line 964 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
     break;
 
   case 339:
 
 /* Line 1464 of yacc.c  */
-#line 964 "expression.y"
+#line 965 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 340:
 
 /* Line 1464 of yacc.c  */
-#line 968 "expression.y"
+#line 969 "expression.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 341:
 
 /* Line 1464 of yacc.c  */
-#line 969 "expression.y"
+#line 970 "expression.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 342:
 
 /* Line 1464 of yacc.c  */
-#line 970 "expression.y"
+#line 971 "expression.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 343:
 
 /* Line 1464 of yacc.c  */
-#line 974 "expression.y"
+#line 975 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
     break;
 
   case 344:
 
 /* Line 1464 of yacc.c  */
-#line 975 "expression.y"
+#line 976 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
     break;
 
   case 345:
 
 /* Line 1464 of yacc.c  */
-#line 979 "expression.y"
+#line 980 "expression.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 346:
 
 /* Line 1464 of yacc.c  */
-#line 980 "expression.y"
+#line 981 "expression.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 347:
 
 /* Line 1464 of yacc.c  */
-#line 990 "expression.y"
+#line 991 "expression.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 348:
 
 /* Line 1464 of yacc.c  */
-#line 992 "expression.y"
+#line 993 "expression.y"
     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 349:
 
 /* Line 1464 of yacc.c  */
-#line 994 "expression.y"
+#line 995 "expression.y"
     {
          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list));
          (yyval.initializer).loc = (yyloc);
@@ -6815,119 +6816,119 @@ yyreduce:
   case 350:
 
 /* Line 1464 of yacc.c  */
-#line 1009 "expression.y"
+#line 1010 "expression.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 351:
 
 /* Line 1464 of yacc.c  */
-#line 1011 "expression.y"
+#line 1012 "expression.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 352:
 
 /* Line 1464 of yacc.c  */
-#line 1032 "expression.y"
+#line 1033 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
     break;
 
   case 353:
 
 /* Line 1464 of yacc.c  */
-#line 1034 "expression.y"
+#line 1035 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
     break;
 
   case 360:
 
 /* Line 1464 of yacc.c  */
-#line 1048 "expression.y"
+#line 1049 "expression.y"
     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 361:
 
 /* Line 1464 of yacc.c  */
-#line 1050 "expression.y"
+#line 1051 "expression.y"
     { (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 362:
 
 /* Line 1464 of yacc.c  */
-#line 1052 "expression.y"
+#line 1053 "expression.y"
     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 363:
 
 /* Line 1464 of yacc.c  */
-#line 1056 "expression.y"
+#line 1057 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
     break;
 
   case 364:
 
 /* Line 1464 of yacc.c  */
-#line 1057 "expression.y"
+#line 1058 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
     break;
 
   case 365:
 
 /* Line 1464 of yacc.c  */
-#line 1061 "expression.y"
+#line 1062 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
     break;
 
   case 366:
 
 /* Line 1464 of yacc.c  */
-#line 1062 "expression.y"
+#line 1063 "expression.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 367:
 
 /* Line 1464 of yacc.c  */
-#line 1065 "expression.y"
+#line 1066 "expression.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); /*yyerror(); */ ListAdd((yyvsp[(1) - (2)].list), stmt); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 368:
 
 /* Line 1464 of yacc.c  */
-#line 1069 "expression.y"
+#line 1070 "expression.y"
     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
     break;
 
   case 369:
 
 /* Line 1464 of yacc.c  */
-#line 1070 "expression.y"
+#line 1071 "expression.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 370:
 
 /* Line 1464 of yacc.c  */
-#line 1071 "expression.y"
+#line 1072 "expression.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 371:
 
 /* Line 1464 of yacc.c  */
-#line 1075 "expression.y"
+#line 1076 "expression.y"
     { (yyval.context) = PushContext(); ;}
     break;
 
   case 372:
 
 /* Line 1464 of yacc.c  */
-#line 1080 "expression.y"
+#line 1081 "expression.y"
     {
       (yyval.stmt) = MkCompoundStmt(null, null);
       (yyval.stmt).compound.context = PushContext();
@@ -6939,385 +6940,385 @@ yyreduce:
   case 373:
 
 /* Line 1464 of yacc.c  */
-#line 1088 "expression.y"
+#line 1089 "expression.y"
     { (yyval.stmt) = (yyvsp[(2) - (3)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (3)].context); PopContext((yyvsp[(1) - (3)].context)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 374:
 
 /* Line 1464 of yacc.c  */
-#line 1092 "expression.y"
+#line 1093 "expression.y"
     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 375:
 
 /* Line 1464 of yacc.c  */
-#line 1093 "expression.y"
+#line 1094 "expression.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 376:
 
 /* Line 1464 of yacc.c  */
-#line 1097 "expression.y"
+#line 1098 "expression.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 377:
 
 /* Line 1464 of yacc.c  */
-#line 1098 "expression.y"
+#line 1099 "expression.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 378:
 
 /* Line 1464 of yacc.c  */
-#line 1099 "expression.y"
+#line 1100 "expression.y"
     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 379:
 
 /* Line 1464 of yacc.c  */
-#line 1103 "expression.y"
+#line 1104 "expression.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 380:
 
 /* Line 1464 of yacc.c  */
-#line 1104 "expression.y"
+#line 1105 "expression.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 381:
 
 /* Line 1464 of yacc.c  */
-#line 1105 "expression.y"
+#line 1106 "expression.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 382:
 
 /* Line 1464 of yacc.c  */
-#line 1106 "expression.y"
+#line 1107 "expression.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 383:
 
 /* Line 1464 of yacc.c  */
-#line 1108 "expression.y"
+#line 1109 "expression.y"
     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 384:
 
 /* Line 1464 of yacc.c  */
-#line 1109 "expression.y"
+#line 1110 "expression.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 385:
 
 /* Line 1464 of yacc.c  */
-#line 1110 "expression.y"
+#line 1111 "expression.y"
     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 386:
 
 /* Line 1464 of yacc.c  */
-#line 1114 "expression.y"
+#line 1115 "expression.y"
     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 387:
 
 /* Line 1464 of yacc.c  */
-#line 1115 "expression.y"
+#line 1116 "expression.y"
     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 388:
 
 /* Line 1464 of yacc.c  */
-#line 1116 "expression.y"
+#line 1117 "expression.y"
     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 389:
 
 /* Line 1464 of yacc.c  */
-#line 1117 "expression.y"
+#line 1118 "expression.y"
     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
     break;
 
   case 390:
 
 /* Line 1464 of yacc.c  */
-#line 1118 "expression.y"
+#line 1119 "expression.y"
     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 391:
 
 /* Line 1464 of yacc.c  */
-#line 1122 "expression.y"
+#line 1123 "expression.y"
     { (yyval.string) = CopyString(yytext); ;}
     break;
 
   case 392:
 
 /* Line 1464 of yacc.c  */
-#line 1127 "expression.y"
+#line 1128 "expression.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(5) - (5)]).start;;}
     break;
 
   case 393:
 
 /* Line 1464 of yacc.c  */
-#line 1129 "expression.y"
+#line 1130 "expression.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start;;}
     break;
 
   case 394:
 
 /* Line 1464 of yacc.c  */
-#line 1134 "expression.y"
+#line 1135 "expression.y"
     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (4)].specifier), null, (yyvsp[(3) - (4)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start; ;}
     break;
 
   case 395:
 
 /* Line 1464 of yacc.c  */
-#line 1136 "expression.y"
+#line 1137 "expression.y"
     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (3)].specifier), null, MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).start;;}
     break;
 
   case 396:
 
 /* Line 1464 of yacc.c  */
-#line 1138 "expression.y"
+#line 1139 "expression.y"
     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (4)]); yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (4)].id).string), null, (yyvsp[(3) - (4)].list));(yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start; FreeIdentifier((yyvsp[(1) - (4)].id)); ;}
     break;
 
   case 397:
 
 /* Line 1464 of yacc.c  */
-#line 1140 "expression.y"
+#line 1141 "expression.y"
     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (3)]); yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (3)].id).string), null, MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).start; FreeIdentifier((yyvsp[(1) - (3)].id)); ;}
     break;
 
   case 398:
 
 /* Line 1464 of yacc.c  */
-#line 1145 "expression.y"
+#line 1146 "expression.y"
     { (yyval.instance) = MkInstantiation(null, null, (yyvsp[(2) - (3)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).start; ;}
     break;
 
   case 399:
 
 /* Line 1464 of yacc.c  */
-#line 1147 "expression.y"
+#line 1148 "expression.y"
     { (yyval.instance) = MkInstantiation(null, null, MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start;;}
     break;
 
   case 400:
 
 /* Line 1464 of yacc.c  */
-#line 1152 "expression.y"
+#line 1153 "expression.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 401:
 
 /* Line 1464 of yacc.c  */
-#line 1154 "expression.y"
+#line 1155 "expression.y"
     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 402:
 
 /* Line 1464 of yacc.c  */
-#line 1159 "expression.y"
+#line 1160 "expression.y"
     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(1) - (3)].list), FreeSpecifier); ;}
     break;
 
   case 403:
 
 /* Line 1464 of yacc.c  */
-#line 1164 "expression.y"
+#line 1165 "expression.y"
     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(2) - (4)].list), FreeSpecifier); ;}
     break;
 
   case 404:
 
 /* Line 1464 of yacc.c  */
-#line 1169 "expression.y"
+#line 1170 "expression.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 405:
 
 /* Line 1464 of yacc.c  */
-#line 1171 "expression.y"
+#line 1172 "expression.y"
     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 406:
 
 /* Line 1464 of yacc.c  */
-#line 1176 "expression.y"
+#line 1177 "expression.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 407:
 
 /* Line 1464 of yacc.c  */
-#line 1178 "expression.y"
+#line 1179 "expression.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 408:
 
 /* Line 1464 of yacc.c  */
-#line 1180 "expression.y"
+#line 1181 "expression.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 409:
 
 /* Line 1464 of yacc.c  */
-#line 1182 "expression.y"
+#line 1183 "expression.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 410:
 
 /* Line 1464 of yacc.c  */
-#line 1184 "expression.y"
+#line 1185 "expression.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 411:
 
 /* Line 1464 of yacc.c  */
-#line 1190 "expression.y"
+#line 1191 "expression.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 412:
 
 /* Line 1464 of yacc.c  */
-#line 1195 "expression.y"
+#line 1196 "expression.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 413:
 
 /* Line 1464 of yacc.c  */
-#line 1199 "expression.y"
+#line 1200 "expression.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end;;}
     break;
 
   case 414:
 
 /* Line 1464 of yacc.c  */
-#line 1200 "expression.y"
+#line 1201 "expression.y"
     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
     break;
 
   case 415:
 
 /* Line 1464 of yacc.c  */
-#line 1205 "expression.y"
+#line 1206 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
     break;
 
   case 416:
 
 /* Line 1464 of yacc.c  */
-#line 1207 "expression.y"
+#line 1208 "expression.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 417:
 
 /* Line 1464 of yacc.c  */
-#line 1212 "expression.y"
+#line 1213 "expression.y"
     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 418:
 
 /* Line 1464 of yacc.c  */
-#line 1216 "expression.y"
+#line 1217 "expression.y"
     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 419:
 
 /* Line 1464 of yacc.c  */
-#line 1217 "expression.y"
+#line 1218 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 420:
 
 /* Line 1464 of yacc.c  */
-#line 1218 "expression.y"
+#line 1219 "expression.y"
     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 421:
 
 /* Line 1464 of yacc.c  */
-#line 1219 "expression.y"
+#line 1220 "expression.y"
     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 422:
 
 /* Line 1464 of yacc.c  */
-#line 1220 "expression.y"
+#line 1221 "expression.y"
     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
     break;
 
   case 423:
 
 /* Line 1464 of yacc.c  */
-#line 1221 "expression.y"
+#line 1222 "expression.y"
     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 425:
 
 /* Line 1464 of yacc.c  */
-#line 1226 "expression.y"
+#line 1227 "expression.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 426:
 
 /* Line 1464 of yacc.c  */
-#line 1227 "expression.y"
+#line 1228 "expression.y"
     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
     break;
 
   case 427:
 
 /* Line 1464 of yacc.c  */
-#line 1231 "expression.y"
+#line 1232 "expression.y"
     { parsedExpression = (yyvsp[(1) - (1)].exp); ;}
     break;
 
 
 
 /* Line 1464 of yacc.c  */
-#line 7321 "expression.ec"
+#line 7322 "expression.ec"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -7536,6 +7537,6 @@ yyreturn:
 
 
 /* Line 1684 of yacc.c  */
-#line 1233 "expression.y"
+#line 1234 "expression.y"
 
 
index 891bcd3..8b28781 100644 (file)
@@ -2,6 +2,7 @@
 
 import "ecdefs"
 
+#define YYSIZE_T size_t
 #define YYLTYPE Location
 #include "grammar.h"
 
index 5c82b2f..6adc231 100644 (file)
@@ -71,6 +71,7 @@
 
 import "ecdefs"
 
+#define YYSIZE_T size_t
 #define YYLTYPE Location
 #include "grammar.h"
 
@@ -104,7 +105,7 @@ default:
 
 
 /* Line 189 of yacc.c  */
-#line 108 "grammar.ec"
+#line 109 "grammar.ec"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -257,7 +258,7 @@ typedef union YYSTYPE
 {
 
 /* Line 214 of yacc.c  */
-#line 38 "grammar.y"
+#line 39 "grammar.y"
 
    SpecifierType specifierType;
    int i;
@@ -303,7 +304,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 307 "grammar.ec"
+#line 308 "grammar.ec"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -328,7 +329,7 @@ typedef struct YYLTYPE
 
 
 /* Line 264 of yacc.c  */
-#line 332 "grammar.ec"
+#line 333 "grammar.ec"
 
 #ifdef short
 # undef short
@@ -1231,137 +1232,137 @@ static const yytype_int16 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   282,   282,   301,   340,   341,   421,   425,   428,   429,
-     430,   469,   471,   476,   481,   486,   488,   493,   495,   500,
-     502,   507,   509,   511,   513,   515,   519,   523,   536,   538,
-     540,   542,   544,   550,   552,   557,   562,   567,   569,   571,
-     576,   577,   581,   582,   593,   597,   598,   600,   605,   606,
-     608,   611,   623,   634,   653,   655,   660,   661,   662,   663,
-     664,   665,   666,   667,   680,   684,   685,   686,   687,   691,
-     692,   693,   694,   695,   696,   697,   701,   703,   708,   710,
-     712,   714,   716,   746,   748,   753,   755,   757,   759,   761,
-     790,   792,   794,   799,   801,   806,   808,   812,   814,   816,
-     818,   823,   826,   829,   832,   897,   899,   904,   906,   908,
-     910,   912,   943,   947,   948,   949,   953,   954,   955,   959,
-     960,   961,   962,   966,   969,   972,   975,   978,   983,   984,
-     986,   988,   990,   992,   997,  1001,  1004,  1007,  1010,  1013,
-    1018,  1019,  1021,  1026,  1030,  1032,  1037,  1039,  1044,  1046,
-    1051,  1056,  1058,  1063,  1065,  1067,  1069,  1074,  1076,  1078,
-    1080,  1085,  1086,  1087,  1088,  1089,  1090,  1091,  1092,  1093,
-    1094,  1095,  1097,  1098,  1100,  1104,  1107,  1108,  1109,  1110,
-    1111,  1112,  1113,  1114,  1115,  1116,  1117,  1118,  1119,  1120,
-    1122,  1123,  1127,  1128,  1129,  1133,  1137,  1138,  1139,  1143,
-    1144,  1145,  1146,  1147,  1151,  1152,  1164,  1165,  1169,  1170,
-    1171,  1172,  1173,  1174,  1175,  1176,  1180,  1184,  1185,  1189,
-    1197,  1198,  1202,  1203,  1204,  1208,  1209,  1213,  1214,  1215,
-    1216,  1217,  1218,  1258,  1259,  1263,  1271,  1272,  1280,  1281,
-    1283,  1284,  1293,  1294,  1298,  1305,  1312,  1318,  1325,  1331,
-    1340,  1347,  1353,  1359,  1365,  1371,  1377,  1388,  1393,  1394,
-    1399,  1400,  1401,  1405,  1409,  1410,  1411,  1412,  1413,  1414,
-    1415,  1428,  1429,  1430,  1431,  1432,  1433,  1434,  1435,  1436,
-    1437,  1438,  1439,  1440,  1441,  1442,  1443,  1444,  1445,  1446,
-    1447,  1448,  1449,  1450,  1451,  1453,  1454,  1455,  1456,  1457,
-    1459,  1460,  1464,  1468,  1472,  1473,  1477,  1479,  1480,  1481,
-    1482,  1483,  1484,  1485,  1486,  1487,  1489,  1490,  1491,  1492,
-    1493,  1494,  1495,  1496,  1523,  1524,  1525,  1526,  1530,  1531,
-    1532,  1533,  1534,  1538,  1539,  1540,  1541,  1543,  1544,  1545,
-    1546,  1549,  1550,  1554,  1555,  1564,  1565,  1566,  1567,  1568,
-    1569,  1570,  1571,  1575,  1576,  1580,  1581,  1582,  1583,  1584,
-    1585,  1586,  1590,  1591,  1592,  1593,  1594,  1598,  1599,  1600,
-    1601,  1602,  1606,  1614,  1615,  1616,  1617,  1618,  1619,  1620,
-    1621,  1622,  1626,  1627,  1628,  1629,  1630,  1632,  1633,  1634,
-    1635,  1639,  1640,  1641,  1643,  1644,  1648,  1649,  1650,  1652,
-    1653,  1657,  1658,  1659,  1661,  1662,  1666,  1667,  1668,  1672,
-    1673,  1674,  1678,  1679,  1680,  1681,  1682,  1684,  1685,  1686,
-    1687,  1689,  1690,  1691,  1692,  1694,  1695,  1696,  1697,  1701,
-    1702,  1703,  1704,  1705,  1707,  1708,  1709,  1710,  1714,  1715,
-    1716,  1717,  1718,  1719,  1720,  1721,  1722,  1723,  1724,  1728,
-    1729,  1730,  1731,  1735,  1736,  1737,  1741,  1742,  1743,  1744,
-    1746,  1747,  1749,  1750,  1755,  1757,  1762,  1790,  1791,  1792,
-    1793,  1795,  1796,  1797,  1798,  1800,  1801,  1805,  1806,  1815,
-    1816,  1820,  1821,  1822,  1823,  1824,  1825,  1826,  1830,  1831,
-    1835,  1839,  1843,  1850,  1851,  1852,  1853,  1854,  1858,  1859,
-    1902,  1903,  1904,  1905,  1906,  1907,  1908,  1912,  1913,  1914,
-    1915,  1916,  1923,  1924,  1925,  1926,  1930,  1931,  1932,  1934,
-    1935,  1939,  1940,  1941,  1943,  1944,  1948,  1949,  1950,  1952,
-    1953,  1957,  1958,  1959,  1963,  1964,  1965,  1969,  1970,  1971,
-    1972,  1973,  1974,  1975,  1976,  1977,  1979,  1980,  1981,  1982,
-    1983,  1984,  1985,  1986,  1988,  1989,  1990,  1991,  1993,  1994,
-    1995,  1996,  1998,  2006,  2010,  2015,  2022,  2023,  2027,  2032,
-    2033,  2037,  2038,  2039,  2040,  2046,  2047,  2048,  2052,  2053,
-    2054,  2055,  2059,  2061,  2065,  2066,  2067,  2068,  2069,  2070,
-    2071,  2075,  2076,  2077,  2078,  2079,  2080,  2081,  2085,  2086,
-    2087,  2091,  2092,  2093,  2097,  2101,  2102,  2106,  2107,  2108,
-    2112,  2113,  2115,  2116,  2117,  2118,  2119,  2121,  2122,  2123,
-    2124,  2125,  2127,  2128,  2132,  2133,  2137,  2138,  2139,  2143,
-    2144,  2145,  2146,  2147,  2148,  2149,  2150,  2151,  2153,  2154,
-    2156,  2157,  2158,  2159,  2160,  2162,  2163,  2164,  2165,  2169,
-    2170,  2174,  2175,  2179,  2183,  2184,  2185,  2190,  2191,  2195,
-    2196,  2197,  2198,  2199,  2200,  2201,  2202,  2203,  2204,  2205,
-    2206,  2207,  2208,  2209,  2210,  2211,  2212,  2213,  2214,  2215,
-    2216,  2217,  2218,  2219,  2220,  2224,  2225,  2226,  2227,  2228,
-    2229,  2230,  2231,  2232,  2233,  2234,  2235,  2236,  2237,  2238,
-    2239,  2240,  2241,  2242,  2243,  2244,  2245,  2246,  2247,  2253,
-    2255,  2257,  2259,  2261,  2263,  2265,  2267,  2269,  2271,  2276,
-    2277,  2281,  2287,  2293,  2300,  2310,  2311,  2312,  2313,  2317,
-    2318,  2319,  2321,  2322,  2323,  2325,  2326,  2327,  2331,  2335,
-    2343,  2352,  2361,  2362,  2364,  2365,  2369,  2376,  2383,  2386,
-    2399,  2413,  2416,  2418,  2420,  2425,  2426,  2430,  2431,  2432,
-    2433,  2434,  2435,  2436,  2437,  2441,  2442,  2443,  2444,  2445,
-    2446,  2447,  2448,  2449,  2450,  2454,  2455,  2456,  2457,  2458,
-    2459,  2460,  2461,  2462,  2463,  2467,  2468,  2469,  2470,  2471,
-    2472,  2473,  2474,  2475,  2476,  2477,  2478,  2482,  2483,  2484,
-    2485,  2486,  2487,  2488,  2489,  2490,  2491,  2495,  2496,  2500,
-    2501,  2502,  2503,  2504,  2505,  2506,  2507,  2508,  2510,  2512,
-    2520,  2530,  2531,  2535,  2536,  2537,  2538,  2539,  2540,  2541,
-    2542,  2543,  2551,  2560,  2561,  2562,  2563,  2564,  2565,  2566,
-    2567,  2568,  2569,  2570,  2571,  2572,  2580,  2589,  2590,  2591,
-    2592,  2593,  2594,  2595,  2596,  2597,  2598,  2599,  2600,  2601,
-    2609,  2618,  2619,  2623,  2624,  2625,  2626,  2627,  2631,  2632,
-    2639,  2641,  2650,  2659,  2668,  2677,  2678,  2679,  2680,  2684,
-    2685,  2686,  2687,  2688,  2689,  2690,  2691,  2692,  2696,  2700,
-    2701,  2702,  2703,  2704,  2709,  2718,  2727,  2736,  2750,  2751,
-    2756,  2760,  2761,  2762,  2763,  2764,  2769,  2778,  2787,  2796,
-    2810,  2811,  2860,  2861,  2862,  2863,  2875,  2876,  2877,  2882,
-    2883,  2884,  2885,  2886,  2890,  2891,  2895,  2896,  2897,  2901,
-    2902,  2906,  2907,  2908,  2909,  2910,  2911,  2912,  2913,  2914,
-    2915,  2916,  2917,  2918,  2919,  2920,  2921,  2925,  2926,  2927,
-    2928,  2929,  2930,  2931,  2932,  2936,  2937,  2938,  2939,  2943,
-    2944,  2945,  2946,  2947,  2951,  2952,  2953,  2954,  2955,  2959,
-    2960,  2962,  2964,  2966,  2971,  2972,  2974,  2976,  2981,  2982,
-    2983,  2984,  2988,  2989,  2990,  2991,  2995,  2996,  2997,  2998,
-    3002,  3003,  3004,  3005,  3009,  3010,  3011,  3012,  3016,  3017,
-    3018,  3035,  3036,  3037,  3038,  3051,  3068,  3069,  3074,  3075,
-    3079,  3080,  3081,  3082,  3085,  3086,  3090,  3091,  3092,  3096,
-    3100,  3104,  3105,  3106,  3107,  3108,  3117,  3126,  3127,  3128,
-    3129,  3133,  3134,  3138,  3139,  3144,  3145,  3146,  3147,  3148,
-    3149,  3168,  3169,  3173,  3174,  3175,  3176,  3177,  3178,  3180,
-    3181,  3182,  3183,  3187,  3188,  3189,  3190,  3191,  3193,  3194,
-    3195,  3199,  3200,  3201,  3202,  3203,  3204,  3208,  3209,  3210,
-    3215,  3216,  3217,  3218,  3219,  3220,  3221,  3222,  3223,  3224,
-    3225,  3226,  3227,  3231,  3232,  3233,  3234,  3235,  3236,  3237,
-    3241,  3242,  3243,  3247,  3248,  3249,  3253,  3254,  3255,  3256,
-    3258,  3259,  3260,  3262,  3263,  3264,  3265,  3267,  3268,  3269,
-    3273,  3274,  3275,  3276,  3277,  3279,  3280,  3281,  3282,  3283,
-    3287,  3288,  3289,  3290,  3291,  3292,  3293,  3295,  3296,  3297,
-    3298,  3299,  3303,  3304,  3305,  3309,  3310,  3314,  3315,  3316,
-    3317,  3321,  3322,  3323,  3325,  3326,  3327,  3331,  3335,  3336,
-    3338,  3339,  3340,  3344,  3345,  3346,  3347,  3351,  3352,  3356,
-    3357,  3358,  3362,  3363,  3364,  3365,  3366,  3367,  3368,  3372,
-    3373,  3374,  3375,  3379,  3380,  3381,  3382,  3386,  3390,  3394,
-    3396,  3399,  3405,  3406,  3407,  3411,  3412,  3413,  3414,  3415,
-    3416,  3420,  3421,  3425,  3426,  3427,  3429,  3430,  3432,  3433,
-    3434,  3435,  3436,  3438,  3439,  3443,  3444,  3445,  3446,  3450,
-    3451,  3452,  3453,  3455,  3456,  3457,  3458,  3459,  3460,  3461,
-    3464,  3468,  3469,  3473,  3474,  3478,  3479,  3480,  3481,  3482,
-    3483,  3484,  3485,  3489,  3490,  3491,  3492,  3498,  3499,  3501,
-    3502,  3505,  3506,  3509,  3510,  3511,  3512,  3513,  3514,  3518,
-    3519,  3531,  3532,  3535,  3538,  3540,  3541,  3542,  3552,  3554,
-    3555,  3557,  3558,  3559,  3560,  3570,  3571,  3572,  3573,  3574,
-    3575,  3579,  3580,  3589,  3591,  3592,  3594,  3596,  3600,  3601,
-    3602,  3603,  3604,  3608,  3609,  3610,  3612,  3617,  3618,  3619,
-    3623,  3624,  3625,  3629,  3633,  3634,  3635,  3639,  3640,  3644,
-    3645,  3649,  3650,  3651,  3652,  3656,  3660,  3664,  3668
+       0,   283,   283,   302,   341,   342,   422,   426,   429,   430,
+     431,   470,   472,   477,   482,   487,   489,   494,   496,   501,
+     503,   508,   510,   512,   514,   516,   520,   524,   537,   539,
+     541,   543,   545,   551,   553,   558,   563,   568,   570,   572,
+     577,   578,   582,   583,   594,   598,   599,   601,   606,   607,
+     609,   612,   624,   635,   654,   656,   661,   662,   663,   664,
+     665,   666,   667,   668,   681,   685,   686,   687,   688,   692,
+     693,   694,   695,   696,   697,   698,   702,   704,   709,   711,
+     713,   715,   717,   747,   749,   754,   756,   758,   760,   762,
+     791,   793,   795,   800,   802,   807,   809,   813,   815,   817,
+     819,   824,   827,   830,   833,   898,   900,   905,   907,   909,
+     911,   913,   944,   948,   949,   950,   954,   955,   956,   960,
+     961,   962,   963,   967,   970,   973,   976,   979,   984,   985,
+     987,   989,   991,   993,   998,  1002,  1005,  1008,  1011,  1014,
+    1019,  1020,  1022,  1027,  1031,  1033,  1038,  1040,  1045,  1047,
+    1052,  1057,  1059,  1064,  1066,  1068,  1070,  1075,  1077,  1079,
+    1081,  1086,  1087,  1088,  1089,  1090,  1091,  1092,  1093,  1094,
+    1095,  1096,  1098,  1099,  1101,  1105,  1108,  1109,  1110,  1111,
+    1112,  1113,  1114,  1115,  1116,  1117,  1118,  1119,  1120,  1121,
+    1123,  1124,  1128,  1129,  1130,  1134,  1138,  1139,  1140,  1144,
+    1145,  1146,  1147,  1148,  1152,  1153,  1165,  1166,  1170,  1171,
+    1172,  1173,  1174,  1175,  1176,  1177,  1181,  1185,  1186,  1190,
+    1198,  1199,  1203,  1204,  1205,  1209,  1210,  1214,  1215,  1216,
+    1217,  1218,  1219,  1259,  1260,  1264,  1272,  1273,  1281,  1282,
+    1284,  1285,  1294,  1295,  1299,  1306,  1313,  1319,  1326,  1332,
+    1341,  1348,  1354,  1360,  1366,  1372,  1378,  1389,  1394,  1395,
+    1400,  1401,  1402,  1406,  1410,  1411,  1412,  1413,  1414,  1415,
+    1416,  1429,  1430,  1431,  1432,  1433,  1434,  1435,  1436,  1437,
+    1438,  1439,  1440,  1441,  1442,  1443,  1444,  1445,  1446,  1447,
+    1448,  1449,  1450,  1451,  1452,  1454,  1455,  1456,  1457,  1458,
+    1460,  1461,  1465,  1469,  1473,  1474,  1478,  1480,  1481,  1482,
+    1483,  1484,  1485,  1486,  1487,  1488,  1490,  1491,  1492,  1493,
+    1494,  1495,  1496,  1497,  1524,  1525,  1526,  1527,  1531,  1532,
+    1533,  1534,  1535,  1539,  1540,  1541,  1542,  1544,  1545,  1546,
+    1547,  1550,  1551,  1555,  1556,  1565,  1566,  1567,  1568,  1569,
+    1570,  1571,  1572,  1576,  1577,  1581,  1582,  1583,  1584,  1585,
+    1586,  1587,  1591,  1592,  1593,  1594,  1595,  1599,  1600,  1601,
+    1602,  1603,  1607,  1615,  1616,  1617,  1618,  1619,  1620,  1621,
+    1622,  1623,  1627,  1628,  1629,  1630,  1631,  1633,  1634,  1635,
+    1636,  1640,  1641,  1642,  1644,  1645,  1649,  1650,  1651,  1653,
+    1654,  1658,  1659,  1660,  1662,  1663,  1667,  1668,  1669,  1673,
+    1674,  1675,  1679,  1680,  1681,  1682,  1683,  1685,  1686,  1687,
+    1688,  1690,  1691,  1692,  1693,  1695,  1696,  1697,  1698,  1702,
+    1703,  1704,  1705,  1706,  1708,  1709,  1710,  1711,  1715,  1716,
+    1717,  1718,  1719,  1720,  1721,  1722,  1723,  1724,  1725,  1729,
+    1730,  1731,  1732,  1736,  1737,  1738,  1742,  1743,  1744,  1745,
+    1747,  1748,  1750,  1751,  1756,  1758,  1763,  1791,  1792,  1793,
+    1794,  1796,  1797,  1798,  1799,  1801,  1802,  1806,  1807,  1816,
+    1817,  1821,  1822,  1823,  1824,  1825,  1826,  1827,  1831,  1832,
+    1836,  1840,  1844,  1851,  1852,  1853,  1854,  1855,  1859,  1860,
+    1903,  1904,  1905,  1906,  1907,  1908,  1909,  1913,  1914,  1915,
+    1916,  1917,  1924,  1925,  1926,  1927,  1931,  1932,  1933,  1935,
+    1936,  1940,  1941,  1942,  1944,  1945,  1949,  1950,  1951,  1953,
+    1954,  1958,  1959,  1960,  1964,  1965,  1966,  1970,  1971,  1972,
+    1973,  1974,  1975,  1976,  1977,  1978,  1980,  1981,  1982,  1983,
+    1984,  1985,  1986,  1987,  1989,  1990,  1991,  1992,  1994,  1995,
+    1996,  1997,  1999,  2007,  2011,  2016,  2023,  2024,  2028,  2033,
+    2034,  2038,  2039,  2040,  2041,  2047,  2048,  2049,  2053,  2054,
+    2055,  2056,  2060,  2062,  2066,  2067,  2068,  2069,  2070,  2071,
+    2072,  2076,  2077,  2078,  2079,  2080,  2081,  2082,  2086,  2087,
+    2088,  2092,  2093,  2094,  2098,  2102,  2103,  2107,  2108,  2109,
+    2113,  2114,  2116,  2117,  2118,  2119,  2120,  2122,  2123,  2124,
+    2125,  2126,  2128,  2129,  2133,  2134,  2138,  2139,  2140,  2144,
+    2145,  2146,  2147,  2148,  2149,  2150,  2151,  2152,  2154,  2155,
+    2157,  2158,  2159,  2160,  2161,  2163,  2164,  2165,  2166,  2170,
+    2171,  2175,  2176,  2180,  2184,  2185,  2186,  2191,  2192,  2196,
+    2197,  2198,  2199,  2200,  2201,  2202,  2203,  2204,  2205,  2206,
+    2207,  2208,  2209,  2210,  2211,  2212,  2213,  2214,  2215,  2216,
+    2217,  2218,  2219,  2220,  2221,  2225,  2226,  2227,  2228,  2229,
+    2230,  2231,  2232,  2233,  2234,  2235,  2236,  2237,  2238,  2239,
+    2240,  2241,  2242,  2243,  2244,  2245,  2246,  2247,  2248,  2254,
+    2256,  2258,  2260,  2262,  2264,  2266,  2268,  2270,  2272,  2277,
+    2278,  2282,  2288,  2294,  2301,  2311,  2312,  2313,  2314,  2318,
+    2319,  2320,  2322,  2323,  2324,  2326,  2327,  2328,  2332,  2336,
+    2344,  2353,  2362,  2363,  2365,  2366,  2370,  2377,  2384,  2387,
+    2400,  2414,  2417,  2419,  2421,  2426,  2427,  2431,  2432,  2433,
+    2434,  2435,  2436,  2437,  2438,  2442,  2443,  2444,  2445,  2446,
+    2447,  2448,  2449,  2450,  2451,  2455,  2456,  2457,  2458,  2459,
+    2460,  2461,  2462,  2463,  2464,  2468,  2469,  2470,  2471,  2472,
+    2473,  2474,  2475,  2476,  2477,  2478,  2479,  2483,  2484,  2485,
+    2486,  2487,  2488,  2489,  2490,  2491,  2492,  2496,  2497,  2501,
+    2502,  2503,  2504,  2505,  2506,  2507,  2508,  2509,  2511,  2513,
+    2521,  2531,  2532,  2536,  2537,  2538,  2539,  2540,  2541,  2542,
+    2543,  2544,  2552,  2561,  2562,  2563,  2564,  2565,  2566,  2567,
+    2568,  2569,  2570,  2571,  2572,  2573,  2581,  2590,  2591,  2592,
+    2593,  2594,  2595,  2596,  2597,  2598,  2599,  2600,  2601,  2602,
+    2610,  2619,  2620,  2624,  2625,  2626,  2627,  2628,  2632,  2633,
+    2640,  2642,  2651,  2660,  2669,  2678,  2679,  2680,  2681,  2685,
+    2686,  2687,  2688,  2689,  2690,  2691,  2692,  2693,  2697,  2701,
+    2702,  2703,  2704,  2705,  2710,  2719,  2728,  2737,  2751,  2752,
+    2757,  2761,  2762,  2763,  2764,  2765,  2770,  2779,  2788,  2797,
+    2811,  2812,  2861,  2862,  2863,  2864,  2876,  2877,  2878,  2883,
+    2884,  2885,  2886,  2887,  2891,  2892,  2896,  2897,  2898,  2902,
+    2903,  2907,  2908,  2909,  2910,  2911,  2912,  2913,  2914,  2915,
+    2916,  2917,  2918,  2919,  2920,  2921,  2922,  2926,  2927,  2928,
+    2929,  2930,  2931,  2932,  2933,  2937,  2938,  2939,  2940,  2944,
+    2945,  2946,  2947,  2948,  2952,  2953,  2954,  2955,  2956,  2960,
+    2961,  2963,  2965,  2967,  2972,  2973,  2975,  2977,  2982,  2983,
+    2984,  2985,  2989,  2990,  2991,  2992,  2996,  2997,  2998,  2999,
+    3003,  3004,  3005,  3006,  3010,  3011,  3012,  3013,  3017,  3018,
+    3019,  3036,  3037,  3038,  3039,  3052,  3069,  3070,  3075,  3076,
+    3080,  3081,  3082,  3083,  3086,  3087,  3091,  3092,  3093,  3097,
+    3101,  3105,  3106,  3107,  3108,  3109,  3118,  3127,  3128,  3129,
+    3130,  3134,  3135,  3139,  3140,  3145,  3146,  3147,  3148,  3149,
+    3150,  3169,  3170,  3174,  3175,  3176,  3177,  3178,  3179,  3181,
+    3182,  3183,  3184,  3188,  3189,  3190,  3191,  3192,  3194,  3195,
+    3196,  3200,  3201,  3202,  3203,  3204,  3205,  3209,  3210,  3211,
+    3216,  3217,  3218,  3219,  3220,  3221,  3222,  3223,  3224,  3225,
+    3226,  3227,  3228,  3232,  3233,  3234,  3235,  3236,  3237,  3238,
+    3242,  3243,  3244,  3248,  3249,  3250,  3254,  3255,  3256,  3257,
+    3259,  3260,  3261,  3263,  3264,  3265,  3266,  3268,  3269,  3270,
+    3274,  3275,  3276,  3277,  3278,  3280,  3281,  3282,  3283,  3284,
+    3288,  3289,  3290,  3291,  3292,  3293,  3294,  3296,  3297,  3298,
+    3299,  3300,  3304,  3305,  3306,  3310,  3311,  3315,  3316,  3317,
+    3318,  3322,  3323,  3324,  3326,  3327,  3328,  3332,  3336,  3337,
+    3339,  3340,  3341,  3345,  3346,  3347,  3348,  3352,  3353,  3357,
+    3358,  3359,  3363,  3364,  3365,  3366,  3367,  3368,  3369,  3373,
+    3374,  3375,  3376,  3380,  3381,  3382,  3383,  3387,  3391,  3395,
+    3397,  3400,  3406,  3407,  3408,  3412,  3413,  3414,  3415,  3416,
+    3417,  3421,  3422,  3426,  3427,  3428,  3430,  3431,  3433,  3434,
+    3435,  3436,  3437,  3439,  3440,  3444,  3445,  3446,  3447,  3451,
+    3452,  3453,  3454,  3456,  3457,  3458,  3459,  3460,  3461,  3462,
+    3465,  3469,  3470,  3474,  3475,  3479,  3480,  3481,  3482,  3483,
+    3484,  3485,  3486,  3490,  3491,  3492,  3493,  3499,  3500,  3502,
+    3503,  3506,  3507,  3510,  3511,  3512,  3513,  3514,  3515,  3519,
+    3520,  3532,  3533,  3536,  3539,  3541,  3542,  3543,  3553,  3555,
+    3556,  3558,  3559,  3560,  3561,  3571,  3572,  3573,  3574,  3575,
+    3576,  3580,  3581,  3590,  3592,  3593,  3595,  3597,  3601,  3602,
+    3603,  3604,  3605,  3609,  3610,  3611,  3613,  3618,  3619,  3620,
+    3624,  3625,  3626,  3630,  3634,  3635,  3636,  3640,  3641,  3645,
+    3646,  3650,  3651,  3652,  3653,  3657,  3661,  3665,  3669
 };
 #endif
 
@@ -11327,1829 +11328,1829 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
       case 145: /* "guess_type" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 11335 "grammar.ec"
+#line 11336 "grammar.ec"
        break;
       case 146: /* "type" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 11344 "grammar.ec"
+#line 11345 "grammar.ec"
        break;
       case 147: /* "base_strict_type" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 11353 "grammar.ec"
+#line 11354 "grammar.ec"
        break;
       case 148: /* "base_strict_type_name" */
 
 /* Line 1009 of yacc.c  */
-#line 248 "grammar.y"
+#line 249 "grammar.y"
        { delete (yyvaluep->string); };
 
 /* Line 1009 of yacc.c  */
-#line 11362 "grammar.ec"
+#line 11363 "grammar.ec"
        break;
       case 149: /* "strict_type" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 11371 "grammar.ec"
+#line 11372 "grammar.ec"
        break;
       case 150: /* "class_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11380 "grammar.ec"
+#line 11381 "grammar.ec"
        break;
       case 151: /* "constructor_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11389 "grammar.ec"
+#line 11390 "grammar.ec"
        break;
       case 152: /* "destructor_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11398 "grammar.ec"
+#line 11399 "grammar.ec"
        break;
       case 153: /* "virtual_class_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11407 "grammar.ec"
+#line 11408 "grammar.ec"
        break;
       case 154: /* "class_function_definition_start_error" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11416 "grammar.ec"
+#line 11417 "grammar.ec"
        break;
       case 155: /* "virtual_class_function_definition_start_error" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11425 "grammar.ec"
+#line 11426 "grammar.ec"
        break;
       case 156: /* "class_function_definition" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11434 "grammar.ec"
+#line 11435 "grammar.ec"
        break;
       case 157: /* "class_function_definition_error" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11443 "grammar.ec"
+#line 11444 "grammar.ec"
        break;
       case 158: /* "instance_class_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11452 "grammar.ec"
+#line 11453 "grammar.ec"
        break;
       case 159: /* "instance_class_function_definition_start_error" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11461 "grammar.ec"
+#line 11462 "grammar.ec"
        break;
       case 160: /* "instance_class_function_definition" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11470 "grammar.ec"
+#line 11471 "grammar.ec"
        break;
       case 161: /* "instance_class_function_definition_error" */
 
 /* Line 1009 of yacc.c  */
-#line 240 "grammar.y"
+#line 241 "grammar.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 11479 "grammar.ec"
+#line 11480 "grammar.ec"
        break;
       case 162: /* "data_member_initialization" */
 
 /* Line 1009 of yacc.c  */
-#line 238 "grammar.y"
+#line 239 "grammar.y"
        { FreeMemberInit((yyvaluep->memberInit)); };
 
 /* Line 1009 of yacc.c  */
-#line 11488 "grammar.ec"
+#line 11489 "grammar.ec"
        break;
       case 163: /* "data_member_initialization_error" */
 
 /* Line 1009 of yacc.c  */
-#line 238 "grammar.y"
+#line 239 "grammar.y"
        { FreeMemberInit((yyvaluep->memberInit)); };
 
 /* Line 1009 of yacc.c  */
-#line 11497 "grammar.ec"
+#line 11498 "grammar.ec"
        break;
       case 164: /* "data_member_initialization_list" */
 
 /* Line 1009 of yacc.c  */
-#line 263 "grammar.y"
+#line 264 "grammar.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 11506 "grammar.ec"
+#line 11507 "grammar.ec"
        break;
       case 165: /* "data_member_initialization_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 263 "grammar.y"
+#line 264 "grammar.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 11515 "grammar.ec"
+#line 11516 "grammar.ec"
        break;
       case 166: /* "data_member_initialization_list_coloned" */
 
 /* Line 1009 of yacc.c  */
-#line 263 "grammar.y"
+#line 264 "grammar.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 11524 "grammar.ec"
+#line 11525 "grammar.ec"
        break;
       case 167: /* "members_initialization_list_coloned" */
 
 /* Line 1009 of yacc.c  */
-#line 264 "grammar.y"
+#line 265 "grammar.y"
        { FreeList((yyvaluep->list), FreeMembersInit); };
 
 /* Line 1009 of yacc.c  */
-#line 11533 "grammar.ec"
+#line 11534 "grammar.ec"
        break;
       case 168: /* "members_initialization_list" */
 
 /* Line 1009 of yacc.c  */
-#line 264 "grammar.y"
+#line 265 "grammar.y"
        { FreeList((yyvaluep->list), FreeMembersInit); };
 
 /* Line 1009 of yacc.c  */
-#line 11542 "grammar.ec"
+#line 11543 "grammar.ec"
        break;
       case 169: /* "members_initialization_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 264 "grammar.y"
+#line 265 "grammar.y"
        { FreeList((yyvaluep->list), FreeMembersInit); };
 
 /* Line 1009 of yacc.c  */
-#line 11551 "grammar.ec"
+#line 11552 "grammar.ec"
        break;
       case 170: /* "instantiation_named" */
 
 /* Line 1009 of yacc.c  */
-#line 236 "grammar.y"
+#line 237 "grammar.y"
        { FreeInstance((yyvaluep->instance)); };
 
 /* Line 1009 of yacc.c  */
-#line 11560 "grammar.ec"
+#line 11561 "grammar.ec"
        break;
       case 171: /* "instantiation_named_error" */
 
 /* Line 1009 of yacc.c  */
-#line 236 "grammar.y"
+#line 237 "grammar.y"
        { FreeInstance((yyvaluep->instance)); };
 
 /* Line 1009 of yacc.c  */
-#line 11569 "grammar.ec"
+#line 11570 "grammar.ec"
        break;
       case 175: /* "instantiation_unnamed" */
 
 /* Line 1009 of yacc.c  */
-#line 236 "grammar.y"
+#line 237 "grammar.y"
        { FreeInstance((yyvaluep->instance)); };
 
 /* Line 1009 of yacc.c  */
-#line 11578 "grammar.ec"
+#line 11579 "grammar.ec"
        break;
       case 176: /* "instantiation_unnamed_error" */
 
 /* Line 1009 of yacc.c  */
-#line 236 "grammar.y"
+#line 237 "grammar.y"
        { FreeInstance((yyvaluep->instance)); };
 
 /* Line 1009 of yacc.c  */
-#line 11587 "grammar.ec"
+#line 11588 "grammar.ec"
        break;
       case 179: /* "default_property" */
 
 /* Line 1009 of yacc.c  */
-#line 238 "grammar.y"
+#line 239 "grammar.y"
        { FreeMemberInit((yyvaluep->memberInit)); };
 
 /* Line 1009 of yacc.c  */
-#line 11596 "grammar.ec"
+#line 11597 "grammar.ec"
        break;
       case 180: /* "default_property_error" */
 
 /* Line 1009 of yacc.c  */
-#line 238 "grammar.y"
+#line 239 "grammar.y"
        { FreeMemberInit((yyvaluep->memberInit)); };
 
 /* Line 1009 of yacc.c  */
-#line 11605 "grammar.ec"
+#line 11606 "grammar.ec"
        break;
       case 181: /* "default_property_list" */
 
 /* Line 1009 of yacc.c  */
-#line 263 "grammar.y"
+#line 264 "grammar.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 11614 "grammar.ec"
+#line 11615 "grammar.ec"
        break;
       case 182: /* "default_property_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 263 "grammar.y"
+#line 264 "grammar.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 11623 "grammar.ec"
+#line 11624 "grammar.ec"
        break;
       case 185: /* "property" */
 
 /* Line 1009 of yacc.c  */
-#line 249 "grammar.y"
+#line 250 "grammar.y"
        { FreeProperty((yyvaluep->prop)); };
 
 /* Line 1009 of yacc.c  */
-#line 11632 "grammar.ec"
+#line 11633 "grammar.ec"
        break;
       case 196: /* "struct_declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 247 "grammar.y"
+#line 248 "grammar.y"
        { FreeClassDef((yyvaluep->classDef)); };
 
 /* Line 1009 of yacc.c  */
-#line 11641 "grammar.ec"
+#line 11642 "grammar.ec"
        break;
       case 197: /* "struct_declaration_error" */
 
 /* Line 1009 of yacc.c  */
-#line 247 "grammar.y"
+#line 248 "grammar.y"
        { FreeClassDef((yyvaluep->classDef)); };
 
 /* Line 1009 of yacc.c  */
-#line 11650 "grammar.ec"
+#line 11651 "grammar.ec"
        break;
       case 198: /* "struct_declaration_list" */
 
 /* Line 1009 of yacc.c  */
-#line 262 "grammar.y"
+#line 263 "grammar.y"
        { FreeList((yyvaluep->list), FreeClassDef); };
 
 /* Line 1009 of yacc.c  */
-#line 11659 "grammar.ec"
+#line 11660 "grammar.ec"
        break;
       case 199: /* "struct_declaration_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 262 "grammar.y"
+#line 263 "grammar.y"
        { FreeList((yyvaluep->list), FreeClassDef); };
 
 /* Line 1009 of yacc.c  */
-#line 11668 "grammar.ec"
+#line 11669 "grammar.ec"
        break;
       case 200: /* "template_datatype" */
 
 /* Line 1009 of yacc.c  */
-#line 268 "grammar.y"
+#line 269 "grammar.y"
        { FreeTemplateDataType((yyvaluep->templateDatatype)); };
 
 /* Line 1009 of yacc.c  */
-#line 11677 "grammar.ec"
+#line 11678 "grammar.ec"
        break;
       case 201: /* "template_type_argument" */
 
 /* Line 1009 of yacc.c  */
-#line 267 "grammar.y"
+#line 268 "grammar.y"
        { FreeTemplateArgument((yyvaluep->templateArgument)); };
 
 /* Line 1009 of yacc.c  */
-#line 11686 "grammar.ec"
+#line 11687 "grammar.ec"
        break;
       case 202: /* "template_type_parameter" */
 
 /* Line 1009 of yacc.c  */
-#line 266 "grammar.y"
+#line 267 "grammar.y"
        { FreeTemplateParameter((yyvaluep->templateParameter)); };
 
 /* Line 1009 of yacc.c  */
-#line 11695 "grammar.ec"
+#line 11696 "grammar.ec"
        break;
       case 203: /* "template_identifier_argument" */
 
 /* Line 1009 of yacc.c  */
-#line 267 "grammar.y"
+#line 268 "grammar.y"
        { FreeTemplateArgument((yyvaluep->templateArgument)); };
 
 /* Line 1009 of yacc.c  */
-#line 11704 "grammar.ec"
+#line 11705 "grammar.ec"
        break;
       case 204: /* "template_identifier_parameter" */
 
 /* Line 1009 of yacc.c  */
-#line 266 "grammar.y"
+#line 267 "grammar.y"
        { FreeTemplateParameter((yyvaluep->templateParameter)); };
 
 /* Line 1009 of yacc.c  */
-#line 11713 "grammar.ec"
+#line 11714 "grammar.ec"
        break;
       case 205: /* "template_expression_argument" */
 
 /* Line 1009 of yacc.c  */
-#line 267 "grammar.y"
+#line 268 "grammar.y"
        { FreeTemplateArgument((yyvaluep->templateArgument)); };
 
 /* Line 1009 of yacc.c  */
-#line 11722 "grammar.ec"
+#line 11723 "grammar.ec"
        break;
       case 206: /* "template_expression_parameter" */
 
 /* Line 1009 of yacc.c  */
-#line 266 "grammar.y"
+#line 267 "grammar.y"
        { FreeTemplateParameter((yyvaluep->templateParameter)); };
 
 /* Line 1009 of yacc.c  */
-#line 11731 "grammar.ec"
+#line 11732 "grammar.ec"
        break;
       case 207: /* "template_parameter" */
 
 /* Line 1009 of yacc.c  */
-#line 266 "grammar.y"
+#line 267 "grammar.y"
        { FreeTemplateParameter((yyvaluep->templateParameter)); };
 
 /* Line 1009 of yacc.c  */
-#line 11740 "grammar.ec"
+#line 11741 "grammar.ec"
        break;
       case 208: /* "template_parameters_list" */
 
 /* Line 1009 of yacc.c  */
-#line 269 "grammar.y"
+#line 270 "grammar.y"
        { FreeList((yyvaluep->list), FreeTemplateParameter); };
 
 /* Line 1009 of yacc.c  */
-#line 11749 "grammar.ec"
+#line 11750 "grammar.ec"
        break;
       case 209: /* "template_argument" */
 
 /* Line 1009 of yacc.c  */
-#line 267 "grammar.y"
+#line 268 "grammar.y"
        { FreeTemplateArgument((yyvaluep->templateArgument)); };
 
 /* Line 1009 of yacc.c  */
-#line 11758 "grammar.ec"
+#line 11759 "grammar.ec"
        break;
       case 210: /* "template_arguments_list" */
 
 /* Line 1009 of yacc.c  */
-#line 270 "grammar.y"
+#line 271 "grammar.y"
        { FreeList((yyvaluep->list), FreeTemplateArgument); };
 
 /* Line 1009 of yacc.c  */
-#line 11767 "grammar.ec"
+#line 11768 "grammar.ec"
        break;
       case 211: /* "class_entry" */
 
 /* Line 1009 of yacc.c  */
-#line 244 "grammar.y"
+#line 245 "grammar.y"
        { Context ctx = curContext; PopContext(ctx); FreeContext(ctx); delete ctx; };
 
 /* Line 1009 of yacc.c  */
-#line 11776 "grammar.ec"
+#line 11777 "grammar.ec"
        break;
       case 212: /* "class_decl" */
 
 /* Line 1009 of yacc.c  */
-#line 245 "grammar.y"
+#line 246 "grammar.y"
        { Context ctx = curContext; PopContext(ctx); FreeContext(ctx); delete ctx; };
 
 /* Line 1009 of yacc.c  */
-#line 11785 "grammar.ec"
+#line 11786 "grammar.ec"
        break;
       case 213: /* "class" */
 
 /* Line 1009 of yacc.c  */
-#line 246 "grammar.y"
+#line 247 "grammar.y"
        { FreeClass((yyvaluep->_class)); };
 
 /* Line 1009 of yacc.c  */
-#line 11794 "grammar.ec"
+#line 11795 "grammar.ec"
        break;
       case 214: /* "class_head" */
 
 /* Line 1009 of yacc.c  */
-#line 246 "grammar.y"
+#line 247 "grammar.y"
        { FreeClass((yyvaluep->_class)); };
 
 /* Line 1009 of yacc.c  */
-#line 11803 "grammar.ec"
+#line 11804 "grammar.ec"
        break;
       case 215: /* "class_error" */
 
 /* Line 1009 of yacc.c  */
-#line 246 "grammar.y"
+#line 247 "grammar.y"
        { FreeClass((yyvaluep->_class)); };
 
 /* Line 1009 of yacc.c  */
-#line 11812 "grammar.ec"
+#line 11813 "grammar.ec"
        break;
       case 216: /* "identifier" */
 
 /* Line 1009 of yacc.c  */
-#line 200 "grammar.y"
+#line 201 "grammar.y"
        { FreeIdentifier((yyvaluep->id)); };
 
 /* Line 1009 of yacc.c  */
-#line 11821 "grammar.ec"
+#line 11822 "grammar.ec"
        break;
       case 217: /* "primary_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11830 "grammar.ec"
+#line 11831 "grammar.ec"
        break;
       case 218: /* "i18n_string" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11839 "grammar.ec"
+#line 11840 "grammar.ec"
        break;
       case 223: /* "primary_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11848 "grammar.ec"
+#line 11849 "grammar.ec"
        break;
       case 224: /* "postfix_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11857 "grammar.ec"
+#line 11858 "grammar.ec"
        break;
       case 225: /* "argument_expression_list" */
 
 /* Line 1009 of yacc.c  */
-#line 251 "grammar.y"
+#line 252 "grammar.y"
        { FreeList((yyvaluep->list), FreeExpression); };
 
 /* Line 1009 of yacc.c  */
-#line 11866 "grammar.ec"
+#line 11867 "grammar.ec"
        break;
       case 226: /* "argument_expression_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 251 "grammar.y"
+#line 252 "grammar.y"
        { FreeList((yyvaluep->list), FreeExpression); };
 
 /* Line 1009 of yacc.c  */
-#line 11875 "grammar.ec"
+#line 11876 "grammar.ec"
        break;
       case 228: /* "unary_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11884 "grammar.ec"
+#line 11885 "grammar.ec"
        break;
       case 230: /* "cast_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11893 "grammar.ec"
+#line 11894 "grammar.ec"
        break;
       case 231: /* "multiplicative_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11902 "grammar.ec"
+#line 11903 "grammar.ec"
        break;
       case 232: /* "additive_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11911 "grammar.ec"
+#line 11912 "grammar.ec"
        break;
       case 233: /* "shift_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11920 "grammar.ec"
+#line 11921 "grammar.ec"
        break;
       case 235: /* "relational_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11929 "grammar.ec"
+#line 11930 "grammar.ec"
        break;
       case 236: /* "equality_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11938 "grammar.ec"
+#line 11939 "grammar.ec"
        break;
       case 237: /* "and_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11947 "grammar.ec"
+#line 11948 "grammar.ec"
        break;
       case 238: /* "exclusive_or_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11956 "grammar.ec"
+#line 11957 "grammar.ec"
        break;
       case 239: /* "inclusive_or_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11965 "grammar.ec"
+#line 11966 "grammar.ec"
        break;
       case 240: /* "logical_and_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11974 "grammar.ec"
+#line 11975 "grammar.ec"
        break;
       case 241: /* "logical_or_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11983 "grammar.ec"
+#line 11984 "grammar.ec"
        break;
       case 242: /* "conditional_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 11992 "grammar.ec"
+#line 11993 "grammar.ec"
        break;
       case 243: /* "assignment_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12001 "grammar.ec"
+#line 12002 "grammar.ec"
        break;
       case 245: /* "expression" */
 
 /* Line 1009 of yacc.c  */
-#line 251 "grammar.y"
+#line 252 "grammar.y"
        { FreeList((yyvaluep->list), FreeExpression); };
 
 /* Line 1009 of yacc.c  */
-#line 12010 "grammar.ec"
+#line 12011 "grammar.ec"
        break;
       case 247: /* "postfix_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12019 "grammar.ec"
+#line 12020 "grammar.ec"
        break;
       case 249: /* "unary_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12028 "grammar.ec"
+#line 12029 "grammar.ec"
        break;
       case 250: /* "cast_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12037 "grammar.ec"
+#line 12038 "grammar.ec"
        break;
       case 251: /* "multiplicative_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12046 "grammar.ec"
+#line 12047 "grammar.ec"
        break;
       case 252: /* "additive_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12055 "grammar.ec"
+#line 12056 "grammar.ec"
        break;
       case 253: /* "shift_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12064 "grammar.ec"
+#line 12065 "grammar.ec"
        break;
       case 254: /* "relational_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12073 "grammar.ec"
+#line 12074 "grammar.ec"
        break;
       case 255: /* "equality_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12082 "grammar.ec"
+#line 12083 "grammar.ec"
        break;
       case 256: /* "and_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12091 "grammar.ec"
+#line 12092 "grammar.ec"
        break;
       case 257: /* "exclusive_or_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12100 "grammar.ec"
+#line 12101 "grammar.ec"
        break;
       case 258: /* "inclusive_or_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12109 "grammar.ec"
+#line 12110 "grammar.ec"
        break;
       case 259: /* "logical_and_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12118 "grammar.ec"
+#line 12119 "grammar.ec"
        break;
       case 260: /* "logical_or_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12127 "grammar.ec"
+#line 12128 "grammar.ec"
        break;
       case 261: /* "conditional_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12136 "grammar.ec"
+#line 12137 "grammar.ec"
        break;
       case 262: /* "assignment_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12145 "grammar.ec"
+#line 12146 "grammar.ec"
        break;
       case 263: /* "expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 251 "grammar.y"
+#line 252 "grammar.y"
        { FreeList((yyvaluep->list), FreeExpression); };
 
 /* Line 1009 of yacc.c  */
-#line 12154 "grammar.ec"
+#line 12155 "grammar.ec"
        break;
       case 265: /* "constant_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12163 "grammar.ec"
+#line 12164 "grammar.ec"
        break;
       case 266: /* "constant_expression_error" */
 
 /* Line 1009 of yacc.c  */
-#line 202 "grammar.y"
+#line 203 "grammar.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 12172 "grammar.ec"
+#line 12173 "grammar.ec"
        break;
       case 267: /* "storage_class_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12181 "grammar.ec"
+#line 12182 "grammar.ec"
        break;
       case 268: /* "external_storage_class_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12190 "grammar.ec"
+#line 12191 "grammar.ec"
        break;
       case 269: /* "enumerator" */
 
 /* Line 1009 of yacc.c  */
-#line 218 "grammar.y"
+#line 219 "grammar.y"
        { FreeEnumerator((yyvaluep->enumerator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12199 "grammar.ec"
+#line 12200 "grammar.ec"
        break;
       case 270: /* "enumerator_list" */
 
 /* Line 1009 of yacc.c  */
-#line 252 "grammar.y"
+#line 253 "grammar.y"
        { FreeList((yyvaluep->list), FreeEnumerator); };
 
 /* Line 1009 of yacc.c  */
-#line 12208 "grammar.ec"
+#line 12209 "grammar.ec"
        break;
       case 272: /* "enum_specifier_nocompound" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12217 "grammar.ec"
+#line 12218 "grammar.ec"
        break;
       case 273: /* "enum_specifier_compound" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12226 "grammar.ec"
+#line 12227 "grammar.ec"
        break;
       case 274: /* "enum_specifier_compound_error" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12235 "grammar.ec"
+#line 12236 "grammar.ec"
        break;
       case 276: /* "enum_class" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12244 "grammar.ec"
+#line 12245 "grammar.ec"
        break;
       case 277: /* "enum_class_error" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12253 "grammar.ec"
+#line 12254 "grammar.ec"
        break;
       case 278: /* "class_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12262 "grammar.ec"
+#line 12263 "grammar.ec"
        break;
       case 279: /* "class_specifier_error" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12271 "grammar.ec"
+#line 12272 "grammar.ec"
        break;
       case 280: /* "ext_storage" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12280 "grammar.ec"
+#line 12281 "grammar.ec"
        break;
       case 281: /* "type_qualifier" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12289 "grammar.ec"
+#line 12290 "grammar.ec"
        break;
       case 282: /* "type_qualifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 253 "grammar.y"
+#line 254 "grammar.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 12298 "grammar.ec"
+#line 12299 "grammar.ec"
        break;
       case 283: /* "type_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12307 "grammar.ec"
+#line 12308 "grammar.ec"
        break;
       case 284: /* "strict_type_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12316 "grammar.ec"
+#line 12317 "grammar.ec"
        break;
       case 285: /* "struct_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12325 "grammar.ec"
+#line 12326 "grammar.ec"
        break;
       case 286: /* "struct_declarator_list" */
 
 /* Line 1009 of yacc.c  */
-#line 255 "grammar.y"
+#line 256 "grammar.y"
        { FreeList((yyvaluep->list), FreeDeclarator); };
 
 /* Line 1009 of yacc.c  */
-#line 12334 "grammar.ec"
+#line 12335 "grammar.ec"
        break;
       case 287: /* "struct_entry" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12343 "grammar.ec"
+#line 12344 "grammar.ec"
        break;
       case 288: /* "struct_or_union_specifier_compound" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12352 "grammar.ec"
+#line 12353 "grammar.ec"
        break;
       case 289: /* "struct_or_union_specifier_compound_error" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12361 "grammar.ec"
+#line 12362 "grammar.ec"
        break;
       case 290: /* "struct_or_union_specifier_nocompound" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12370 "grammar.ec"
+#line 12371 "grammar.ec"
        break;
       case 291: /* "struct_decl" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12379 "grammar.ec"
+#line 12380 "grammar.ec"
        break;
       case 292: /* "struct_head" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12388 "grammar.ec"
+#line 12389 "grammar.ec"
        break;
       case 293: /* "struct_class" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12397 "grammar.ec"
+#line 12398 "grammar.ec"
        break;
       case 294: /* "struct_class_error" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "grammar.y"
+#line 214 "grammar.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 12406 "grammar.ec"
+#line 12407 "grammar.ec"
        break;
       case 296: /* "specifier_qualifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 253 "grammar.y"
+#line 254 "grammar.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 12415 "grammar.ec"
+#line 12416 "grammar.ec"
        break;
       case 297: /* "guess_specifier_qualifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 253 "grammar.y"
+#line 254 "grammar.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 12424 "grammar.ec"
+#line 12425 "grammar.ec"
        break;
       case 298: /* "declaration_specifiers" */
 
 /* Line 1009 of yacc.c  */
-#line 253 "grammar.y"
+#line 254 "grammar.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 12433 "grammar.ec"
+#line 12434 "grammar.ec"
        break;
       case 299: /* "guess_declaration_specifiers" */
 
 /* Line 1009 of yacc.c  */
-#line 253 "grammar.y"
+#line 254 "grammar.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 12442 "grammar.ec"
+#line 12443 "grammar.ec"
        break;
       case 300: /* "external_guess_declaration_specifiers" */
 
 /* Line 1009 of yacc.c  */
-#line 253 "grammar.y"
+#line 254 "grammar.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 12451 "grammar.ec"
+#line 12452 "grammar.ec"
        break;
       case 301: /* "external_guess_declaration_specifiers_error" */
 
 /* Line 1009 of yacc.c  */
-#line 253 "grammar.y"
+#line 254 "grammar.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 12460 "grammar.ec"
+#line 12461 "grammar.ec"
        break;
       case 302: /* "_inheritance_specifiers" */
 
 /* Line 1009 of yacc.c  */
-#line 253 "grammar.y"
+#line 254 "grammar.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 12469 "grammar.ec"
+#line 12470 "grammar.ec"
        break;
       case 303: /* "inheritance_specifiers" */
 
 /* Line 1009 of yacc.c  */
-#line 253 "grammar.y"
+#line 254 "grammar.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 12478 "grammar.ec"
+#line 12479 "grammar.ec"
        break;
       case 307: /* "identifier_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 259 "grammar.y"
+#line 260 "grammar.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 12487 "grammar.ec"
+#line 12488 "grammar.ec"
        break;
       case 308: /* "identifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 259 "grammar.y"
+#line 260 "grammar.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 12496 "grammar.ec"
+#line 12497 "grammar.ec"
        break;
       case 309: /* "direct_declarator_nofunction_type_ok" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12505 "grammar.ec"
+#line 12506 "grammar.ec"
        break;
       case 310: /* "direct_declarator_nofunction" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12514 "grammar.ec"
+#line 12515 "grammar.ec"
        break;
       case 311: /* "direct_declarator_function_start" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12523 "grammar.ec"
+#line 12524 "grammar.ec"
        break;
       case 312: /* "direct_declarator_function" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12532 "grammar.ec"
+#line 12533 "grammar.ec"
        break;
       case 313: /* "direct_declarator_function_error" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12541 "grammar.ec"
+#line 12542 "grammar.ec"
        break;
       case 314: /* "direct_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12550 "grammar.ec"
+#line 12551 "grammar.ec"
        break;
       case 315: /* "direct_declarator_function_start_type_ok" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12559 "grammar.ec"
+#line 12560 "grammar.ec"
        break;
       case 316: /* "direct_declarator_function_type_ok" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12568 "grammar.ec"
+#line 12569 "grammar.ec"
        break;
       case 317: /* "direct_declarator_function_error_type_ok" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12577 "grammar.ec"
+#line 12578 "grammar.ec"
        break;
       case 318: /* "direct_declarator_type_ok" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12586 "grammar.ec"
+#line 12587 "grammar.ec"
        break;
       case 319: /* "ext_decl" */
 
 /* Line 1009 of yacc.c  */
-#line 273 "grammar.y"
+#line 274 "grammar.y"
        { FreeExtDecl((yyvaluep->extDecl)); };
 
 /* Line 1009 of yacc.c  */
-#line 12595 "grammar.ec"
+#line 12596 "grammar.ec"
        break;
       case 321: /* "attribute_word" */
 
 /* Line 1009 of yacc.c  */
-#line 248 "grammar.y"
+#line 249 "grammar.y"
        { delete (yyvaluep->string); };
 
 /* Line 1009 of yacc.c  */
-#line 12604 "grammar.ec"
+#line 12605 "grammar.ec"
        break;
       case 322: /* "attribute" */
 
 /* Line 1009 of yacc.c  */
-#line 274 "grammar.y"
+#line 275 "grammar.y"
        { FreeAttribute((yyvaluep->attribute)); };
 
 /* Line 1009 of yacc.c  */
-#line 12613 "grammar.ec"
+#line 12614 "grammar.ec"
        break;
       case 323: /* "attribs_list" */
 
 /* Line 1009 of yacc.c  */
-#line 275 "grammar.y"
+#line 276 "grammar.y"
        { FreeList((yyvaluep->list), FreeAttribute); };
 
 /* Line 1009 of yacc.c  */
-#line 12622 "grammar.ec"
+#line 12623 "grammar.ec"
        break;
       case 324: /* "attrib" */
 
 /* Line 1009 of yacc.c  */
-#line 272 "grammar.y"
+#line 273 "grammar.y"
        { FreeAttrib((yyvaluep->attrib)); };
 
 /* Line 1009 of yacc.c  */
-#line 12631 "grammar.ec"
+#line 12632 "grammar.ec"
        break;
       case 325: /* "direct_abstract_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12640 "grammar.ec"
+#line 12641 "grammar.ec"
        break;
       case 326: /* "direct_abstract_declarator_noarray" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12649 "grammar.ec"
+#line 12650 "grammar.ec"
        break;
       case 327: /* "pointer" */
 
 /* Line 1009 of yacc.c  */
-#line 201 "grammar.y"
+#line 202 "grammar.y"
        { FreePointer((yyvaluep->pointer)); };
 
 /* Line 1009 of yacc.c  */
-#line 12658 "grammar.ec"
+#line 12659 "grammar.ec"
        break;
       case 328: /* "abstract_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12667 "grammar.ec"
+#line 12668 "grammar.ec"
        break;
       case 329: /* "abstract_declarator_noarray" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12676 "grammar.ec"
+#line 12677 "grammar.ec"
        break;
       case 330: /* "declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12685 "grammar.ec"
+#line 12686 "grammar.ec"
        break;
       case 331: /* "declarator_type_ok" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12694 "grammar.ec"
+#line 12695 "grammar.ec"
        break;
       case 332: /* "declarator_function" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12703 "grammar.ec"
+#line 12704 "grammar.ec"
        break;
       case 333: /* "declarator_function_error" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12712 "grammar.ec"
+#line 12713 "grammar.ec"
        break;
       case 334: /* "declarator_function_type_ok" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12721 "grammar.ec"
+#line 12722 "grammar.ec"
        break;
       case 335: /* "declarator_function_error_type_ok" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12730 "grammar.ec"
+#line 12731 "grammar.ec"
        break;
       case 336: /* "declarator_nofunction_type_ok" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "grammar.y"
+#line 220 "grammar.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12739 "grammar.ec"
+#line 12740 "grammar.ec"
        break;
       case 337: /* "initializer" */
 
 /* Line 1009 of yacc.c  */
-#line 225 "grammar.y"
+#line 226 "grammar.y"
        { FreeInitializer((yyvaluep->initializer)); };
 
 /* Line 1009 of yacc.c  */
-#line 12748 "grammar.ec"
+#line 12749 "grammar.ec"
        break;
       case 338: /* "initializer_error" */
 
 /* Line 1009 of yacc.c  */
-#line 225 "grammar.y"
+#line 226 "grammar.y"
        { FreeInitializer((yyvaluep->initializer)); };
 
 /* Line 1009 of yacc.c  */
-#line 12757 "grammar.ec"
+#line 12758 "grammar.ec"
        break;
       case 339: /* "initializer_condition" */
 
 /* Line 1009 of yacc.c  */
-#line 225 "grammar.y"
+#line 226 "grammar.y"
        { FreeInitializer((yyvaluep->initializer)); };
 
 /* Line 1009 of yacc.c  */
-#line 12766 "grammar.ec"
+#line 12767 "grammar.ec"
        break;
       case 340: /* "initializer_condition_error" */
 
 /* Line 1009 of yacc.c  */
-#line 225 "grammar.y"
+#line 226 "grammar.y"
        { FreeInitializer((yyvaluep->initializer)); };
 
 /* Line 1009 of yacc.c  */
-#line 12775 "grammar.ec"
+#line 12776 "grammar.ec"
        break;
       case 341: /* "initializer_list" */
 
 /* Line 1009 of yacc.c  */
-#line 257 "grammar.y"
+#line 258 "grammar.y"
        { FreeList((yyvaluep->list), FreeInitializer); };
 
 /* Line 1009 of yacc.c  */
-#line 12784 "grammar.ec"
+#line 12785 "grammar.ec"
        break;
       case 342: /* "init_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 226 "grammar.y"
+#line 227 "grammar.y"
        { FreeInitDeclarator((yyvaluep->initDeclarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12793 "grammar.ec"
+#line 12794 "grammar.ec"
        break;
       case 343: /* "init_declarator_error" */
 
 /* Line 1009 of yacc.c  */
-#line 226 "grammar.y"
+#line 227 "grammar.y"
        { FreeInitDeclarator((yyvaluep->initDeclarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 12802 "grammar.ec"
+#line 12803 "grammar.ec"
        break;
       case 344: /* "init_declarator_list" */
 
 /* Line 1009 of yacc.c  */
-#line 258 "grammar.y"
+#line 259 "grammar.y"
        { FreeList((yyvaluep->list), FreeInitDeclarator); };
 
 /* Line 1009 of yacc.c  */
-#line 12811 "grammar.ec"
+#line 12812 "grammar.ec"
        break;
       case 345: /* "init_declarator_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 258 "grammar.y"
+#line 259 "grammar.y"
        { FreeList((yyvaluep->list), FreeInitDeclarator); };
 
 /* Line 1009 of yacc.c  */
-#line 12820 "grammar.ec"
+#line 12821 "grammar.ec"
        break;
       case 346: /* "type_name" */
 
 /* Line 1009 of yacc.c  */
-#line 227 "grammar.y"
+#line 228 "grammar.y"
        { FreeTypeName((yyvaluep->typeName)); };
 
 /* Line 1009 of yacc.c  */
-#line 12829 "grammar.ec"
+#line 12830 "grammar.ec"
        break;
       case 347: /* "guess_type_name" */
 
 /* Line 1009 of yacc.c  */
-#line 227 "grammar.y"
+#line 228 "grammar.y"
        { FreeTypeName((yyvaluep->typeName)); };
 
 /* Line 1009 of yacc.c  */
-#line 12838 "grammar.ec"
+#line 12839 "grammar.ec"
        break;
       case 348: /* "parameter_declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 227 "grammar.y"
+#line 228 "grammar.y"
        { FreeTypeName((yyvaluep->typeName)); };
 
 /* Line 1009 of yacc.c  */
-#line 12847 "grammar.ec"
+#line 12848 "grammar.ec"
        break;
       case 349: /* "parameter_declaration_error" */
 
 /* Line 1009 of yacc.c  */
-#line 227 "grammar.y"
+#line 228 "grammar.y"
        { FreeTypeName((yyvaluep->typeName)); };
 
 /* Line 1009 of yacc.c  */
-#line 12856 "grammar.ec"
+#line 12857 "grammar.ec"
        break;
       case 350: /* "parameter_list" */
 
 /* Line 1009 of yacc.c  */
-#line 259 "grammar.y"
+#line 260 "grammar.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 12865 "grammar.ec"
+#line 12866 "grammar.ec"
        break;
       case 351: /* "parameter_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 259 "grammar.y"
+#line 260 "grammar.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 12874 "grammar.ec"
+#line 12875 "grammar.ec"
        break;
       case 352: /* "parameter_type_list" */
 
 /* Line 1009 of yacc.c  */
-#line 259 "grammar.y"
+#line 260 "grammar.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 12883 "grammar.ec"
+#line 12884 "grammar.ec"
        break;
       case 353: /* "parameter_type_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 259 "grammar.y"
+#line 260 "grammar.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 12892 "grammar.ec"
+#line 12893 "grammar.ec"
        break;
       case 354: /* "statement" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 12901 "grammar.ec"
+#line 12902 "grammar.ec"
        break;
       case 355: /* "statement_error" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 12910 "grammar.ec"
+#line 12911 "grammar.ec"
        break;
       case 359: /* "labeled_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 12919 "grammar.ec"
+#line 12920 "grammar.ec"
        break;
       case 360: /* "labeled_statement_error" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 12928 "grammar.ec"
+#line 12929 "grammar.ec"
        break;
       case 361: /* "declaration_mode" */
 
 /* Line 1009 of yacc.c  */
-#line 271 "grammar.y"
+#line 272 "grammar.y"
        { };
 
 /* Line 1009 of yacc.c  */
-#line 12937 "grammar.ec"
+#line 12938 "grammar.ec"
        break;
       case 363: /* "declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 232 "grammar.y"
+#line 233 "grammar.y"
        { FreeDeclaration((yyvaluep->declaration)); };
 
 /* Line 1009 of yacc.c  */
-#line 12946 "grammar.ec"
+#line 12947 "grammar.ec"
        break;
       case 367: /* "declaration_list" */
 
 /* Line 1009 of yacc.c  */
-#line 256 "grammar.y"
+#line 257 "grammar.y"
        { FreeList((yyvaluep->list), FreeDeclaration); };
 
 /* Line 1009 of yacc.c  */
-#line 12955 "grammar.ec"
+#line 12956 "grammar.ec"
        break;
       case 368: /* "declaration_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 256 "grammar.y"
+#line 257 "grammar.y"
        { FreeList((yyvaluep->list), FreeDeclaration); };
 
 /* Line 1009 of yacc.c  */
-#line 12964 "grammar.ec"
+#line 12965 "grammar.ec"
        break;
       case 369: /* "statement_list" */
 
 /* Line 1009 of yacc.c  */
-#line 260 "grammar.y"
+#line 261 "grammar.y"
        { FreeList((yyvaluep->list), FreeStatement); };
 
 /* Line 1009 of yacc.c  */
-#line 12973 "grammar.ec"
+#line 12974 "grammar.ec"
        break;
       case 370: /* "statement_list_error" */
 
 /* Line 1009 of yacc.c  */
-#line 260 "grammar.y"
+#line 261 "grammar.y"
        { FreeList((yyvaluep->list), FreeStatement); };
 
 /* Line 1009 of yacc.c  */
-#line 12982 "grammar.ec"
+#line 12983 "grammar.ec"
        break;
       case 371: /* "compound_inside" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 12991 "grammar.ec"
+#line 12992 "grammar.ec"
        break;
       case 372: /* "compound_inside_error" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13000 "grammar.ec"
+#line 13001 "grammar.ec"
        break;
       case 373: /* "compound_start" */
 
 /* Line 1009 of yacc.c  */
-#line 265 "grammar.y"
+#line 266 "grammar.y"
        { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
 
 /* Line 1009 of yacc.c  */
-#line 13009 "grammar.ec"
+#line 13010 "grammar.ec"
        break;
       case 374: /* "compound_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13018 "grammar.ec"
+#line 13019 "grammar.ec"
        break;
       case 375: /* "compound_statement_error" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13027 "grammar.ec"
+#line 13028 "grammar.ec"
        break;
       case 376: /* "expression_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13036 "grammar.ec"
+#line 13037 "grammar.ec"
        break;
       case 377: /* "selection_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13045 "grammar.ec"
+#line 13046 "grammar.ec"
        break;
       case 378: /* "selection_statement_error" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13054 "grammar.ec"
+#line 13055 "grammar.ec"
        break;
       case 379: /* "iteration_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13063 "grammar.ec"
+#line 13064 "grammar.ec"
        break;
       case 380: /* "iteration_statement_error" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13072 "grammar.ec"
+#line 13073 "grammar.ec"
        break;
       case 381: /* "jump_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13081 "grammar.ec"
+#line 13082 "grammar.ec"
        break;
       case 382: /* "jump_statement_error" */
 
 /* Line 1009 of yacc.c  */
-#line 228 "grammar.y"
+#line 229 "grammar.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 13090 "grammar.ec"
+#line 13091 "grammar.ec"
        break;
       case 383: /* "function_definition" */
 
 /* Line 1009 of yacc.c  */
-#line 233 "grammar.y"
+#line 234 "grammar.y"
        { FreeFunction((yyvaluep->function)); };
 
 /* Line 1009 of yacc.c  */
-#line 13099 "grammar.ec"
+#line 13100 "grammar.ec"
        break;
       case 384: /* "function_definition_error" */
 
 /* Line 1009 of yacc.c  */
-#line 233 "grammar.y"
+#line 234 "grammar.y"
        { FreeFunction((yyvaluep->function)); };
 
 /* Line 1009 of yacc.c  */
-#line 13108 "grammar.ec"
+#line 13109 "grammar.ec"
        break;
       case 385: /* "string_literal" */
 
 /* Line 1009 of yacc.c  */
-#line 248 "grammar.y"
+#line 249 "grammar.y"
        { delete (yyvaluep->string); };
 
 /* Line 1009 of yacc.c  */
-#line 13117 "grammar.ec"
+#line 13118 "grammar.ec"
        break;
       case 386: /* "external_declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 234 "grammar.y"
+#line 235 "grammar.y"
        { FreeExternal((yyvaluep->external)); };
 
 /* Line 1009 of yacc.c  */
-#line 13126 "grammar.ec"
+#line 13127 "grammar.ec"
        break;
       case 387: /* "external_declaration_error" */
 
 /* Line 1009 of yacc.c  */
-#line 234 "grammar.y"
+#line 235 "grammar.y"
        { FreeExternal((yyvaluep->external)); };
 
 /* Line 1009 of yacc.c  */
-#line 13135 "grammar.ec"
+#line 13136 "grammar.ec"
        break;
       case 388: /* "translation_unit_error" */
 
 /* Line 1009 of yacc.c  */
-#line 261 "grammar.y"
+#line 262 "grammar.y"
        { if((yyvaluep->list) != ast) FreeList((yyvaluep->list), FreeExternal); };
 
 /* Line 1009 of yacc.c  */
-#line 13144 "grammar.ec"
+#line 13145 "grammar.ec"
        break;
       case 389: /* "translation_unit" */
 
 /* Line 1009 of yacc.c  */
-#line 261 "grammar.y"
+#line 262 "grammar.y"
        { if((yyvaluep->list) != ast) FreeList((yyvaluep->list), FreeExternal); };
 
 /* Line 1009 of yacc.c  */
-#line 13153 "grammar.ec"
+#line 13154 "grammar.ec"
        break;
 
       default:
@@ -13481,7 +13482,7 @@ yyreduce:
         case 2:
 
 /* Line 1464 of yacc.c  */
-#line 283 "grammar.y"
+#line 284 "grammar.y"
     {
       (yyval.specifier) = null;
       _DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
@@ -13505,7 +13506,7 @@ yyreduce:
   case 3:
 
 /* Line 1464 of yacc.c  */
-#line 302 "grammar.y"
+#line 303 "grammar.y"
     {
       (yyval.specifier) = null;
    #ifdef PRECOMPILER
@@ -13531,14 +13532,14 @@ yyreduce:
   case 4:
 
 /* Line 1464 of yacc.c  */
-#line 340 "grammar.y"
+#line 341 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
     break;
 
   case 5:
 
 /* Line 1464 of yacc.c  */
-#line 342 "grammar.y"
+#line 343 "grammar.y"
     {
    #ifdef PRECOMPILER
       if(!(yyvsp[(1) - (2)].id).string[0])
@@ -13577,28 +13578,28 @@ yyreduce:
   case 6:
 
 /* Line 1464 of yacc.c  */
-#line 421 "grammar.y"
+#line 422 "grammar.y"
     { (yyval.specifier) = MkSpecifierName(yytext); ;}
     break;
 
   case 7:
 
 /* Line 1464 of yacc.c  */
-#line 425 "grammar.y"
+#line 426 "grammar.y"
     { (yyval.string) = CopyString(yytext); ;}
     break;
 
   case 9:
 
 /* Line 1464 of yacc.c  */
-#line 429 "grammar.y"
+#line 430 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (4)].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); ;}
     break;
 
   case 10:
 
 /* Line 1464 of yacc.c  */
-#line 431 "grammar.y"
+#line 432 "grammar.y"
     {
       (yyval.specifier) = (yyvsp[(1) - (4)].specifier);
       SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list));
@@ -13614,119 +13615,119 @@ yyreduce:
   case 11:
 
 /* Line 1464 of yacc.c  */
-#line 470 "grammar.y"
+#line 471 "grammar.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 12:
 
 /* Line 1464 of yacc.c  */
-#line 472 "grammar.y"
+#line 473 "grammar.y"
     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 13:
 
 /* Line 1464 of yacc.c  */
-#line 477 "grammar.y"
+#line 478 "grammar.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (3)].list), null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 14:
 
 /* Line 1464 of yacc.c  */
-#line 482 "grammar.y"
+#line 483 "grammar.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (4)].list), null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 15:
 
 /* Line 1464 of yacc.c  */
-#line 487 "grammar.y"
+#line 488 "grammar.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 16:
 
 /* Line 1464 of yacc.c  */
-#line 489 "grammar.y"
+#line 490 "grammar.y"
     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 17:
 
 /* Line 1464 of yacc.c  */
-#line 494 "grammar.y"
+#line 495 "grammar.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 18:
 
 /* Line 1464 of yacc.c  */
-#line 496 "grammar.y"
+#line 497 "grammar.y"
     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 19:
 
 /* Line 1464 of yacc.c  */
-#line 501 "grammar.y"
+#line 502 "grammar.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 20:
 
 /* Line 1464 of yacc.c  */
-#line 503 "grammar.y"
+#line 504 "grammar.y"
     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 21:
 
 /* Line 1464 of yacc.c  */
-#line 508 "grammar.y"
+#line 509 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 22:
 
 /* Line 1464 of yacc.c  */
-#line 510 "grammar.y"
+#line 511 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 23:
 
 /* Line 1464 of yacc.c  */
-#line 512 "grammar.y"
+#line 513 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 24:
 
 /* Line 1464 of yacc.c  */
-#line 514 "grammar.y"
+#line 515 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 25:
 
 /* Line 1464 of yacc.c  */
-#line 516 "grammar.y"
+#line 517 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 26:
 
 /* Line 1464 of yacc.c  */
-#line 520 "grammar.y"
+#line 521 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 27:
 
 /* Line 1464 of yacc.c  */
-#line 524 "grammar.y"
+#line 525 "grammar.y"
     {
          if((yyvsp[(1) - (3)].classFunction).declarator)
          {
@@ -13741,112 +13742,112 @@ yyreduce:
   case 28:
 
 /* Line 1464 of yacc.c  */
-#line 537 "grammar.y"
+#line 538 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end = (yyvsp[(2) - (2)].stmt).loc.end; ;}
     break;
 
   case 29:
 
 /* Line 1464 of yacc.c  */
-#line 539 "grammar.y"
+#line 540 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (1)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
     break;
 
   case 30:
 
 /* Line 1464 of yacc.c  */
-#line 541 "grammar.y"
+#line 542 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end = (yyvsp[(2) - (2)].stmt).loc.end; ;}
     break;
 
   case 31:
 
 /* Line 1464 of yacc.c  */
-#line 543 "grammar.y"
+#line 544 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (1)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
     break;
 
   case 32:
 
 /* Line 1464 of yacc.c  */
-#line 545 "grammar.y"
+#line 546 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
     break;
 
   case 33:
 
 /* Line 1464 of yacc.c  */
-#line 551 "grammar.y"
+#line 552 "grammar.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 34:
 
 /* Line 1464 of yacc.c  */
-#line 553 "grammar.y"
+#line 554 "grammar.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, MkDeclaratorFunction((yyvsp[(2) - (2)].declarator), null), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 35:
 
 /* Line 1464 of yacc.c  */
-#line 558 "grammar.y"
+#line 559 "grammar.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 36:
 
 /* Line 1464 of yacc.c  */
-#line 563 "grammar.y"
+#line 564 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 37:
 
 /* Line 1464 of yacc.c  */
-#line 568 "grammar.y"
+#line 569 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end = (yyvsp[(2) - (2)].stmt).loc.end; (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
     break;
 
   case 38:
 
 /* Line 1464 of yacc.c  */
-#line 570 "grammar.y"
+#line 571 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (1)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
     break;
 
   case 39:
 
 /* Line 1464 of yacc.c  */
-#line 572 "grammar.y"
+#line 573 "grammar.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (1)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
     break;
 
   case 40:
 
 /* Line 1464 of yacc.c  */
-#line 576 "grammar.y"
+#line 577 "grammar.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end;;}
     break;
 
   case 41:
 
 /* Line 1464 of yacc.c  */
-#line 577 "grammar.y"
+#line 578 "grammar.y"
     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
     break;
 
   case 42:
 
 /* Line 1464 of yacc.c  */
-#line 581 "grammar.y"
+#line 582 "grammar.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end;;}
     break;
 
   case 43:
 
 /* Line 1464 of yacc.c  */
-#line 583 "grammar.y"
+#line 584 "grammar.y"
     {
          (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), MkInitializerAssignment(MkExpDummy()));
          (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yyval.memberInit).initializer.loc.end = (yylsp[(2) - (3)]).end;
@@ -13862,56 +13863,56 @@ yyreduce:
   case 44:
 
 /* Line 1464 of yacc.c  */
-#line 593 "grammar.y"
+#line 594 "grammar.y"
     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
     break;
 
   case 45:
 
 /* Line 1464 of yacc.c  */
-#line 597 "grammar.y"
+#line 598 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
     break;
 
   case 46:
 
 /* Line 1464 of yacc.c  */
-#line 599 "grammar.y"
+#line 600 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 47:
 
 /* Line 1464 of yacc.c  */
-#line 601 "grammar.y"
+#line 602 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 48:
 
 /* Line 1464 of yacc.c  */
-#line 605 "grammar.y"
+#line 606 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
     break;
 
   case 49:
 
 /* Line 1464 of yacc.c  */
-#line 607 "grammar.y"
+#line 608 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 50:
 
 /* Line 1464 of yacc.c  */
-#line 609 "grammar.y"
+#line 610 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 51:
 
 /* Line 1464 of yacc.c  */
-#line 612 "grammar.y"
+#line 613 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(2) - (3)]).end;
          {
             Initializer dummy = MkInitializerAssignment(MkExpDummy());
@@ -13927,7 +13928,7 @@ yyreduce:
   case 52:
 
 /* Line 1464 of yacc.c  */
-#line 624 "grammar.y"
+#line 625 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(2) - (3)]).end;
          {
             Initializer dummy = MkInitializerAssignment(MkExpDummy());
@@ -13943,7 +13944,7 @@ yyreduce:
   case 53:
 
 /* Line 1464 of yacc.c  */
-#line 635 "grammar.y"
+#line 636 "grammar.y"
     {
          Initializer dummy = MkInitializerAssignment(MkExpDummy());
          MemberInit memberInit = MkMemberInit(null, dummy);
@@ -13964,63 +13965,63 @@ yyreduce:
   case 54:
 
 /* Line 1464 of yacc.c  */
-#line 654 "grammar.y"
+#line 655 "grammar.y"
     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 55:
 
 /* Line 1464 of yacc.c  */
-#line 656 "grammar.y"
+#line 657 "grammar.y"
     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 56:
 
 /* Line 1464 of yacc.c  */
-#line 660 "grammar.y"
+#line 661 "grammar.y"
     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 57:
 
 /* Line 1464 of yacc.c  */
-#line 661 "grammar.y"
+#line 662 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 58:
 
 /* Line 1464 of yacc.c  */
-#line 662 "grammar.y"
+#line 663 "grammar.y"
     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members);  members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 59:
 
 /* Line 1464 of yacc.c  */
-#line 663 "grammar.y"
+#line 664 "grammar.y"
     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 60:
 
 /* Line 1464 of yacc.c  */
-#line 664 "grammar.y"
+#line 665 "grammar.y"
     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 61:
 
 /* Line 1464 of yacc.c  */
-#line 665 "grammar.y"
+#line 666 "grammar.y"
     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 63:
 
 /* Line 1464 of yacc.c  */
-#line 668 "grammar.y"
+#line 669 "grammar.y"
     {
       MembersInit members = (MembersInit)(yyval.list)->last;
       if(members.type == dataMembersInit)
@@ -14038,224 +14039,224 @@ yyreduce:
   case 64:
 
 /* Line 1464 of yacc.c  */
-#line 680 "grammar.y"
+#line 681 "grammar.y"
     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
     break;
 
   case 66:
 
 /* Line 1464 of yacc.c  */
-#line 685 "grammar.y"
+#line 686 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 67:
 
 /* Line 1464 of yacc.c  */
-#line 686 "grammar.y"
+#line 687 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
     break;
 
   case 68:
 
 /* Line 1464 of yacc.c  */
-#line 687 "grammar.y"
+#line 688 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
     break;
 
   case 69:
 
 /* Line 1464 of yacc.c  */
-#line 691 "grammar.y"
+#line 692 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 70:
 
 /* Line 1464 of yacc.c  */
-#line 692 "grammar.y"
+#line 693 "grammar.y"
     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 71:
 
 /* Line 1464 of yacc.c  */
-#line 693 "grammar.y"
+#line 694 "grammar.y"
     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 72:
 
 /* Line 1464 of yacc.c  */
-#line 694 "grammar.y"
+#line 695 "grammar.y"
     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 73:
 
 /* Line 1464 of yacc.c  */
-#line 695 "grammar.y"
+#line 696 "grammar.y"
     { ListAdd((yyval.list), MkMembersInitList((yyvsp[(2) - (2)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 74:
 
 /* Line 1464 of yacc.c  */
-#line 696 "grammar.y"
+#line 697 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 75:
 
 /* Line 1464 of yacc.c  */
-#line 697 "grammar.y"
+#line 698 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (2)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
     break;
 
   case 76:
 
 /* Line 1464 of yacc.c  */
-#line 702 "grammar.y"
+#line 703 "grammar.y"
     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start; (yyval.instance) = (yyvsp[(1) - (2)].instance); ;}
     break;
 
   case 77:
 
 /* Line 1464 of yacc.c  */
-#line 704 "grammar.y"
+#line 705 "grammar.y"
     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).start; (yyval.instance) = (yyvsp[(1) - (3)].instance); ;}
     break;
 
   case 78:
 
 /* Line 1464 of yacc.c  */
-#line 709 "grammar.y"
+#line 710 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), (yyvsp[(4) - (4)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 79:
 
 /* Line 1464 of yacc.c  */
-#line 711 "grammar.y"
+#line 712 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (5)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (5)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 80:
 
 /* Line 1464 of yacc.c  */
-#line 713 "grammar.y"
+#line 714 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), (yyvsp[(4) - (4)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 81:
 
 /* Line 1464 of yacc.c  */
-#line 715 "grammar.y"
+#line 716 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (3)].list), MkExpIdentifier((yyvsp[(2) - (3)].id)), null); (yyval.instance).exp.loc = (yylsp[(2) - (3)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (3)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 82:
 
 /* Line 1464 of yacc.c  */
-#line 717 "grammar.y"
+#line 718 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), null);(yyval.instance).exp.loc = (yylsp[(2) - (4)]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 83:
 
 /* Line 1464 of yacc.c  */
-#line 747 "grammar.y"
+#line 748 "grammar.y"
     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start; ;}
     break;
 
   case 84:
 
 /* Line 1464 of yacc.c  */
-#line 749 "grammar.y"
+#line 750 "grammar.y"
     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).start; ;}
     break;
 
   case 85:
 
 /* Line 1464 of yacc.c  */
-#line 754 "grammar.y"
+#line 755 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), (yyvsp[(4) - (4)].list));(yyval.instance).exp.loc = (yylsp[(2) - (4)]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 86:
 
 /* Line 1464 of yacc.c  */
-#line 756 "grammar.y"
+#line 757 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (5)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (5)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 87:
 
 /* Line 1464 of yacc.c  */
-#line 758 "grammar.y"
+#line 759 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), (yyvsp[(4) - (4)].list));(yyval.instance).exp.loc = (yylsp[(2) - (4)]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 88:
 
 /* Line 1464 of yacc.c  */
-#line 760 "grammar.y"
+#line 761 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (3)].list), MkExpIdentifier((yyvsp[(2) - (3)].id)), null);(yyval.instance).exp.loc = (yylsp[(2) - (3)]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (3)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 89:
 
 /* Line 1464 of yacc.c  */
-#line 762 "grammar.y"
+#line 763 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), null);(yyval.instance).exp.loc = (yylsp[(2) - (4)]);  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 90:
 
 /* Line 1464 of yacc.c  */
-#line 791 "grammar.y"
+#line 792 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (5)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(5) - (5)]).start;;}
     break;
 
   case 91:
 
 /* Line 1464 of yacc.c  */
-#line 793 "grammar.y"
+#line 794 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (5)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(5) - (5)]).start;;}
     break;
 
   case 92:
 
 /* Line 1464 of yacc.c  */
-#line 795 "grammar.y"
+#line 796 "grammar.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), MkList());  (yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start;;}
     break;
 
   case 93:
 
 /* Line 1464 of yacc.c  */
-#line 800 "grammar.y"
+#line 801 "grammar.y"
     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start; (yyval.instance) = (yyvsp[(1) - (2)].instance); ;}
     break;
 
   case 94:
 
 /* Line 1464 of yacc.c  */
-#line 802 "grammar.y"
+#line 803 "grammar.y"
     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).start; (yyval.instance) = (yyvsp[(1) - (3)].instance); ;}
     break;
 
   case 95:
 
 /* Line 1464 of yacc.c  */
-#line 807 "grammar.y"
+#line 808 "grammar.y"
     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (3)].specifier), null, (yyvsp[(3) - (3)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 96:
 
 /* Line 1464 of yacc.c  */
-#line 809 "grammar.y"
+#line 810 "grammar.y"
     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (3)]);
       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (3)].id).string), null, (yyvsp[(3) - (3)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; FreeIdentifier((yyvsp[(1) - (3)].id)); ;}
     break;
@@ -14263,35 +14264,35 @@ yyreduce:
   case 97:
 
 /* Line 1464 of yacc.c  */
-#line 813 "grammar.y"
+#line 814 "grammar.y"
     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (3)].specifier), null, (yyvsp[(3) - (3)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 98:
 
 /* Line 1464 of yacc.c  */
-#line 815 "grammar.y"
+#line 816 "grammar.y"
     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (2)].specifier), null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 99:
 
 /* Line 1464 of yacc.c  */
-#line 817 "grammar.y"
+#line 818 "grammar.y"
     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (4)].specifier), null, (yyvsp[(3) - (4)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (4)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 100:
 
 /* Line 1464 of yacc.c  */
-#line 819 "grammar.y"
+#line 820 "grammar.y"
     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (3)].specifier), null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++;  ;}
     break;
 
   case 101:
 
 /* Line 1464 of yacc.c  */
-#line 824 "grammar.y"
+#line 825 "grammar.y"
     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (3)]);
       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (3)].id).string), null, (yyvsp[(3) - (3)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[(1) - (3)].id)); ;}
     break;
@@ -14299,7 +14300,7 @@ yyreduce:
   case 102:
 
 /* Line 1464 of yacc.c  */
-#line 827 "grammar.y"
+#line 828 "grammar.y"
     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (2)]);
       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (2)].id).string), null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[(1) - (2)].id)); ;}
     break;
@@ -14307,7 +14308,7 @@ yyreduce:
   case 103:
 
 /* Line 1464 of yacc.c  */
-#line 830 "grammar.y"
+#line 831 "grammar.y"
     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (4)]);
       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (4)].id).string), null, (yyvsp[(3) - (4)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (4)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[(1) - (4)].id)); ;}
     break;
@@ -14315,7 +14316,7 @@ yyreduce:
   case 104:
 
 /* Line 1464 of yacc.c  */
-#line 833 "grammar.y"
+#line 834 "grammar.y"
     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (3)]);
       yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (3)].id).string), null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[(1) - (3)].id)); ;}
     break;
@@ -14323,840 +14324,840 @@ yyreduce:
   case 105:
 
 /* Line 1464 of yacc.c  */
-#line 898 "grammar.y"
+#line 899 "grammar.y"
     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start; ;}
     break;
 
   case 106:
 
 /* Line 1464 of yacc.c  */
-#line 900 "grammar.y"
+#line 901 "grammar.y"
     { (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).start; ;}
     break;
 
   case 107:
 
 /* Line 1464 of yacc.c  */
-#line 905 "grammar.y"
+#line 906 "grammar.y"
     { (yyval.instance) = MkInstantiation(null, null, (yyvsp[(2) - (2)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 108:
 
 /* Line 1464 of yacc.c  */
-#line 907 "grammar.y"
+#line 908 "grammar.y"
     { (yyval.instance) = MkInstantiation(null, null, (yyvsp[(2) - (3)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 109:
 
 /* Line 1464 of yacc.c  */
-#line 909 "grammar.y"
+#line 910 "grammar.y"
     { (yyval.instance) = MkInstantiation(null, null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(1) - (2)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++;  ;}
     break;
 
   case 110:
 
 /* Line 1464 of yacc.c  */
-#line 911 "grammar.y"
+#line 912 "grammar.y"
     { (yyval.instance) = MkInstantiation(null, null, null);  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (1)]).end; (yyval.instance).insideLoc.end = (yylsp[(1) - (1)]).end;  (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 111:
 
 /* Line 1464 of yacc.c  */
-#line 913 "grammar.y"
+#line 914 "grammar.y"
     { (yyval.instance) = MkInstantiation(null, null, (yyvsp[(2) - (2)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
     break;
 
   case 112:
 
 /* Line 1464 of yacc.c  */
-#line 943 "grammar.y"
+#line 944 "grammar.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
     break;
 
   case 113:
 
 /* Line 1464 of yacc.c  */
-#line 947 "grammar.y"
+#line 948 "grammar.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
     break;
 
   case 114:
 
 /* Line 1464 of yacc.c  */
-#line 948 "grammar.y"
+#line 949 "grammar.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), MkInitializerAssignment(MkExpDummy())); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end; (yyval.memberInit).initializer.loc.end = (yylsp[(2) - (3)]).end; ;}
     break;
 
   case 115:
 
 /* Line 1464 of yacc.c  */
-#line 949 "grammar.y"
+#line 950 "grammar.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (2)].exp), null); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
     break;
 
   case 116:
 
 /* Line 1464 of yacc.c  */
-#line 953 "grammar.y"
+#line 954 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
     break;
 
   case 117:
 
 /* Line 1464 of yacc.c  */
-#line 954 "grammar.y"
+#line 955 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 118:
 
 /* Line 1464 of yacc.c  */
-#line 955 "grammar.y"
+#line 956 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 119:
 
 /* Line 1464 of yacc.c  */
-#line 959 "grammar.y"
+#line 960 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
     break;
 
   case 120:
 
 /* Line 1464 of yacc.c  */
-#line 960 "grammar.y"
+#line 961 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 121:
 
 /* Line 1464 of yacc.c  */
-#line 961 "grammar.y"
+#line 962 "grammar.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 123:
 
 /* Line 1464 of yacc.c  */
-#line 967 "grammar.y"
+#line 968 "grammar.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, (yyvsp[(3) - (4)].id), null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 124:
 
 /* Line 1464 of yacc.c  */
-#line 970 "grammar.y"
+#line 971 "grammar.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), (yyvsp[(4) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 125:
 
 /* Line 1464 of yacc.c  */
-#line 973 "grammar.y"
+#line 974 "grammar.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (3)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 126:
 
 /* Line 1464 of yacc.c  */
-#line 976 "grammar.y"
+#line 977 "grammar.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 127:
 
 /* Line 1464 of yacc.c  */
-#line 979 "grammar.y"
+#line 980 "grammar.y"
     { (yyval.prop) = MkProperty(null, null, null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 129:
 
 /* Line 1464 of yacc.c  */
-#line 985 "grammar.y"
+#line 986 "grammar.y"
     { (yyvsp[(1) - (3)].prop).setStmt = (yyvsp[(3) - (3)].stmt); ;}
     break;
 
   case 130:
 
 /* Line 1464 of yacc.c  */
-#line 987 "grammar.y"
+#line 988 "grammar.y"
     { (yyvsp[(1) - (3)].prop).getStmt = (yyvsp[(3) - (3)].stmt); ;}
     break;
 
   case 131:
 
 /* Line 1464 of yacc.c  */
-#line 989 "grammar.y"
+#line 990 "grammar.y"
     { (yyvsp[(1) - (3)].prop).issetStmt = (yyvsp[(3) - (3)].stmt); ;}
     break;
 
   case 132:
 
 /* Line 1464 of yacc.c  */
-#line 991 "grammar.y"
+#line 992 "grammar.y"
     { (yyvsp[(1) - (2)].prop).isWatchable = true; ;}
     break;
 
   case 133:
 
 /* Line 1464 of yacc.c  */
-#line 993 "grammar.y"
+#line 994 "grammar.y"
     { (yyvsp[(1) - (3)].prop).category = (yyvsp[(3) - (3)].exp); ;}
     break;
 
   case 134:
 
 /* Line 1464 of yacc.c  */
-#line 997 "grammar.y"
+#line 998 "grammar.y"
     { (yyvsp[(1) - (2)].prop).loc.end = (yylsp[(2) - (2)]).end; (yyval.prop) = (yyvsp[(1) - (2)].prop); ;}
     break;
 
   case 135:
 
 /* Line 1464 of yacc.c  */
-#line 1002 "grammar.y"
+#line 1003 "grammar.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, (yyvsp[(3) - (4)].id), null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 136:
 
 /* Line 1464 of yacc.c  */
-#line 1005 "grammar.y"
+#line 1006 "grammar.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), (yyvsp[(4) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 137:
 
 /* Line 1464 of yacc.c  */
-#line 1008 "grammar.y"
+#line 1009 "grammar.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (3)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 138:
 
 /* Line 1464 of yacc.c  */
-#line 1011 "grammar.y"
+#line 1012 "grammar.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 139:
 
 /* Line 1464 of yacc.c  */
-#line 1014 "grammar.y"
+#line 1015 "grammar.y"
     { (yyval.prop) = MkProperty(null, null, null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 141:
 
 /* Line 1464 of yacc.c  */
-#line 1020 "grammar.y"
+#line 1021 "grammar.y"
     { (yyvsp[(1) - (3)].prop).setStmt = (yyvsp[(3) - (3)].stmt); ;}
     break;
 
   case 142:
 
 /* Line 1464 of yacc.c  */
-#line 1022 "grammar.y"
+#line 1023 "grammar.y"
     { (yyvsp[(1) - (3)].prop).getStmt = (yyvsp[(3) - (3)].stmt); ;}
     break;
 
   case 143:
 
 /* Line 1464 of yacc.c  */
-#line 1026 "grammar.y"
+#line 1027 "grammar.y"
     { (yyvsp[(1) - (2)].prop).loc.end = (yylsp[(2) - (2)]).end; ;}
     break;
 
   case 144:
 
 /* Line 1464 of yacc.c  */
-#line 1031 "grammar.y"
+#line 1032 "grammar.y"
     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].id)); ;}
     break;
 
   case 145:
 
 /* Line 1464 of yacc.c  */
-#line 1033 "grammar.y"
+#line 1034 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].id)); ;}
     break;
 
   case 146:
 
 /* Line 1464 of yacc.c  */
-#line 1038 "grammar.y"
+#line 1039 "grammar.y"
     { (yyval.propertyWatch) = MkPropertyWatch((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 147:
 
 /* Line 1464 of yacc.c  */
-#line 1040 "grammar.y"
+#line 1041 "grammar.y"
     { (yyval.propertyWatch) = MkDeleteWatch((yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 148:
 
 /* Line 1464 of yacc.c  */
-#line 1045 "grammar.y"
+#line 1046 "grammar.y"
     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].propertyWatch)); ;}
     break;
 
   case 149:
 
 /* Line 1464 of yacc.c  */
-#line 1047 "grammar.y"
+#line 1048 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].propertyWatch)); ;}
     break;
 
   case 150:
 
 /* Line 1464 of yacc.c  */
-#line 1052 "grammar.y"
+#line 1053 "grammar.y"
     { (yyval.propertyWatch) = MkPropertyWatch((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); ;}
     break;
 
   case 151:
 
 /* Line 1464 of yacc.c  */
-#line 1057 "grammar.y"
+#line 1058 "grammar.y"
     { (yyval.stmt) = MkWatchStmt(null, (yyvsp[(3) - (7)].exp), (yyvsp[(6) - (7)].list)); ;}
     break;
 
   case 152:
 
 /* Line 1464 of yacc.c  */
-#line 1059 "grammar.y"
+#line 1060 "grammar.y"
     { (yyval.stmt) = MkWatchStmt((yyvsp[(1) - (9)].exp), (yyvsp[(5) - (9)].exp), (yyvsp[(8) - (9)].list)); ;}
     break;
 
   case 153:
 
 /* Line 1464 of yacc.c  */
-#line 1064 "grammar.y"
+#line 1065 "grammar.y"
     { (yyval.stmt) = MkStopWatchingStmt(null, (yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].list)); ;}
     break;
 
   case 154:
 
 /* Line 1464 of yacc.c  */
-#line 1066 "grammar.y"
+#line 1067 "grammar.y"
     { (yyval.stmt) = MkStopWatchingStmt((yyvsp[(1) - (8)].exp), (yyvsp[(5) - (8)].exp), (yyvsp[(7) - (8)].list)); ;}
     break;
 
   case 155:
 
 /* Line 1464 of yacc.c  */
-#line 1068 "grammar.y"
+#line 1069 "grammar.y"
     { (yyval.stmt) = MkStopWatchingStmt(null, (yyvsp[(3) - (4)].exp), null); ;}
     break;
 
   case 156:
 
 /* Line 1464 of yacc.c  */
-#line 1070 "grammar.y"
+#line 1071 "grammar.y"
     { (yyval.stmt) = MkStopWatchingStmt((yyvsp[(1) - (6)].exp), (yyvsp[(5) - (6)].exp), null); ;}
     break;
 
   case 157:
 
 /* Line 1464 of yacc.c  */
-#line 1075 "grammar.y"
+#line 1076 "grammar.y"
     { (yyval.stmt) = MkFireWatchersStmt(null, null); ;}
     break;
 
   case 158:
 
 /* Line 1464 of yacc.c  */
-#line 1077 "grammar.y"
+#line 1078 "grammar.y"
     { (yyval.stmt) = MkFireWatchersStmt(null, (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 159:
 
 /* Line 1464 of yacc.c  */
-#line 1079 "grammar.y"
+#line 1080 "grammar.y"
     { (yyval.stmt) = MkFireWatchersStmt((yyvsp[(1) - (3)].exp), null); ;}
     break;
 
   case 160:
 
 /* Line 1464 of yacc.c  */
-#line 1081 "grammar.y"
+#line 1082 "grammar.y"
     { (yyval.stmt) = MkFireWatchersStmt((yyvsp[(1) - (4)].exp), (yyvsp[(4) - (4)].list)); ;}
     break;
 
   case 161:
 
 /* Line 1464 of yacc.c  */
-#line 1085 "grammar.y"
+#line 1086 "grammar.y"
     { (yyval.classDef) = (yyvsp[(1) - (2)].classDef); (yyval.classDef).loc.end = (yylsp[(2) - (2)]).end; ;}
     break;
 
   case 162:
 
 /* Line 1464 of yacc.c  */
-#line 1086 "grammar.y"
+#line 1087 "grammar.y"
     { (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[(1) - (2)].list)); if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).start; (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 163:
 
 /* Line 1464 of yacc.c  */
-#line 1087 "grammar.y"
+#line 1088 "grammar.y"
     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
     break;
 
   case 164:
 
 /* Line 1464 of yacc.c  */
-#line 1088 "grammar.y"
+#line 1089 "grammar.y"
     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
     break;
 
   case 165:
 
 /* Line 1464 of yacc.c  */
-#line 1089 "grammar.y"
+#line 1090 "grammar.y"
     { (yyval.classDef) = MkClassDefFunction((yyvsp[(2) - (2)].classFunction)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
     break;
 
   case 166:
 
 /* Line 1464 of yacc.c  */
-#line 1090 "grammar.y"
+#line 1091 "grammar.y"
     { (yyval.classDef) = MkClassDefProperty((yyvsp[(2) - (2)].prop)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
     break;
 
   case 167:
 
 /* Line 1464 of yacc.c  */
-#line 1091 "grammar.y"
+#line 1092 "grammar.y"
     { (yyval.classDef) = MkClassDefClassProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 168:
 
 /* Line 1464 of yacc.c  */
-#line 1092 "grammar.y"
+#line 1093 "grammar.y"
     { (yyval.classDef) = null; deleteWatchable = true; ;}
     break;
 
   case 169:
 
 /* Line 1464 of yacc.c  */
-#line 1093 "grammar.y"
+#line 1094 "grammar.y"
     { (yyval.classDef) = MkClassDefNoExpansion(); ;}
     break;
 
   case 170:
 
 /* Line 1464 of yacc.c  */
-#line 1094 "grammar.y"
+#line 1095 "grammar.y"
     { (yyval.classDef) = MkClassDefFixed(); ;}
     break;
 
   case 171:
 
 /* Line 1464 of yacc.c  */
-#line 1095 "grammar.y"
+#line 1096 "grammar.y"
     { (yyval.classDef) = MkClassDefClassPropertyValue((yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].initializer)); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 172:
 
 /* Line 1464 of yacc.c  */
-#line 1097 "grammar.y"
+#line 1098 "grammar.y"
     { (yyval.classDef) = null; ;}
     break;
 
   case 173:
 
 /* Line 1464 of yacc.c  */
-#line 1098 "grammar.y"
+#line 1099 "grammar.y"
     { memberAccessStack[defaultMemberAccess] = (yyvsp[(1) - (2)].declMode); if(defaultMemberAccess == 0) { (yyval.classDef) = MkClassDefMemberAccess(); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); (yyval.classDef).loc = (yyloc); } else (yyval.classDef) = null; ;}
     break;
 
   case 174:
 
 /* Line 1464 of yacc.c  */
-#line 1100 "grammar.y"
+#line 1101 "grammar.y"
     { (yyval.classDef) = MkClassDefAccessOverride((yyvsp[(1) - (4)].declMode), (yyvsp[(3) - (4)].id)); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 175:
 
 /* Line 1464 of yacc.c  */
-#line 1104 "grammar.y"
+#line 1105 "grammar.y"
     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyvsp[(1) - (1)].classFunction).loc;  (yyval.classDef).loc.end.charPos++; (yyval.classDef).loc.end.pos++; (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
     break;
 
   case 176:
 
 /* Line 1464 of yacc.c  */
-#line 1107 "grammar.y"
+#line 1108 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (1)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
     break;
 
   case 177:
 
 /* Line 1464 of yacc.c  */
-#line 1108 "grammar.y"
+#line 1109 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
     break;
 
   case 178:
 
 /* Line 1464 of yacc.c  */
-#line 1109 "grammar.y"
+#line 1110 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (3)].declMode); ;}
     break;
 
   case 179:
 
 /* Line 1464 of yacc.c  */
-#line 1110 "grammar.y"
+#line 1111 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(2) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
     break;
 
   case 180:
 
 /* Line 1464 of yacc.c  */
-#line 1111 "grammar.y"
+#line 1112 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(2) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
     break;
 
   case 181:
 
 /* Line 1464 of yacc.c  */
-#line 1112 "grammar.y"
+#line 1113 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(2) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
     break;
 
   case 182:
 
 /* Line 1464 of yacc.c  */
-#line 1113 "grammar.y"
+#line 1114 "grammar.y"
     { (yyval.classDef) = MkClassDefClassData(MkStructDeclaration((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 183:
 
 /* Line 1464 of yacc.c  */
-#line 1114 "grammar.y"
+#line 1115 "grammar.y"
     { (yyval.classDef) = MkClassDefPropertyWatch((yyvsp[(1) - (1)].propertyWatch)); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 184:
 
 /* Line 1464 of yacc.c  */
-#line 1115 "grammar.y"
+#line 1116 "grammar.y"
     { (yyval.classDef) = MkClassDefDesigner((yyvsp[(2) - (2)].id).string); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
     break;
 
   case 185:
 
 /* Line 1464 of yacc.c  */
-#line 1116 "grammar.y"
+#line 1117 "grammar.y"
     { (yyval.classDef) = MkClassDefDesigner((yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 186:
 
 /* Line 1464 of yacc.c  */
-#line 1117 "grammar.y"
+#line 1118 "grammar.y"
     { (yyval.classDef) = MkClassDefDesignerDefaultProperty((yyvsp[(2) - (2)].id)); ;}
     break;
 
   case 187:
 
 /* Line 1464 of yacc.c  */
-#line 1118 "grammar.y"
+#line 1119 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (1)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
     break;
 
   case 188:
 
 /* Line 1464 of yacc.c  */
-#line 1119 "grammar.y"
+#line 1120 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (1)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
     break;
 
   case 189:
 
 /* Line 1464 of yacc.c  */
-#line 1120 "grammar.y"
+#line 1121 "grammar.y"
     { (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[(1) - (1)].list)); if((yyvsp[(1) - (1)].list)->last) ((MemberInit)(yyvsp[(1) - (1)].list)->last).loc.end = (yylsp[(1) - (1)]).end; (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 190:
 
 /* Line 1464 of yacc.c  */
-#line 1122 "grammar.y"
+#line 1123 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyvsp[(1) - (2)].instance).loc; (yyval.classDef).decl.loc = (yyval.classDef).loc;  (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
     break;
 
   case 191:
 
 /* Line 1464 of yacc.c  */
-#line 1123 "grammar.y"
+#line 1124 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyvsp[(1) - (2)].instance).loc; (yyval.classDef).decl.loc = (yyval.classDef).loc;  (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
     break;
 
   case 192:
 
 /* Line 1464 of yacc.c  */
-#line 1127 "grammar.y"
+#line 1128 "grammar.y"
     { (yyval.classDef) = MkClassDefFunction((yyvsp[(2) - (2)].classFunction)); (yyval.classDef).loc = (yyloc);  (yyval.classDef).loc.end.charPos++; (yyval.classDef).loc.end.pos++; (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
     break;
 
   case 193:
 
 /* Line 1464 of yacc.c  */
-#line 1128 "grammar.y"
+#line 1129 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(2) - (3)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = (yyvsp[(1) - (3)].declMode); ;}
     break;
 
   case 194:
 
 /* Line 1464 of yacc.c  */
-#line 1129 "grammar.y"
+#line 1130 "grammar.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(2) - (3)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = (yyvsp[(1) - (3)].declMode); ;}
     break;
 
   case 195:
 
 /* Line 1464 of yacc.c  */
-#line 1133 "grammar.y"
+#line 1134 "grammar.y"
     { (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[(1) - (1)].list)); (yyval.classDef).loc = (yyloc);  (yyval.classDef).loc.end.charPos++; (yyval.classDef).loc.end.pos++; ;}
     break;
 
   case 196:
 
 /* Line 1464 of yacc.c  */
-#line 1137 "grammar.y"
+#line 1138 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
     break;
 
   case 197:
 
 /* Line 1464 of yacc.c  */
-#line 1138 "grammar.y"
+#line 1139 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
     break;
 
   case 198:
 
 /* Line 1464 of yacc.c  */
-#line 1139 "grammar.y"
+#line 1140 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
     break;
 
   case 199:
 
 /* Line 1464 of yacc.c  */
-#line 1143 "grammar.y"
+#line 1144 "grammar.y"
     { yyerror(); (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
     break;
 
   case 202:
 
 /* Line 1464 of yacc.c  */
-#line 1146 "grammar.y"
+#line 1147 "grammar.y"
     { yyerror(); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyval.list), (yyvsp[(2) - (2)].classDef)); ;}
     break;
 
   case 203:
 
 /* Line 1464 of yacc.c  */
-#line 1147 "grammar.y"
+#line 1148 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyval.list), (yyvsp[(2) - (2)].classDef)); ;}
     break;
 
   case 204:
 
 /* Line 1464 of yacc.c  */
-#line 1151 "grammar.y"
+#line 1152 "grammar.y"
     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 205:
 
 /* Line 1464 of yacc.c  */
-#line 1152 "grammar.y"
+#line 1153 "grammar.y"
     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 206:
 
 /* Line 1464 of yacc.c  */
-#line 1164 "grammar.y"
+#line 1165 "grammar.y"
     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (1)].list), null)); ;}
     break;
 
   case 207:
 
 /* Line 1464 of yacc.c  */
-#line 1165 "grammar.y"
+#line 1166 "grammar.y"
     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator))); ;}
     break;
 
   case 208:
 
 /* Line 1464 of yacc.c  */
-#line 1169 "grammar.y"
+#line 1170 "grammar.y"
     { (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[(2) - (2)].id), null, null); ;}
     break;
 
   case 209:
 
 /* Line 1464 of yacc.c  */
-#line 1170 "grammar.y"
+#line 1171 "grammar.y"
     { (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[(2) - (4)].id), null, (yyvsp[(4) - (4)].templateArgument)); ;}
     break;
 
   case 210:
 
 /* Line 1464 of yacc.c  */
-#line 1171 "grammar.y"
+#line 1172 "grammar.y"
     { (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[(2) - (4)].id), (yyvsp[(4) - (4)].templateDatatype), null); ;}
     break;
 
   case 211:
 
 /* Line 1464 of yacc.c  */
-#line 1172 "grammar.y"
+#line 1173 "grammar.y"
     { (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[(2) - (6)].id), (yyvsp[(4) - (6)].templateDatatype), (yyvsp[(6) - (6)].templateArgument)); ;}
     break;
 
   case 212:
 
 /* Line 1464 of yacc.c  */
-#line 1173 "grammar.y"
+#line 1174 "grammar.y"
     { (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[(2) - (2)].string)), null, null); delete (yyvsp[(2) - (2)].string); ;}
     break;
 
   case 213:
 
 /* Line 1464 of yacc.c  */
-#line 1174 "grammar.y"
+#line 1175 "grammar.y"
     { (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[(2) - (4)].string)), null, (yyvsp[(4) - (4)].templateArgument)); ;}
     break;
 
   case 214:
 
 /* Line 1464 of yacc.c  */
-#line 1175 "grammar.y"
+#line 1176 "grammar.y"
     { (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[(2) - (4)].string)), (yyvsp[(4) - (4)].templateDatatype), null); ;}
     break;
 
   case 215:
 
 /* Line 1464 of yacc.c  */
-#line 1176 "grammar.y"
+#line 1177 "grammar.y"
     { (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[(2) - (6)].string)), (yyvsp[(4) - (6)].templateDatatype), (yyvsp[(6) - (6)].templateArgument)); ;}
     break;
 
   case 216:
 
 /* Line 1464 of yacc.c  */
-#line 1180 "grammar.y"
+#line 1181 "grammar.y"
     { (yyval.templateArgument) = MkTemplateIdentifierArgument((yyvsp[(1) - (1)].id)); ;}
     break;
 
   case 217:
 
 /* Line 1464 of yacc.c  */
-#line 1184 "grammar.y"
+#line 1185 "grammar.y"
     { (yyval.templateParameter) = MkIdentifierTemplateParameter((yyvsp[(1) - (1)].id), dataMember, null); ;}
     break;
 
   case 218:
 
 /* Line 1464 of yacc.c  */
-#line 1185 "grammar.y"
+#line 1186 "grammar.y"
     { (yyval.templateParameter) = MkIdentifierTemplateParameter((yyvsp[(1) - (3)].id), dataMember, (yyvsp[(3) - (3)].templateArgument)); ;}
     break;
 
   case 219:
 
 /* Line 1464 of yacc.c  */
-#line 1189 "grammar.y"
+#line 1190 "grammar.y"
     { (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 220:
 
 /* Line 1464 of yacc.c  */
-#line 1197 "grammar.y"
+#line 1198 "grammar.y"
     { (yyval.templateParameter) = MkExpressionTemplateParameter((yyvsp[(2) - (4)].id), MkTemplateDatatype((yyvsp[(1) - (4)].list), null), (yyvsp[(4) - (4)].templateArgument)); ;}
     break;
 
   case 221:
 
 /* Line 1464 of yacc.c  */
-#line 1198 "grammar.y"
+#line 1199 "grammar.y"
     { (yyval.templateParameter) = MkExpressionTemplateParameter((yyvsp[(3) - (5)].id), MkTemplateDatatype((yyvsp[(1) - (5)].list), (yyvsp[(2) - (5)].declarator)), (yyvsp[(5) - (5)].templateArgument)); ;}
     break;
 
   case 225:
 
 /* Line 1464 of yacc.c  */
-#line 1208 "grammar.y"
+#line 1209 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateParameter)); ;}
     break;
 
   case 226:
 
 /* Line 1464 of yacc.c  */
-#line 1209 "grammar.y"
+#line 1210 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateParameter)); ;}
     break;
 
   case 230:
 
 /* Line 1464 of yacc.c  */
-#line 1216 "grammar.y"
+#line 1217 "grammar.y"
     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
     break;
 
   case 231:
 
 /* Line 1464 of yacc.c  */
-#line 1217 "grammar.y"
+#line 1218 "grammar.y"
     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
     break;
 
   case 232:
 
 /* Line 1464 of yacc.c  */
-#line 1218 "grammar.y"
+#line 1219 "grammar.y"
     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
     break;
 
   case 233:
 
 /* Line 1464 of yacc.c  */
-#line 1258 "grammar.y"
+#line 1259 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateArgument)); ;}
     break;
 
   case 234:
 
 /* Line 1464 of yacc.c  */
-#line 1259 "grammar.y"
+#line 1260 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateArgument)); ;}
     break;
 
   case 235:
 
 /* Line 1464 of yacc.c  */
-#line 1264 "grammar.y"
+#line 1265 "grammar.y"
     {
       if(curContext != globalContext)
          PopContext(curContext);
@@ -15167,14 +15168,14 @@ yyreduce:
   case 236:
 
 /* Line 1464 of yacc.c  */
-#line 1271 "grammar.y"
+#line 1272 "grammar.y"
     { (void)(yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); FreeIdentifier((yyvsp[(2) - (2)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (2)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
     break;
 
   case 237:
 
 /* Line 1464 of yacc.c  */
-#line 1273 "grammar.y"
+#line 1274 "grammar.y"
     {
       (void)(yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name);
       (yyval.symbol).nameLoc = (yylsp[(2) - (2)]);
@@ -15187,28 +15188,28 @@ yyreduce:
   case 238:
 
 /* Line 1464 of yacc.c  */
-#line 1280 "grammar.y"
+#line 1281 "grammar.y"
     { (void)(yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(3) - (3)].id)._class, (yyvsp[(3) - (3)].id).string); FreeIdentifier((yyvsp[(1) - (3)].id)); FreeIdentifier((yyvsp[(3) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
     break;
 
   case 239:
 
 /* Line 1464 of yacc.c  */
-#line 1281 "grammar.y"
+#line 1282 "grammar.y"
     { (void)(yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClass((yyvsp[(3) - (3)].specifier).nsSpec, (yyvsp[(3) - (3)].specifier).name); FreeIdentifier((yyvsp[(1) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (3)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
     break;
 
   case 240:
 
 /* Line 1464 of yacc.c  */
-#line 1283 "grammar.y"
+#line 1284 "grammar.y"
     { (void)(yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string); (yyval.symbol).templateParams = (yyvsp[(4) - (5)].list); FreeIdentifier((yyvsp[(2) - (5)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (5)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
     break;
 
   case 241:
 
 /* Line 1464 of yacc.c  */
-#line 1285 "grammar.y"
+#line 1286 "grammar.y"
     {
       (void)(yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClass((yyvsp[(2) - (5)].specifier).nsSpec, (yyvsp[(2) - (5)].specifier).name);
       (yyval.symbol).templateParams = (yyvsp[(4) - (5)].list);
@@ -15222,21 +15223,21 @@ yyreduce:
   case 242:
 
 /* Line 1464 of yacc.c  */
-#line 1293 "grammar.y"
+#line 1294 "grammar.y"
     { (void)(yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(3) - (6)].id)._class, (yyvsp[(3) - (6)].id).string); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); FreeIdentifier((yyvsp[(3) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
     break;
 
   case 243:
 
 /* Line 1464 of yacc.c  */
-#line 1294 "grammar.y"
+#line 1295 "grammar.y"
     { (void)(yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClass((yyvsp[(3) - (6)].specifier).nsSpec, (yyvsp[(3) - (6)].specifier).name); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (6)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
     break;
 
   case 244:
 
 /* Line 1464 of yacc.c  */
-#line 1299 "grammar.y"
+#line 1300 "grammar.y"
     {
          (yyval._class).loc = (yyloc);
          (yyval._class) = (yyvsp[(1) - (2)]._class);
@@ -15246,7 +15247,7 @@ yyreduce:
   case 245:
 
 /* Line 1464 of yacc.c  */
-#line 1306 "grammar.y"
+#line 1307 "grammar.y"
     {
          (yyval._class) = (yyvsp[(1) - (2)]._class); (yyval._class).definitions = MkList(); (yyval._class).blockStart = (yylsp[(2) - (2)]);  (yyval._class).loc = (yyloc);
          POP_DEFAULT_ACCESS
@@ -15257,7 +15258,7 @@ yyreduce:
   case 246:
 
 /* Line 1464 of yacc.c  */
-#line 1313 "grammar.y"
+#line 1314 "grammar.y"
     {
          (yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), null, MkList()); (yyval._class).blockStart = (yylsp[(2) - (3)]);  (yyval._class).loc = (yyloc);
          POP_DEFAULT_ACCESS
@@ -15268,7 +15269,7 @@ yyreduce:
   case 247:
 
 /* Line 1464 of yacc.c  */
-#line 1319 "grammar.y"
+#line 1320 "grammar.y"
     {
          (yyval._class) = (yyvsp[(1) - (3)]._class); (yyval._class).definitions = MkList(); (yyval._class).blockStart = (yylsp[(2) - (3)]);  (yyval._class).loc = (yyloc);
          POP_DEFAULT_ACCESS
@@ -15279,7 +15280,7 @@ yyreduce:
   case 248:
 
 /* Line 1464 of yacc.c  */
-#line 1326 "grammar.y"
+#line 1327 "grammar.y"
     {
          (void)(yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClassAddNameSpace((yyvsp[(2) - (3)].id)._class, (yyvsp[(2) - (3)].id).string), null, null); FreeIdentifier((yyvsp[(2) - (3)].id));
          POP_DEFAULT_ACCESS
@@ -15290,7 +15291,7 @@ yyreduce:
   case 249:
 
 /* Line 1464 of yacc.c  */
-#line 1332 "grammar.y"
+#line 1333 "grammar.y"
     {
          (void)(yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClass((yyvsp[(2) - (3)].specifier).nsSpec, (yyvsp[(2) - (3)].specifier).name), null, null); FreeSpecifier((yyvsp[(2) - (3)].specifier));
          POP_DEFAULT_ACCESS
@@ -15301,7 +15302,7 @@ yyreduce:
   case 250:
 
 /* Line 1464 of yacc.c  */
-#line 1341 "grammar.y"
+#line 1342 "grammar.y"
     {
          (yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].list), null);
       ;}
@@ -15310,7 +15311,7 @@ yyreduce:
   case 251:
 
 /* Line 1464 of yacc.c  */
-#line 1348 "grammar.y"
+#line 1349 "grammar.y"
     {
          (yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), null, (yyvsp[(3) - (3)].list)); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
          POP_DEFAULT_ACCESS
@@ -15321,7 +15322,7 @@ yyreduce:
   case 252:
 
 /* Line 1464 of yacc.c  */
-#line 1354 "grammar.y"
+#line 1355 "grammar.y"
     {
          (yyval._class) = (yyvsp[(1) - (3)]._class); (yyval._class).definitions = (yyvsp[(3) - (3)].list); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]);  (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
          POP_DEFAULT_ACCESS
@@ -15332,7 +15333,7 @@ yyreduce:
   case 253:
 
 /* Line 1464 of yacc.c  */
-#line 1360 "grammar.y"
+#line 1361 "grammar.y"
     {
          (yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), null, (yyvsp[(3) - (3)].list)); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
          POP_DEFAULT_ACCESS
@@ -15343,7 +15344,7 @@ yyreduce:
   case 254:
 
 /* Line 1464 of yacc.c  */
-#line 1366 "grammar.y"
+#line 1367 "grammar.y"
     {
          (yyval._class) = (yyvsp[(1) - (3)]._class); (yyval._class).definitions = (yyvsp[(3) - (3)].list); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]);  (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
          POP_DEFAULT_ACCESS
@@ -15354,7 +15355,7 @@ yyreduce:
   case 255:
 
 /* Line 1464 of yacc.c  */
-#line 1372 "grammar.y"
+#line 1373 "grammar.y"
     {
          (yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), null, MkList()); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]);  (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
          POP_DEFAULT_ACCESS
@@ -15365,7 +15366,7 @@ yyreduce:
   case 256:
 
 /* Line 1464 of yacc.c  */
-#line 1378 "grammar.y"
+#line 1379 "grammar.y"
     {
          (yyval._class) = (yyvsp[(1) - (3)]._class); (yyval._class).definitions = MkList(); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]);  (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
          POP_DEFAULT_ACCESS
@@ -15376,91 +15377,91 @@ yyreduce:
   case 257:
 
 /* Line 1464 of yacc.c  */
-#line 1389 "grammar.y"
+#line 1390 "grammar.y"
     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 259:
 
 /* Line 1464 of yacc.c  */
-#line 1395 "grammar.y"
+#line 1396 "grammar.y"
     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 260:
 
 /* Line 1464 of yacc.c  */
-#line 1399 "grammar.y"
+#line 1400 "grammar.y"
     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 261:
 
 /* Line 1464 of yacc.c  */
-#line 1400 "grammar.y"
+#line 1401 "grammar.y"
     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 262:
 
 /* Line 1464 of yacc.c  */
-#line 1401 "grammar.y"
+#line 1402 "grammar.y"
     { (yyval.exp) = MkExpIntlString((yyvsp[(4) - (4)].string), (yyvsp[(2) - (4)].string)); delete (yyvsp[(2) - (4)].string); delete (yyvsp[(4) - (4)].string); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 263:
 
 /* Line 1464 of yacc.c  */
-#line 1405 "grammar.y"
+#line 1406 "grammar.y"
     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 264:
 
 /* Line 1464 of yacc.c  */
-#line 1409 "grammar.y"
+#line 1410 "grammar.y"
     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 265:
 
 /* Line 1464 of yacc.c  */
-#line 1410 "grammar.y"
+#line 1411 "grammar.y"
     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 266:
 
 /* Line 1464 of yacc.c  */
-#line 1411 "grammar.y"
+#line 1412 "grammar.y"
     { (yyval.exp) = MkExpExtensionCompound((yyvsp[(3) - (4)].stmt)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 267:
 
 /* Line 1464 of yacc.c  */
-#line 1412 "grammar.y"
+#line 1413 "grammar.y"
     { (yyval.exp) = MkExpExtensionExpression((yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 268:
 
 /* Line 1464 of yacc.c  */
-#line 1413 "grammar.y"
+#line 1414 "grammar.y"
     { (yyval.exp) = MkExpExtensionInitializer((yyvsp[(3) - (5)].typeName), (yyvsp[(5) - (5)].initializer)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 269:
 
 /* Line 1464 of yacc.c  */
-#line 1414 "grammar.y"
+#line 1415 "grammar.y"
     { (yyval.exp) = MkExpExtensionInitializer((yyvsp[(3) - (8)].typeName), MkInitializerAssignment(MkExpExtensionInitializer((yyvsp[(6) - (8)].typeName), (yyvsp[(8) - (8)].initializer)))); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 270:
 
 /* Line 1464 of yacc.c  */
-#line 1416 "grammar.y"
+#line 1417 "grammar.y"
     {
       char * constant = (yyvsp[(1) - (2)].exp).constant;
       int len = strlen(constant);
@@ -15478,630 +15479,630 @@ yyreduce:
   case 271:
 
 /* Line 1464 of yacc.c  */
-#line 1428 "grammar.y"
+#line 1429 "grammar.y"
     { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
     break;
 
   case 273:
 
 /* Line 1464 of yacc.c  */
-#line 1430 "grammar.y"
+#line 1431 "grammar.y"
     { (yyval.exp) = MkExpWideString(yytext); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 274:
 
 /* Line 1464 of yacc.c  */
-#line 1431 "grammar.y"
+#line 1432 "grammar.y"
     { Expression exp = MkExpDummy(); exp.loc.start = (yylsp[(1) - (2)]).end; exp.loc.end = (yylsp[(2) - (2)]).start; (yyval.exp) = MkExpBrackets(MkListOne(exp)); (yyval.exp).loc = (yyloc); yyerror(); ;}
     break;
 
   case 275:
 
 /* Line 1464 of yacc.c  */
-#line 1432 "grammar.y"
+#line 1433 "grammar.y"
     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 276:
 
 /* Line 1464 of yacc.c  */
-#line 1433 "grammar.y"
+#line 1434 "grammar.y"
     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 277:
 
 /* Line 1464 of yacc.c  */
-#line 1434 "grammar.y"
+#line 1435 "grammar.y"
     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 278:
 
 /* Line 1464 of yacc.c  */
-#line 1435 "grammar.y"
+#line 1436 "grammar.y"
     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 279:
 
 /* Line 1464 of yacc.c  */
-#line 1436 "grammar.y"
+#line 1437 "grammar.y"
     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 280:
 
 /* Line 1464 of yacc.c  */
-#line 1437 "grammar.y"
+#line 1438 "grammar.y"
     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 281:
 
 /* Line 1464 of yacc.c  */
-#line 1438 "grammar.y"
+#line 1439 "grammar.y"
     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 282:
 
 /* Line 1464 of yacc.c  */
-#line 1439 "grammar.y"
+#line 1440 "grammar.y"
     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 283:
 
 /* Line 1464 of yacc.c  */
-#line 1440 "grammar.y"
+#line 1441 "grammar.y"
     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 284:
 
 /* Line 1464 of yacc.c  */
-#line 1441 "grammar.y"
+#line 1442 "grammar.y"
     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 285:
 
 /* Line 1464 of yacc.c  */
-#line 1442 "grammar.y"
+#line 1443 "grammar.y"
     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 286:
 
 /* Line 1464 of yacc.c  */
-#line 1443 "grammar.y"
+#line 1444 "grammar.y"
     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 287:
 
 /* Line 1464 of yacc.c  */
-#line 1444 "grammar.y"
+#line 1445 "grammar.y"
     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 288:
 
 /* Line 1464 of yacc.c  */
-#line 1445 "grammar.y"
+#line 1446 "grammar.y"
     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 289:
 
 /* Line 1464 of yacc.c  */
-#line 1446 "grammar.y"
+#line 1447 "grammar.y"
     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 290:
 
 /* Line 1464 of yacc.c  */
-#line 1447 "grammar.y"
+#line 1448 "grammar.y"
     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 291:
 
 /* Line 1464 of yacc.c  */
-#line 1448 "grammar.y"
+#line 1449 "grammar.y"
     { (yyval.exp) = MkExpClass((yyvsp[(3) - (4)].list), null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 292:
 
 /* Line 1464 of yacc.c  */
-#line 1449 "grammar.y"
+#line 1450 "grammar.y"
     { (yyval.exp) = MkExpClass((yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].declarator)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 293:
 
 /* Line 1464 of yacc.c  */
-#line 1450 "grammar.y"
+#line 1451 "grammar.y"
     { (yyval.exp) = MkExpClass(MkListOne(MkSpecifierName((yyvsp[(3) - (4)].id).string)), null); FreeIdentifier((yyvsp[(3) - (4)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 294:
 
 /* Line 1464 of yacc.c  */
-#line 1451 "grammar.y"
+#line 1452 "grammar.y"
     { (yyval.exp) = MkExpVaArg((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].typeName)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 295:
 
 /* Line 1464 of yacc.c  */
-#line 1453 "grammar.y"
+#line 1454 "grammar.y"
     { (yyval.exp) = MkExpClassData((yyvsp[(3) - (4)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 300:
 
 /* Line 1464 of yacc.c  */
-#line 1459 "grammar.y"
+#line 1460 "grammar.y"
     { (yyval.exp) = MkExpArray((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 301:
 
 /* Line 1464 of yacc.c  */
-#line 1460 "grammar.y"
+#line 1461 "grammar.y"
     { (yyval.exp) = MkExpArray(null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 302:
 
 /* Line 1464 of yacc.c  */
-#line 1464 "grammar.y"
+#line 1465 "grammar.y"
     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 303:
 
 /* Line 1464 of yacc.c  */
-#line 1468 "grammar.y"
+#line 1469 "grammar.y"
     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (2)].instance)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 304:
 
 /* Line 1464 of yacc.c  */
-#line 1472 "grammar.y"
+#line 1473 "grammar.y"
     { yyerror(); (yyval.exp) = MkExpBrackets((yyvsp[(2) - (2)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 305:
 
 /* Line 1464 of yacc.c  */
-#line 1473 "grammar.y"
+#line 1474 "grammar.y"
     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (2)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 307:
 
 /* Line 1464 of yacc.c  */
-#line 1479 "grammar.y"
+#line 1480 "grammar.y"
     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 308:
 
 /* Line 1464 of yacc.c  */
-#line 1480 "grammar.y"
+#line 1481 "grammar.y"
     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 309:
 
 /* Line 1464 of yacc.c  */
-#line 1481 "grammar.y"
+#line 1482 "grammar.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 310:
 
 /* Line 1464 of yacc.c  */
-#line 1482 "grammar.y"
+#line 1483 "grammar.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end; (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 311:
 
 /* Line 1464 of yacc.c  */
-#line 1483 "grammar.y"
+#line 1484 "grammar.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end; (yyval.exp).loc = (yyloc); if((yyvsp[(3) - (4)].list)->last) ((Expression)(yyvsp[(3) - (4)].list)->last).loc.end = (yylsp[(4) - (4)]).start; ;}
     break;
 
   case 312:
 
 /* Line 1464 of yacc.c  */
-#line 1484 "grammar.y"
+#line 1485 "grammar.y"
     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 313:
 
 /* Line 1464 of yacc.c  */
-#line 1485 "grammar.y"
+#line 1486 "grammar.y"
     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 314:
 
 /* Line 1464 of yacc.c  */
-#line 1486 "grammar.y"
+#line 1487 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 315:
 
 /* Line 1464 of yacc.c  */
-#line 1487 "grammar.y"
+#line 1488 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 316:
 
 /* Line 1464 of yacc.c  */
-#line 1489 "grammar.y"
+#line 1490 "grammar.y"
     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 317:
 
 /* Line 1464 of yacc.c  */
-#line 1490 "grammar.y"
+#line 1491 "grammar.y"
     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 318:
 
 /* Line 1464 of yacc.c  */
-#line 1491 "grammar.y"
+#line 1492 "grammar.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 319:
 
 /* Line 1464 of yacc.c  */
-#line 1492 "grammar.y"
+#line 1493 "grammar.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end;(yyval.exp).loc = (yyloc); ;}
     break;
 
   case 320:
 
 /* Line 1464 of yacc.c  */
-#line 1493 "grammar.y"
+#line 1494 "grammar.y"
     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 321:
 
 /* Line 1464 of yacc.c  */
-#line 1494 "grammar.y"
+#line 1495 "grammar.y"
     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 322:
 
 /* Line 1464 of yacc.c  */
-#line 1495 "grammar.y"
+#line 1496 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 323:
 
 /* Line 1464 of yacc.c  */
-#line 1496 "grammar.y"
+#line 1497 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 324:
 
 /* Line 1464 of yacc.c  */
-#line 1523 "grammar.y"
+#line 1524 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 325:
 
 /* Line 1464 of yacc.c  */
-#line 1524 "grammar.y"
+#line 1525 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 326:
 
 /* Line 1464 of yacc.c  */
-#line 1525 "grammar.y"
+#line 1526 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
     break;
 
   case 327:
 
 /* Line 1464 of yacc.c  */
-#line 1526 "grammar.y"
+#line 1527 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
     break;
 
   case 328:
 
 /* Line 1464 of yacc.c  */
-#line 1530 "grammar.y"
+#line 1531 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 329:
 
 /* Line 1464 of yacc.c  */
-#line 1531 "grammar.y"
+#line 1532 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 330:
 
 /* Line 1464 of yacc.c  */
-#line 1532 "grammar.y"
+#line 1533 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
     break;
 
   case 331:
 
 /* Line 1464 of yacc.c  */
-#line 1533 "grammar.y"
+#line 1534 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
     break;
 
   case 332:
 
 /* Line 1464 of yacc.c  */
-#line 1534 "grammar.y"
+#line 1535 "grammar.y"
     { Expression exp = MkExpDummy(); yyerror(); exp.loc.start = (yylsp[(2) - (2)]).end; exp.loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), exp); ;}
     break;
 
   case 333:
 
 /* Line 1464 of yacc.c  */
-#line 1538 "grammar.y"
+#line 1539 "grammar.y"
     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 334:
 
 /* Line 1464 of yacc.c  */
-#line 1539 "grammar.y"
+#line 1540 "grammar.y"
     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 335:
 
 /* Line 1464 of yacc.c  */
-#line 1540 "grammar.y"
+#line 1541 "grammar.y"
     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 336:
 
 /* Line 1464 of yacc.c  */
-#line 1541 "grammar.y"
+#line 1542 "grammar.y"
     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 337:
 
 /* Line 1464 of yacc.c  */
-#line 1543 "grammar.y"
+#line 1544 "grammar.y"
     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 338:
 
 /* Line 1464 of yacc.c  */
-#line 1544 "grammar.y"
+#line 1545 "grammar.y"
     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 339:
 
 /* Line 1464 of yacc.c  */
-#line 1545 "grammar.y"
+#line 1546 "grammar.y"
     { (yyval.exp) = MkExpClassSize((yyvsp[(4) - (5)].specifier)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 340:
 
 /* Line 1464 of yacc.c  */
-#line 1546 "grammar.y"
+#line 1547 "grammar.y"
     { (yyval.exp) = MkExpClassSize((yyvsp[(4) - (5)].specifier)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 341:
 
 /* Line 1464 of yacc.c  */
-#line 1549 "grammar.y"
+#line 1550 "grammar.y"
     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 342:
 
 /* Line 1464 of yacc.c  */
-#line 1550 "grammar.y"
+#line 1551 "grammar.y"
     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 345:
 
 /* Line 1464 of yacc.c  */
-#line 1564 "grammar.y"
+#line 1565 "grammar.y"
     { (yyval.i) = '&'; ;}
     break;
 
   case 346:
 
 /* Line 1464 of yacc.c  */
-#line 1565 "grammar.y"
+#line 1566 "grammar.y"
     { (yyval.i) = '*'; ;}
     break;
 
   case 347:
 
 /* Line 1464 of yacc.c  */
-#line 1566 "grammar.y"
+#line 1567 "grammar.y"
     { (yyval.i) = '+'; ;}
     break;
 
   case 348:
 
 /* Line 1464 of yacc.c  */
-#line 1567 "grammar.y"
+#line 1568 "grammar.y"
     { (yyval.i) = '-'; ;}
     break;
 
   case 349:
 
 /* Line 1464 of yacc.c  */
-#line 1568 "grammar.y"
+#line 1569 "grammar.y"
     { (yyval.i) = '~'; ;}
     break;
 
   case 350:
 
 /* Line 1464 of yacc.c  */
-#line 1569 "grammar.y"
+#line 1570 "grammar.y"
     { (yyval.i) = '!'; ;}
     break;
 
   case 351:
 
 /* Line 1464 of yacc.c  */
-#line 1570 "grammar.y"
+#line 1571 "grammar.y"
     { (yyval.i) = DELETE; ;}
     break;
 
   case 352:
 
 /* Line 1464 of yacc.c  */
-#line 1571 "grammar.y"
+#line 1572 "grammar.y"
     { (yyval.i) = _INCREF; ;}
     break;
 
   case 354:
 
 /* Line 1464 of yacc.c  */
-#line 1576 "grammar.y"
+#line 1577 "grammar.y"
     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 356:
 
 /* Line 1464 of yacc.c  */
-#line 1581 "grammar.y"
+#line 1582 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 357:
 
 /* Line 1464 of yacc.c  */
-#line 1582 "grammar.y"
+#line 1583 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 358:
 
 /* Line 1464 of yacc.c  */
-#line 1583 "grammar.y"
+#line 1584 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 359:
 
 /* Line 1464 of yacc.c  */
-#line 1584 "grammar.y"
+#line 1585 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 360:
 
 /* Line 1464 of yacc.c  */
-#line 1585 "grammar.y"
+#line 1586 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 361:
 
 /* Line 1464 of yacc.c  */
-#line 1586 "grammar.y"
+#line 1587 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 363:
 
 /* Line 1464 of yacc.c  */
-#line 1591 "grammar.y"
+#line 1592 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 364:
 
 /* Line 1464 of yacc.c  */
-#line 1592 "grammar.y"
+#line 1593 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 365:
 
 /* Line 1464 of yacc.c  */
-#line 1593 "grammar.y"
+#line 1594 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 366:
 
 /* Line 1464 of yacc.c  */
-#line 1594 "grammar.y"
+#line 1595 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 368:
 
 /* Line 1464 of yacc.c  */
-#line 1599 "grammar.y"
+#line 1600 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 369:
 
 /* Line 1464 of yacc.c  */
-#line 1600 "grammar.y"
+#line 1601 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 370:
 
 /* Line 1464 of yacc.c  */
-#line 1601 "grammar.y"
+#line 1602 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 371:
 
 /* Line 1464 of yacc.c  */
-#line 1602 "grammar.y"
+#line 1603 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 372:
 
 /* Line 1464 of yacc.c  */
-#line 1607 "grammar.y"
+#line 1608 "grammar.y"
     {
       (yyval.exp) = (yyvsp[(1) - (2)].exp);
       skipErrors = true;
@@ -16111,756 +16112,756 @@ yyreduce:
   case 374:
 
 /* Line 1464 of yacc.c  */
-#line 1615 "grammar.y"
+#line 1616 "grammar.y"
     { skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), '<', (yyvsp[(2) - (2)].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 375:
 
 /* Line 1464 of yacc.c  */
-#line 1616 "grammar.y"
+#line 1617 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 376:
 
 /* Line 1464 of yacc.c  */
-#line 1617 "grammar.y"
+#line 1618 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 377:
 
 /* Line 1464 of yacc.c  */
-#line 1618 "grammar.y"
+#line 1619 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 378:
 
 /* Line 1464 of yacc.c  */
-#line 1619 "grammar.y"
+#line 1620 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '<', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 379:
 
 /* Line 1464 of yacc.c  */
-#line 1620 "grammar.y"
+#line 1621 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 380:
 
 /* Line 1464 of yacc.c  */
-#line 1621 "grammar.y"
+#line 1622 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 381:
 
 /* Line 1464 of yacc.c  */
-#line 1622 "grammar.y"
+#line 1623 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 383:
 
 /* Line 1464 of yacc.c  */
-#line 1627 "grammar.y"
+#line 1628 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 384:
 
 /* Line 1464 of yacc.c  */
-#line 1628 "grammar.y"
+#line 1629 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 385:
 
 /* Line 1464 of yacc.c  */
-#line 1629 "grammar.y"
+#line 1630 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 386:
 
 /* Line 1464 of yacc.c  */
-#line 1630 "grammar.y"
+#line 1631 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 387:
 
 /* Line 1464 of yacc.c  */
-#line 1632 "grammar.y"
+#line 1633 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 388:
 
 /* Line 1464 of yacc.c  */
-#line 1633 "grammar.y"
+#line 1634 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 389:
 
 /* Line 1464 of yacc.c  */
-#line 1634 "grammar.y"
+#line 1635 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 390:
 
 /* Line 1464 of yacc.c  */
-#line 1635 "grammar.y"
+#line 1636 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 392:
 
 /* Line 1464 of yacc.c  */
-#line 1640 "grammar.y"
+#line 1641 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 393:
 
 /* Line 1464 of yacc.c  */
-#line 1641 "grammar.y"
+#line 1642 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 394:
 
 /* Line 1464 of yacc.c  */
-#line 1643 "grammar.y"
+#line 1644 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 395:
 
 /* Line 1464 of yacc.c  */
-#line 1644 "grammar.y"
+#line 1645 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 397:
 
 /* Line 1464 of yacc.c  */
-#line 1649 "grammar.y"
+#line 1650 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 398:
 
 /* Line 1464 of yacc.c  */
-#line 1650 "grammar.y"
+#line 1651 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 399:
 
 /* Line 1464 of yacc.c  */
-#line 1652 "grammar.y"
+#line 1653 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 400:
 
 /* Line 1464 of yacc.c  */
-#line 1653 "grammar.y"
+#line 1654 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 402:
 
 /* Line 1464 of yacc.c  */
-#line 1658 "grammar.y"
+#line 1659 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 403:
 
 /* Line 1464 of yacc.c  */
-#line 1659 "grammar.y"
+#line 1660 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 404:
 
 /* Line 1464 of yacc.c  */
-#line 1661 "grammar.y"
+#line 1662 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 405:
 
 /* Line 1464 of yacc.c  */
-#line 1662 "grammar.y"
+#line 1663 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 407:
 
 /* Line 1464 of yacc.c  */
-#line 1667 "grammar.y"
+#line 1668 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 408:
 
 /* Line 1464 of yacc.c  */
-#line 1668 "grammar.y"
+#line 1669 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 410:
 
 /* Line 1464 of yacc.c  */
-#line 1673 "grammar.y"
+#line 1674 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 411:
 
 /* Line 1464 of yacc.c  */
-#line 1674 "grammar.y"
+#line 1675 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 413:
 
 /* Line 1464 of yacc.c  */
-#line 1679 "grammar.y"
+#line 1680 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 414:
 
 /* Line 1464 of yacc.c  */
-#line 1680 "grammar.y"
+#line 1681 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 415:
 
 /* Line 1464 of yacc.c  */
-#line 1681 "grammar.y"
+#line 1682 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 416:
 
 /* Line 1464 of yacc.c  */
-#line 1682 "grammar.y"
+#line 1683 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 417:
 
 /* Line 1464 of yacc.c  */
-#line 1684 "grammar.y"
+#line 1685 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 418:
 
 /* Line 1464 of yacc.c  */
-#line 1685 "grammar.y"
+#line 1686 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 419:
 
 /* Line 1464 of yacc.c  */
-#line 1686 "grammar.y"
+#line 1687 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 420:
 
 /* Line 1464 of yacc.c  */
-#line 1687 "grammar.y"
+#line 1688 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 421:
 
 /* Line 1464 of yacc.c  */
-#line 1689 "grammar.y"
+#line 1690 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 422:
 
 /* Line 1464 of yacc.c  */
-#line 1690 "grammar.y"
+#line 1691 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 423:
 
 /* Line 1464 of yacc.c  */
-#line 1691 "grammar.y"
+#line 1692 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 424:
 
 /* Line 1464 of yacc.c  */
-#line 1692 "grammar.y"
+#line 1693 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 425:
 
 /* Line 1464 of yacc.c  */
-#line 1694 "grammar.y"
+#line 1695 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 426:
 
 /* Line 1464 of yacc.c  */
-#line 1695 "grammar.y"
+#line 1696 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 427:
 
 /* Line 1464 of yacc.c  */
-#line 1696 "grammar.y"
+#line 1697 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 428:
 
 /* Line 1464 of yacc.c  */
-#line 1697 "grammar.y"
+#line 1698 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 430:
 
 /* Line 1464 of yacc.c  */
-#line 1702 "grammar.y"
+#line 1703 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 431:
 
 /* Line 1464 of yacc.c  */
-#line 1703 "grammar.y"
+#line 1704 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 432:
 
 /* Line 1464 of yacc.c  */
-#line 1704 "grammar.y"
+#line 1705 "grammar.y"
     { Compiler_Error($"l-value expected\n"); (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 433:
 
 /* Line 1464 of yacc.c  */
-#line 1705 "grammar.y"
+#line 1706 "grammar.y"
     { Compiler_Error($"l-value expected\n"); (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 434:
 
 /* Line 1464 of yacc.c  */
-#line 1707 "grammar.y"
+#line 1708 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 435:
 
 /* Line 1464 of yacc.c  */
-#line 1708 "grammar.y"
+#line 1709 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 436:
 
 /* Line 1464 of yacc.c  */
-#line 1709 "grammar.y"
+#line 1710 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 437:
 
 /* Line 1464 of yacc.c  */
-#line 1710 "grammar.y"
+#line 1711 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 438:
 
 /* Line 1464 of yacc.c  */
-#line 1714 "grammar.y"
+#line 1715 "grammar.y"
     { (yyval.i) = '='; ;}
     break;
 
   case 439:
 
 /* Line 1464 of yacc.c  */
-#line 1715 "grammar.y"
+#line 1716 "grammar.y"
     { (yyval.i) = MUL_ASSIGN; ;}
     break;
 
   case 440:
 
 /* Line 1464 of yacc.c  */
-#line 1716 "grammar.y"
+#line 1717 "grammar.y"
     { (yyval.i) = DIV_ASSIGN; ;}
     break;
 
   case 441:
 
 /* Line 1464 of yacc.c  */
-#line 1717 "grammar.y"
+#line 1718 "grammar.y"
     { (yyval.i) = MOD_ASSIGN; ;}
     break;
 
   case 442:
 
 /* Line 1464 of yacc.c  */
-#line 1718 "grammar.y"
+#line 1719 "grammar.y"
     { (yyval.i) = ADD_ASSIGN; ;}
     break;
 
   case 443:
 
 /* Line 1464 of yacc.c  */
-#line 1719 "grammar.y"
+#line 1720 "grammar.y"
     { (yyval.i) = SUB_ASSIGN; ;}
     break;
 
   case 444:
 
 /* Line 1464 of yacc.c  */
-#line 1720 "grammar.y"
+#line 1721 "grammar.y"
     { (yyval.i) = LEFT_ASSIGN; ;}
     break;
 
   case 445:
 
 /* Line 1464 of yacc.c  */
-#line 1721 "grammar.y"
+#line 1722 "grammar.y"
     { (yyval.i) = RIGHT_ASSIGN; ;}
     break;
 
   case 446:
 
 /* Line 1464 of yacc.c  */
-#line 1722 "grammar.y"
+#line 1723 "grammar.y"
     { (yyval.i) = AND_ASSIGN; ;}
     break;
 
   case 447:
 
 /* Line 1464 of yacc.c  */
-#line 1723 "grammar.y"
+#line 1724 "grammar.y"
     { (yyval.i) = XOR_ASSIGN; ;}
     break;
 
   case 448:
 
 /* Line 1464 of yacc.c  */
-#line 1724 "grammar.y"
+#line 1725 "grammar.y"
     { (yyval.i) = OR_ASSIGN; ;}
     break;
 
   case 449:
 
 /* Line 1464 of yacc.c  */
-#line 1728 "grammar.y"
+#line 1729 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 450:
 
 /* Line 1464 of yacc.c  */
-#line 1729 "grammar.y"
+#line 1730 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 451:
 
 /* Line 1464 of yacc.c  */
-#line 1730 "grammar.y"
+#line 1731 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 453:
 
 /* Line 1464 of yacc.c  */
-#line 1735 "grammar.y"
+#line 1736 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 454:
 
 /* Line 1464 of yacc.c  */
-#line 1736 "grammar.y"
+#line 1737 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 455:
 
 /* Line 1464 of yacc.c  */
-#line 1737 "grammar.y"
+#line 1738 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 457:
 
 /* Line 1464 of yacc.c  */
-#line 1742 "grammar.y"
+#line 1743 "grammar.y"
     { (yyval.exp) = MkExpDummy(); (yyval.exp).loc = (yyloc); /*printf("Sorry, didn't mean that syntax error\n");*/ ;}
     break;
 
   case 459:
 
 /* Line 1464 of yacc.c  */
-#line 1744 "grammar.y"
+#line 1745 "grammar.y"
     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (2)].instance)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 460:
 
 /* Line 1464 of yacc.c  */
-#line 1746 "grammar.y"
+#line 1747 "grammar.y"
     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 461:
 
 /* Line 1464 of yacc.c  */
-#line 1747 "grammar.y"
+#line 1748 "grammar.y"
     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 462:
 
 /* Line 1464 of yacc.c  */
-#line 1749 "grammar.y"
+#line 1750 "grammar.y"
     { yyerror(); (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
     break;
 
   case 463:
 
 /* Line 1464 of yacc.c  */
-#line 1750 "grammar.y"
+#line 1751 "grammar.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
     break;
 
   case 464:
 
 /* Line 1464 of yacc.c  */
-#line 1755 "grammar.y"
+#line 1756 "grammar.y"
     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 465:
 
 /* Line 1464 of yacc.c  */
-#line 1757 "grammar.y"
+#line 1758 "grammar.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].list)); (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).call.argLoc.end.charPos++;;}
     break;
 
   case 466:
 
 /* Line 1464 of yacc.c  */
-#line 1762 "grammar.y"
+#line 1763 "grammar.y"
     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 467:
 
 /* Line 1464 of yacc.c  */
-#line 1790 "grammar.y"
+#line 1791 "grammar.y"
     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 468:
 
 /* Line 1464 of yacc.c  */
-#line 1791 "grammar.y"
+#line 1792 "grammar.y"
     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 469:
 
 /* Line 1464 of yacc.c  */
-#line 1792 "grammar.y"
+#line 1793 "grammar.y"
     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 470:
 
 /* Line 1464 of yacc.c  */
-#line 1793 "grammar.y"
+#line 1794 "grammar.y"
     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 471:
 
 /* Line 1464 of yacc.c  */
-#line 1795 "grammar.y"
+#line 1796 "grammar.y"
     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 472:
 
 /* Line 1464 of yacc.c  */
-#line 1796 "grammar.y"
+#line 1797 "grammar.y"
     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (5)].typeName)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 473:
 
 /* Line 1464 of yacc.c  */
-#line 1797 "grammar.y"
+#line 1798 "grammar.y"
     { (yyval.exp) = MkExpClassSize((yyvsp[(4) - (6)].specifier)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 474:
 
 /* Line 1464 of yacc.c  */
-#line 1798 "grammar.y"
+#line 1799 "grammar.y"
     { (yyval.exp) = MkExpClassSize((yyvsp[(4) - (6)].specifier)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 475:
 
 /* Line 1464 of yacc.c  */
-#line 1800 "grammar.y"
+#line 1801 "grammar.y"
     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 476:
 
 /* Line 1464 of yacc.c  */
-#line 1801 "grammar.y"
+#line 1802 "grammar.y"
     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (5)].typeName)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 480:
 
 /* Line 1464 of yacc.c  */
-#line 1816 "grammar.y"
+#line 1817 "grammar.y"
     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 482:
 
 /* Line 1464 of yacc.c  */
-#line 1821 "grammar.y"
+#line 1822 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 483:
 
 /* Line 1464 of yacc.c  */
-#line 1822 "grammar.y"
+#line 1823 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 484:
 
 /* Line 1464 of yacc.c  */
-#line 1823 "grammar.y"
+#line 1824 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 485:
 
 /* Line 1464 of yacc.c  */
-#line 1824 "grammar.y"
+#line 1825 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 486:
 
 /* Line 1464 of yacc.c  */
-#line 1825 "grammar.y"
+#line 1826 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 487:
 
 /* Line 1464 of yacc.c  */
-#line 1826 "grammar.y"
+#line 1827 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 489:
 
 /* Line 1464 of yacc.c  */
-#line 1831 "grammar.y"
+#line 1832 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 490:
 
 /* Line 1464 of yacc.c  */
-#line 1835 "grammar.y"
+#line 1836 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 491:
 
 /* Line 1464 of yacc.c  */
-#line 1839 "grammar.y"
+#line 1840 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 492:
 
 /* Line 1464 of yacc.c  */
-#line 1843 "grammar.y"
+#line 1844 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 494:
 
 /* Line 1464 of yacc.c  */
-#line 1851 "grammar.y"
+#line 1852 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 495:
 
 /* Line 1464 of yacc.c  */
-#line 1852 "grammar.y"
+#line 1853 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 496:
 
 /* Line 1464 of yacc.c  */
-#line 1853 "grammar.y"
+#line 1854 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 497:
 
 /* Line 1464 of yacc.c  */
-#line 1854 "grammar.y"
+#line 1855 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 499:
 
 /* Line 1464 of yacc.c  */
-#line 1860 "grammar.y"
+#line 1861 "grammar.y"
     {
       if((yyvsp[(1) - (2)].exp).type == identifierExp)
       {
@@ -16908,392 +16909,392 @@ yyreduce:
   case 500:
 
 /* Line 1464 of yacc.c  */
-#line 1902 "grammar.y"
+#line 1903 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 501:
 
 /* Line 1464 of yacc.c  */
-#line 1903 "grammar.y"
+#line 1904 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 502:
 
 /* Line 1464 of yacc.c  */
-#line 1904 "grammar.y"
+#line 1905 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 503:
 
 /* Line 1464 of yacc.c  */
-#line 1905 "grammar.y"
+#line 1906 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '<', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 504:
 
 /* Line 1464 of yacc.c  */
-#line 1906 "grammar.y"
+#line 1907 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 505:
 
 /* Line 1464 of yacc.c  */
-#line 1907 "grammar.y"
+#line 1908 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 506:
 
 /* Line 1464 of yacc.c  */
-#line 1908 "grammar.y"
+#line 1909 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 508:
 
 /* Line 1464 of yacc.c  */
-#line 1913 "grammar.y"
+#line 1914 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 509:
 
 /* Line 1464 of yacc.c  */
-#line 1914 "grammar.y"
+#line 1915 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 510:
 
 /* Line 1464 of yacc.c  */
-#line 1915 "grammar.y"
+#line 1916 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 511:
 
 /* Line 1464 of yacc.c  */
-#line 1916 "grammar.y"
+#line 1917 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 512:
 
 /* Line 1464 of yacc.c  */
-#line 1923 "grammar.y"
+#line 1924 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 513:
 
 /* Line 1464 of yacc.c  */
-#line 1924 "grammar.y"
+#line 1925 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 514:
 
 /* Line 1464 of yacc.c  */
-#line 1925 "grammar.y"
+#line 1926 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 515:
 
 /* Line 1464 of yacc.c  */
-#line 1926 "grammar.y"
+#line 1927 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 517:
 
 /* Line 1464 of yacc.c  */
-#line 1931 "grammar.y"
+#line 1932 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 518:
 
 /* Line 1464 of yacc.c  */
-#line 1932 "grammar.y"
+#line 1933 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 519:
 
 /* Line 1464 of yacc.c  */
-#line 1934 "grammar.y"
+#line 1935 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 520:
 
 /* Line 1464 of yacc.c  */
-#line 1935 "grammar.y"
+#line 1936 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 522:
 
 /* Line 1464 of yacc.c  */
-#line 1940 "grammar.y"
+#line 1941 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 523:
 
 /* Line 1464 of yacc.c  */
-#line 1941 "grammar.y"
+#line 1942 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 524:
 
 /* Line 1464 of yacc.c  */
-#line 1943 "grammar.y"
+#line 1944 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 525:
 
 /* Line 1464 of yacc.c  */
-#line 1944 "grammar.y"
+#line 1945 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 527:
 
 /* Line 1464 of yacc.c  */
-#line 1949 "grammar.y"
+#line 1950 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 528:
 
 /* Line 1464 of yacc.c  */
-#line 1950 "grammar.y"
+#line 1951 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 529:
 
 /* Line 1464 of yacc.c  */
-#line 1952 "grammar.y"
+#line 1953 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 530:
 
 /* Line 1464 of yacc.c  */
-#line 1953 "grammar.y"
+#line 1954 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 532:
 
 /* Line 1464 of yacc.c  */
-#line 1958 "grammar.y"
+#line 1959 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 533:
 
 /* Line 1464 of yacc.c  */
-#line 1959 "grammar.y"
+#line 1960 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 535:
 
 /* Line 1464 of yacc.c  */
-#line 1964 "grammar.y"
+#line 1965 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 536:
 
 /* Line 1464 of yacc.c  */
-#line 1965 "grammar.y"
+#line 1966 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 538:
 
 /* Line 1464 of yacc.c  */
-#line 1970 "grammar.y"
+#line 1971 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 539:
 
 /* Line 1464 of yacc.c  */
-#line 1971 "grammar.y"
+#line 1972 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 540:
 
 /* Line 1464 of yacc.c  */
-#line 1972 "grammar.y"
+#line 1973 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 541:
 
 /* Line 1464 of yacc.c  */
-#line 1973 "grammar.y"
+#line 1974 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 542:
 
 /* Line 1464 of yacc.c  */
-#line 1974 "grammar.y"
+#line 1975 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
     break;
 
   case 543:
 
 /* Line 1464 of yacc.c  */
-#line 1975 "grammar.y"
+#line 1976 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
     break;
 
   case 544:
 
 /* Line 1464 of yacc.c  */
-#line 1976 "grammar.y"
+#line 1977 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
     break;
 
   case 545:
 
 /* Line 1464 of yacc.c  */
-#line 1977 "grammar.y"
+#line 1978 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
     break;
 
   case 546:
 
 /* Line 1464 of yacc.c  */
-#line 1979 "grammar.y"
+#line 1980 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 547:
 
 /* Line 1464 of yacc.c  */
-#line 1980 "grammar.y"
+#line 1981 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 548:
 
 /* Line 1464 of yacc.c  */
-#line 1981 "grammar.y"
+#line 1982 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 549:
 
 /* Line 1464 of yacc.c  */
-#line 1982 "grammar.y"
+#line 1983 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 550:
 
 /* Line 1464 of yacc.c  */
-#line 1983 "grammar.y"
+#line 1984 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
     break;
 
   case 551:
 
 /* Line 1464 of yacc.c  */
-#line 1984 "grammar.y"
+#line 1985 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
     break;
 
   case 552:
 
 /* Line 1464 of yacc.c  */
-#line 1985 "grammar.y"
+#line 1986 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
     break;
 
   case 553:
 
 /* Line 1464 of yacc.c  */
-#line 1986 "grammar.y"
+#line 1987 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
     break;
 
   case 554:
 
 /* Line 1464 of yacc.c  */
-#line 1988 "grammar.y"
+#line 1989 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 555:
 
 /* Line 1464 of yacc.c  */
-#line 1989 "grammar.y"
+#line 1990 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 556:
 
 /* Line 1464 of yacc.c  */
-#line 1990 "grammar.y"
+#line 1991 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 557:
 
 /* Line 1464 of yacc.c  */
-#line 1991 "grammar.y"
+#line 1992 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 558:
 
 /* Line 1464 of yacc.c  */
-#line 1993 "grammar.y"
+#line 1994 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 559:
 
 /* Line 1464 of yacc.c  */
-#line 1994 "grammar.y"
+#line 1995 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 560:
 
 /* Line 1464 of yacc.c  */
-#line 1995 "grammar.y"
+#line 1996 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 561:
 
 /* Line 1464 of yacc.c  */
-#line 1996 "grammar.y"
+#line 1997 "grammar.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 562:
 
 /* Line 1464 of yacc.c  */
-#line 1999 "grammar.y"
+#line 2000 "grammar.y"
     {
          yyerror();
          (yyval.exp) = MkExpCondition((yyvsp[(1) - (3)].exp), MkListOne(MkExpDummy()), MkExpDummy());
@@ -17306,7 +17307,7 @@ yyreduce:
   case 563:
 
 /* Line 1464 of yacc.c  */
-#line 2007 "grammar.y"
+#line 2008 "grammar.y"
     {
          (yyval.exp) = MkExpCondition((yyvsp[(1) - (3)].exp), MkListOne(MkExpDummy()), MkExpDummy()); (yyval.exp).loc = (yyloc); ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[(2) - (3)]); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (3)]);
       ;}
@@ -17315,7 +17316,7 @@ yyreduce:
   case 564:
 
 /* Line 1464 of yacc.c  */
-#line 2011 "grammar.y"
+#line 2012 "grammar.y"
     {
          yyerror();
          (yyval.exp) = MkExpCondition((yyvsp[(1) - (2)].exp), MkListOne(MkExpDummy()), MkExpDummy()); (yyval.exp).loc = (yyloc); ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[(2) - (2)]); (yyval.exp).cond.elseExp.loc = (yylsp[(2) - (2)]);
@@ -17325,7 +17326,7 @@ yyreduce:
   case 565:
 
 /* Line 1464 of yacc.c  */
-#line 2016 "grammar.y"
+#line 2017 "grammar.y"
     {
          (yyval.exp) = MkExpCondition((yyvsp[(1) - (2)].exp), MkListOne(MkExpDummy()), MkExpDummy()); (yyval.exp).loc = (yyloc); ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[(2) - (2)]); (yyval.exp).cond.elseExp.loc = (yylsp[(2) - (2)]);
       ;}
@@ -17334,994 +17335,994 @@ yyreduce:
   case 567:
 
 /* Line 1464 of yacc.c  */
-#line 2023 "grammar.y"
+#line 2024 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 568:
 
 /* Line 1464 of yacc.c  */
-#line 2027 "grammar.y"
+#line 2028 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 569:
 
 /* Line 1464 of yacc.c  */
-#line 2032 "grammar.y"
+#line 2033 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 570:
 
 /* Line 1464 of yacc.c  */
-#line 2033 "grammar.y"
+#line 2034 "grammar.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 571:
 
 /* Line 1464 of yacc.c  */
-#line 2037 "grammar.y"
+#line 2038 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 572:
 
 /* Line 1464 of yacc.c  */
-#line 2038 "grammar.y"
+#line 2039 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (2)].exp)); ;}
     break;
 
   case 573:
 
 /* Line 1464 of yacc.c  */
-#line 2039 "grammar.y"
+#line 2040 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 574:
 
 /* Line 1464 of yacc.c  */
-#line 2040 "grammar.y"
+#line 2041 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 575:
 
 /* Line 1464 of yacc.c  */
-#line 2046 "grammar.y"
+#line 2047 "grammar.y"
     { yyerror(); (yyval.list) = (yyvsp[(1) - (2)].list); FreeList((yyvsp[(2) - (2)].list), FreeExpression); ;}
     break;
 
   case 576:
 
 /* Line 1464 of yacc.c  */
-#line 2047 "grammar.y"
+#line 2048 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); FreeList((yyvsp[(2) - (2)].list), FreeExpression); ;}
     break;
 
   case 577:
 
 /* Line 1464 of yacc.c  */
-#line 2048 "grammar.y"
+#line 2049 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); FreeList((yyvsp[(2) - (2)].list), FreeExpression); ;}
     break;
 
   case 578:
 
 /* Line 1464 of yacc.c  */
-#line 2052 "grammar.y"
+#line 2053 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 579:
 
 /* Line 1464 of yacc.c  */
-#line 2053 "grammar.y"
+#line 2054 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (2)].exp)); ;}
     break;
 
   case 580:
 
 /* Line 1464 of yacc.c  */
-#line 2054 "grammar.y"
+#line 2055 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 581:
 
 /* Line 1464 of yacc.c  */
-#line 2055 "grammar.y"
+#line 2056 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 584:
 
 /* Line 1464 of yacc.c  */
-#line 2065 "grammar.y"
+#line 2066 "grammar.y"
     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
     break;
 
   case 585:
 
 /* Line 1464 of yacc.c  */
-#line 2066 "grammar.y"
+#line 2067 "grammar.y"
     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
     break;
 
   case 586:
 
 /* Line 1464 of yacc.c  */
-#line 2067 "grammar.y"
+#line 2068 "grammar.y"
     { (yyval.specifier) = MkSpecifier(STATIC); ;}
     break;
 
   case 587:
 
 /* Line 1464 of yacc.c  */
-#line 2068 "grammar.y"
+#line 2069 "grammar.y"
     { (yyval.specifier) = MkSpecifier(THREAD); ;}
     break;
 
   case 588:
 
 /* Line 1464 of yacc.c  */
-#line 2069 "grammar.y"
+#line 2070 "grammar.y"
     { (yyval.specifier) = MkSpecifier(AUTO); ;}
     break;
 
   case 589:
 
 /* Line 1464 of yacc.c  */
-#line 2070 "grammar.y"
+#line 2071 "grammar.y"
     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
     break;
 
   case 590:
 
 /* Line 1464 of yacc.c  */
-#line 2071 "grammar.y"
+#line 2072 "grammar.y"
     { (yyval.specifier) = MkSpecifier(RESTRICT); ;}
     break;
 
   case 591:
 
 /* Line 1464 of yacc.c  */
-#line 2075 "grammar.y"
+#line 2076 "grammar.y"
     { (yyval.specifier) = MkSpecifier(TYPEDEF); structDeclMode = declMode = defaultAccess; ;}
     break;
 
   case 592:
 
 /* Line 1464 of yacc.c  */
-#line 2076 "grammar.y"
+#line 2077 "grammar.y"
     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
     break;
 
   case 593:
 
 /* Line 1464 of yacc.c  */
-#line 2077 "grammar.y"
+#line 2078 "grammar.y"
     { (yyval.specifier) = MkSpecifier(STATIC); structDeclMode = declMode = staticAccess; ;}
     break;
 
   case 594:
 
 /* Line 1464 of yacc.c  */
-#line 2078 "grammar.y"
+#line 2079 "grammar.y"
     { (yyval.specifier) = MkSpecifier(THREAD); ;}
     break;
 
   case 595:
 
 /* Line 1464 of yacc.c  */
-#line 2079 "grammar.y"
+#line 2080 "grammar.y"
     { (yyval.specifier) = MkSpecifier(AUTO); ;}
     break;
 
   case 596:
 
 /* Line 1464 of yacc.c  */
-#line 2080 "grammar.y"
+#line 2081 "grammar.y"
     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
     break;
 
   case 597:
 
 /* Line 1464 of yacc.c  */
-#line 2081 "grammar.y"
+#line 2082 "grammar.y"
     { (yyval.specifier) = MkSpecifier(RESTRICT); ;}
     break;
 
   case 598:
 
 /* Line 1464 of yacc.c  */
-#line 2085 "grammar.y"
+#line 2086 "grammar.y"
     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
     break;
 
   case 599:
 
 /* Line 1464 of yacc.c  */
-#line 2086 "grammar.y"
+#line 2087 "grammar.y"
     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 600:
 
 /* Line 1464 of yacc.c  */
-#line 2087 "grammar.y"
+#line 2088 "grammar.y"
     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 601:
 
 /* Line 1464 of yacc.c  */
-#line 2091 "grammar.y"
+#line 2092 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
     break;
 
   case 602:
 
 /* Line 1464 of yacc.c  */
-#line 2092 "grammar.y"
+#line 2093 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
     break;
 
   case 604:
 
 /* Line 1464 of yacc.c  */
-#line 2097 "grammar.y"
+#line 2098 "grammar.y"
     { memberAccessStack[++defaultMemberAccess] = publicAccess; ;}
     break;
 
   case 605:
 
 /* Line 1464 of yacc.c  */
-#line 2101 "grammar.y"
+#line 2102 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); POP_DEFAULT_ACCESS ;}
     break;
 
   case 606:
 
 /* Line 1464 of yacc.c  */
-#line 2102 "grammar.y"
+#line 2103 "grammar.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); POP_DEFAULT_ACCESS ;}
     break;
 
   case 607:
 
 /* Line 1464 of yacc.c  */
-#line 2106 "grammar.y"
+#line 2107 "grammar.y"
     { (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS (yyval.specifier) = (yyvsp[(1) - (2)].specifier); ;}
     break;
 
   case 608:
 
 /* Line 1464 of yacc.c  */
-#line 2107 "grammar.y"
+#line 2108 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (4)].id), null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 609:
 
 /* Line 1464 of yacc.c  */
-#line 2108 "grammar.y"
+#line 2109 "grammar.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (4)].specifier).name), null); FreeSpecifier((yyvsp[(2) - (4)].specifier)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 610:
 
 /* Line 1464 of yacc.c  */
-#line 2112 "grammar.y"
+#line 2113 "grammar.y"
     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (3)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 611:
 
 /* Line 1464 of yacc.c  */
-#line 2113 "grammar.y"
+#line 2114 "grammar.y"
     { (yyval.specifier) = MkEnum(null, null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 612:
 
 /* Line 1464 of yacc.c  */
-#line 2115 "grammar.y"
+#line 2116 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (4)].id), (yyvsp[(4) - (4)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 613:
 
 /* Line 1464 of yacc.c  */
-#line 2116 "grammar.y"
+#line 2117 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list));  (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 614:
 
 /* Line 1464 of yacc.c  */
-#line 2117 "grammar.y"
+#line 2118 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (4)].id), null);  (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 615:
 
 /* Line 1464 of yacc.c  */
-#line 2118 "grammar.y"
+#line 2119 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (6)].id), (yyvsp[(4) - (6)].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[(6) - (6)].list);  POP_DEFAULT_ACCESS ;}
     break;
 
   case 616:
 
 /* Line 1464 of yacc.c  */
-#line 2119 "grammar.y"
+#line 2120 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (6)].id), (yyvsp[(4) - (6)].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[(6) - (6)].list);  POP_DEFAULT_ACCESS ;}
     break;
 
   case 617:
 
 /* Line 1464 of yacc.c  */
-#line 2121 "grammar.y"
+#line 2122 "grammar.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (4)].specifier).name), (yyvsp[(4) - (4)].list)); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[(2) - (4)].specifier)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 618:
 
 /* Line 1464 of yacc.c  */
-#line 2122 "grammar.y"
+#line 2123 "grammar.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[(2) - (5)].specifier)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 619:
 
 /* Line 1464 of yacc.c  */
-#line 2123 "grammar.y"
+#line 2124 "grammar.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (4)].specifier).name), null); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[(2) - (4)].specifier)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 620:
 
 /* Line 1464 of yacc.c  */
-#line 2124 "grammar.y"
+#line 2125 "grammar.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (6)].specifier).name), (yyvsp[(4) - (6)].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[(6) - (6)].list); FreeSpecifier((yyvsp[(2) - (6)].specifier)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 621:
 
 /* Line 1464 of yacc.c  */
-#line 2125 "grammar.y"
+#line 2126 "grammar.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (6)].specifier).name), (yyvsp[(4) - (6)].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[(6) - (6)].list); FreeSpecifier((yyvsp[(2) - (6)].specifier)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 622:
 
 /* Line 1464 of yacc.c  */
-#line 2127 "grammar.y"
+#line 2128 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 623:
 
 /* Line 1464 of yacc.c  */
-#line 2128 "grammar.y"
+#line 2129 "grammar.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[(2) - (5)].specifier)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 624:
 
 /* Line 1464 of yacc.c  */
-#line 2132 "grammar.y"
+#line 2133 "grammar.y"
     { (yyval.id) = (yyvsp[(2) - (2)].id); if(declMode) DeclClassAddNameSpace((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ;}
     break;
 
   case 625:
 
 /* Line 1464 of yacc.c  */
-#line 2133 "grammar.y"
+#line 2134 "grammar.y"
     { (yyval.id) = MkIdentifier((yyvsp[(2) - (2)].specifier).name); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 626:
 
 /* Line 1464 of yacc.c  */
-#line 2137 "grammar.y"
+#line 2138 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (2)].specifier); (yyval.specifier).loc = (yyloc); ;}
     break;
 
   case 627:
 
 /* Line 1464 of yacc.c  */
-#line 2138 "grammar.y"
+#line 2139 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 628:
 
 /* Line 1464 of yacc.c  */
-#line 2139 "grammar.y"
+#line 2140 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (3)].id), null); POP_DEFAULT_ACCESS ;}
     break;
 
   case 629:
 
 /* Line 1464 of yacc.c  */
-#line 2143 "grammar.y"
+#line 2144 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), (yyvsp[(5) - (5)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 630:
 
 /* Line 1464 of yacc.c  */
-#line 2144 "grammar.y"
+#line 2145 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (6)].id), (yyvsp[(5) - (6)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (6)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 631:
 
 /* Line 1464 of yacc.c  */
-#line 2145 "grammar.y"
+#line 2146 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 632:
 
 /* Line 1464 of yacc.c  */
-#line 2146 "grammar.y"
+#line 2147 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), (yyvsp[(5) - (7)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list); (yyval.specifier).definitions = (yyvsp[(7) - (7)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 633:
 
 /* Line 1464 of yacc.c  */
-#line 2147 "grammar.y"
+#line 2148 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), (yyvsp[(5) - (7)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list); (yyval.specifier).definitions = (yyvsp[(7) - (7)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 634:
 
 /* Line 1464 of yacc.c  */
-#line 2148 "grammar.y"
+#line 2149 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (8)].id), (yyvsp[(5) - (8)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (8)].list); (yyval.specifier).definitions = (yyvsp[(8) - (8)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 635:
 
 /* Line 1464 of yacc.c  */
-#line 2149 "grammar.y"
+#line 2150 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (8)].id), (yyvsp[(5) - (8)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (8)].list); (yyval.specifier).definitions = (yyvsp[(8) - (8)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 636:
 
 /* Line 1464 of yacc.c  */
-#line 2150 "grammar.y"
+#line 2151 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list); (yyval.specifier).definitions = (yyvsp[(7) - (7)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 637:
 
 /* Line 1464 of yacc.c  */
-#line 2151 "grammar.y"
+#line 2152 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list); (yyval.specifier).definitions = (yyvsp[(7) - (7)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 638:
 
 /* Line 1464 of yacc.c  */
-#line 2153 "grammar.y"
+#line 2154 "grammar.y"
     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (3)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 639:
 
 /* Line 1464 of yacc.c  */
-#line 2154 "grammar.y"
+#line 2155 "grammar.y"
     { (yyval.specifier) = MkEnum(null, null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 640:
 
 /* Line 1464 of yacc.c  */
-#line 2156 "grammar.y"
+#line 2157 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 641:
 
 /* Line 1464 of yacc.c  */
-#line 2157 "grammar.y"
+#line 2158 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 642:
 
 /* Line 1464 of yacc.c  */
-#line 2158 "grammar.y"
+#line 2159 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (3)].id), null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 643:
 
 /* Line 1464 of yacc.c  */
-#line 2159 "grammar.y"
+#line 2160 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), (yyvsp[(3) - (5)].list)); (yyval.specifier).definitions = (yyvsp[(5) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 644:
 
 /* Line 1464 of yacc.c  */
-#line 2160 "grammar.y"
+#line 2161 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), (yyvsp[(3) - (5)].list)); (yyval.specifier).definitions = (yyvsp[(5) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 645:
 
 /* Line 1464 of yacc.c  */
-#line 2162 "grammar.y"
+#line 2163 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (6)].id), (yyvsp[(5) - (6)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (6)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 646:
 
 /* Line 1464 of yacc.c  */
-#line 2163 "grammar.y"
+#line 2164 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), (yyvsp[(5) - (7)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list);  (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 647:
 
 /* Line 1464 of yacc.c  */
-#line 2164 "grammar.y"
+#line 2165 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (6)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (6)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 648:
 
 /* Line 1464 of yacc.c  */
-#line 2165 "grammar.y"
+#line 2166 "grammar.y"
     { (yyval.specifier) = MkEnum((yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].list));  (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 653:
 
 /* Line 1464 of yacc.c  */
-#line 2179 "grammar.y"
+#line 2180 "grammar.y"
     { (yyval.specifier) = MkSpecifierExtended((yyvsp[(1) - (1)].extDecl)); ;}
     break;
 
   case 654:
 
 /* Line 1464 of yacc.c  */
-#line 2183 "grammar.y"
+#line 2184 "grammar.y"
     { (yyval.specifier) = MkSpecifier(CONST); ;}
     break;
 
   case 655:
 
 /* Line 1464 of yacc.c  */
-#line 2184 "grammar.y"
+#line 2185 "grammar.y"
     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
     break;
 
   case 656:
 
 /* Line 1464 of yacc.c  */
-#line 2185 "grammar.y"
+#line 2186 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
     break;
 
   case 657:
 
 /* Line 1464 of yacc.c  */
-#line 2190 "grammar.y"
+#line 2191 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 658:
 
 /* Line 1464 of yacc.c  */
-#line 2191 "grammar.y"
+#line 2192 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
     break;
 
   case 659:
 
 /* Line 1464 of yacc.c  */
-#line 2195 "grammar.y"
+#line 2196 "grammar.y"
     { (yyval.specifier) = MkSpecifier(VOID); ;}
     break;
 
   case 660:
 
 /* Line 1464 of yacc.c  */
-#line 2196 "grammar.y"
+#line 2197 "grammar.y"
     { (yyval.specifier) = MkSpecifier(CHAR); ;}
     break;
 
   case 661:
 
 /* Line 1464 of yacc.c  */
-#line 2197 "grammar.y"
+#line 2198 "grammar.y"
     { (yyval.specifier) = MkSpecifier(SHORT); ;}
     break;
 
   case 662:
 
 /* Line 1464 of yacc.c  */
-#line 2198 "grammar.y"
+#line 2199 "grammar.y"
     { (yyval.specifier) = MkSpecifier(INT); ;}
     break;
 
   case 663:
 
 /* Line 1464 of yacc.c  */
-#line 2199 "grammar.y"
+#line 2200 "grammar.y"
     { (yyval.specifier) = MkSpecifier(UINT); ;}
     break;
 
   case 664:
 
 /* Line 1464 of yacc.c  */
-#line 2200 "grammar.y"
+#line 2201 "grammar.y"
     { (yyval.specifier) = MkSpecifier(INT64); ;}
     break;
 
   case 665:
 
 /* Line 1464 of yacc.c  */
-#line 2201 "grammar.y"
+#line 2202 "grammar.y"
     { (yyval.specifier) = MkSpecifier(VALIST); ;}
     break;
 
   case 666:
 
 /* Line 1464 of yacc.c  */
-#line 2202 "grammar.y"
+#line 2203 "grammar.y"
     { (yyval.specifier) = MkSpecifier(LONG); ;}
     break;
 
   case 667:
 
 /* Line 1464 of yacc.c  */
-#line 2203 "grammar.y"
+#line 2204 "grammar.y"
     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
     break;
 
   case 668:
 
 /* Line 1464 of yacc.c  */
-#line 2204 "grammar.y"
+#line 2205 "grammar.y"
     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
     break;
 
   case 669:
 
 /* Line 1464 of yacc.c  */
-#line 2205 "grammar.y"
+#line 2206 "grammar.y"
     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
     break;
 
   case 670:
 
 /* Line 1464 of yacc.c  */
-#line 2206 "grammar.y"
+#line 2207 "grammar.y"
     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
     break;
 
   case 671:
 
 /* Line 1464 of yacc.c  */
-#line 2207 "grammar.y"
+#line 2208 "grammar.y"
     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
     break;
 
   case 675:
 
 /* Line 1464 of yacc.c  */
-#line 2211 "grammar.y"
+#line 2212 "grammar.y"
     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 676:
 
 /* Line 1464 of yacc.c  */
-#line 2212 "grammar.y"
+#line 2213 "grammar.y"
     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 677:
 
 /* Line 1464 of yacc.c  */
-#line 2213 "grammar.y"
+#line 2214 "grammar.y"
     { _DeclClass((yyvsp[(3) - (4)].id)._class, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
     break;
 
   case 678:
 
 /* Line 1464 of yacc.c  */
-#line 2214 "grammar.y"
+#line 2215 "grammar.y"
     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
     break;
 
   case 679:
 
 /* Line 1464 of yacc.c  */
-#line 2215 "grammar.y"
+#line 2216 "grammar.y"
     { (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
     break;
 
   case 680:
 
 /* Line 1464 of yacc.c  */
-#line 2216 "grammar.y"
+#line 2217 "grammar.y"
     { (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
     break;
 
   case 681:
 
 /* Line 1464 of yacc.c  */
-#line 2217 "grammar.y"
+#line 2218 "grammar.y"
     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
     break;
 
   case 682:
 
 /* Line 1464 of yacc.c  */
-#line 2218 "grammar.y"
+#line 2219 "grammar.y"
     { (yyval.specifier) = MkSpecifier(BOOL); ;}
     break;
 
   case 683:
 
 /* Line 1464 of yacc.c  */
-#line 2219 "grammar.y"
+#line 2220 "grammar.y"
     { (yyval.specifier) = MkSpecifier(_COMPLEX); ;}
     break;
 
   case 684:
 
 /* Line 1464 of yacc.c  */
-#line 2220 "grammar.y"
+#line 2221 "grammar.y"
     { (yyval.specifier) = MkSpecifier(_IMAGINARY); ;}
     break;
 
   case 685:
 
 /* Line 1464 of yacc.c  */
-#line 2224 "grammar.y"
+#line 2225 "grammar.y"
     { (yyval.specifier) = MkSpecifier(VOID); ;}
     break;
 
   case 686:
 
 /* Line 1464 of yacc.c  */
-#line 2225 "grammar.y"
+#line 2226 "grammar.y"
     { (yyval.specifier) = MkSpecifier(CHAR); ;}
     break;
 
   case 687:
 
 /* Line 1464 of yacc.c  */
-#line 2226 "grammar.y"
+#line 2227 "grammar.y"
     { (yyval.specifier) = MkSpecifier(SHORT); ;}
     break;
 
   case 688:
 
 /* Line 1464 of yacc.c  */
-#line 2227 "grammar.y"
+#line 2228 "grammar.y"
     { (yyval.specifier) = MkSpecifier(INT); ;}
     break;
 
   case 689:
 
 /* Line 1464 of yacc.c  */
-#line 2228 "grammar.y"
+#line 2229 "grammar.y"
     { (yyval.specifier) = MkSpecifier(UINT); ;}
     break;
 
   case 690:
 
 /* Line 1464 of yacc.c  */
-#line 2229 "grammar.y"
+#line 2230 "grammar.y"
     { (yyval.specifier) = MkSpecifier(INT64); ;}
     break;
 
   case 691:
 
 /* Line 1464 of yacc.c  */
-#line 2230 "grammar.y"
+#line 2231 "grammar.y"
     { (yyval.specifier) = MkSpecifier(VALIST); ;}
     break;
 
   case 692:
 
 /* Line 1464 of yacc.c  */
-#line 2231 "grammar.y"
+#line 2232 "grammar.y"
     { (yyval.specifier) = MkSpecifier(LONG); ;}
     break;
 
   case 693:
 
 /* Line 1464 of yacc.c  */
-#line 2232 "grammar.y"
+#line 2233 "grammar.y"
     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
     break;
 
   case 694:
 
 /* Line 1464 of yacc.c  */
-#line 2233 "grammar.y"
+#line 2234 "grammar.y"
     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
     break;
 
   case 695:
 
 /* Line 1464 of yacc.c  */
-#line 2234 "grammar.y"
+#line 2235 "grammar.y"
     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
     break;
 
   case 696:
 
 /* Line 1464 of yacc.c  */
-#line 2235 "grammar.y"
+#line 2236 "grammar.y"
     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
     break;
 
   case 697:
 
 /* Line 1464 of yacc.c  */
-#line 2236 "grammar.y"
+#line 2237 "grammar.y"
     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
     break;
 
   case 701:
 
 /* Line 1464 of yacc.c  */
-#line 2240 "grammar.y"
+#line 2241 "grammar.y"
     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
     break;
 
   case 702:
 
 /* Line 1464 of yacc.c  */
-#line 2241 "grammar.y"
+#line 2242 "grammar.y"
     { (yyval.specifier) = MkSpecifier(BOOL); ;}
     break;
 
   case 703:
 
 /* Line 1464 of yacc.c  */
-#line 2242 "grammar.y"
+#line 2243 "grammar.y"
     { (yyval.specifier) = MkSpecifier(_COMPLEX); ;}
     break;
 
   case 704:
 
 /* Line 1464 of yacc.c  */
-#line 2243 "grammar.y"
+#line 2244 "grammar.y"
     { (yyval.specifier) = MkSpecifier(_IMAGINARY); ;}
     break;
 
   case 705:
 
 /* Line 1464 of yacc.c  */
-#line 2244 "grammar.y"
+#line 2245 "grammar.y"
     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 706:
 
 /* Line 1464 of yacc.c  */
-#line 2245 "grammar.y"
+#line 2246 "grammar.y"
     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 707:
 
 /* Line 1464 of yacc.c  */
-#line 2246 "grammar.y"
+#line 2247 "grammar.y"
     { _DeclClass((yyvsp[(3) - (4)].id)._class, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
     break;
 
   case 708:
 
 /* Line 1464 of yacc.c  */
-#line 2247 "grammar.y"
+#line 2248 "grammar.y"
     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
     break;
 
   case 709:
 
 /* Line 1464 of yacc.c  */
-#line 2254 "grammar.y"
+#line 2255 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 710:
 
 /* Line 1464 of yacc.c  */
-#line 2256 "grammar.y"
+#line 2257 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 711:
 
 /* Line 1464 of yacc.c  */
-#line 2258 "grammar.y"
+#line 2259 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 712:
 
 /* Line 1464 of yacc.c  */
-#line 2260 "grammar.y"
+#line 2261 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 713:
 
 /* Line 1464 of yacc.c  */
-#line 2262 "grammar.y"
+#line 2263 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 714:
 
 /* Line 1464 of yacc.c  */
-#line 2264 "grammar.y"
+#line 2265 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 715:
 
 /* Line 1464 of yacc.c  */
-#line 2266 "grammar.y"
+#line 2267 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 716:
 
 /* Line 1464 of yacc.c  */
-#line 2268 "grammar.y"
+#line 2269 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 717:
 
 /* Line 1464 of yacc.c  */
-#line 2270 "grammar.y"
+#line 2271 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 718:
 
 /* Line 1464 of yacc.c  */
-#line 2272 "grammar.y"
+#line 2273 "grammar.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 719:
 
 /* Line 1464 of yacc.c  */
-#line 2276 "grammar.y"
+#line 2277 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
     break;
 
   case 720:
 
 /* Line 1464 of yacc.c  */
-#line 2277 "grammar.y"
+#line 2278 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
     break;
 
   case 721:
 
 /* Line 1464 of yacc.c  */
-#line 2282 "grammar.y"
+#line 2283 "grammar.y"
     {
          (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null);
          (yyval.specifier).addNameSpace = true;
@@ -18332,7 +18333,7 @@ yyreduce:
   case 722:
 
 /* Line 1464 of yacc.c  */
-#line 2288 "grammar.y"
+#line 2289 "grammar.y"
     {
          (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), MkIdentifier((yyvsp[(2) - (2)].specifier).name), null);
          (yyval.specifier).ctx = PushContext();
@@ -18343,7 +18344,7 @@ yyreduce:
   case 723:
 
 /* Line 1464 of yacc.c  */
-#line 2294 "grammar.y"
+#line 2295 "grammar.y"
     {
          (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), (yyvsp[(3) - (3)].id), null);
          (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl);
@@ -18355,7 +18356,7 @@ yyreduce:
   case 724:
 
 /* Line 1464 of yacc.c  */
-#line 2301 "grammar.y"
+#line 2302 "grammar.y"
     {
          (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), MkIdentifier((yyvsp[(3) - (3)].specifier).name), null);
          (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl);
@@ -18367,105 +18368,105 @@ yyreduce:
   case 725:
 
 /* Line 1464 of yacc.c  */
-#line 2310 "grammar.y"
+#line 2311 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (2)].specifier); (yyval.specifier).loc = (yyloc); ;}
     break;
 
   case 726:
 
 /* Line 1464 of yacc.c  */
-#line 2311 "grammar.y"
+#line 2312 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (3)].specifier); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS PopContext(curContext); ;}
     break;
 
   case 727:
 
 /* Line 1464 of yacc.c  */
-#line 2312 "grammar.y"
+#line 2313 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 728:
 
 /* Line 1464 of yacc.c  */
-#line 2313 "grammar.y"
+#line 2314 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
     break;
 
   case 729:
 
 /* Line 1464 of yacc.c  */
-#line 2317 "grammar.y"
+#line 2318 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (3)].specifier); AddStructDefinitions((yyvsp[(1) - (3)].specifier), (yyvsp[(3) - (3)].list));  POP_DEFAULT_ACCESS PopContext(curContext); ;}
     break;
 
   case 730:
 
 /* Line 1464 of yacc.c  */
-#line 2318 "grammar.y"
+#line 2319 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (3)].specifier); AddStructDefinitions((yyvsp[(1) - (3)].specifier), (yyvsp[(3) - (3)].list));  POP_DEFAULT_ACCESS PopContext(curContext); ;}
     break;
 
   case 731:
 
 /* Line 1464 of yacc.c  */
-#line 2319 "grammar.y"
+#line 2320 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
     break;
 
   case 732:
 
 /* Line 1464 of yacc.c  */
-#line 2321 "grammar.y"
+#line 2322 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 733:
 
 /* Line 1464 of yacc.c  */
-#line 2322 "grammar.y"
+#line 2323 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 734:
 
 /* Line 1464 of yacc.c  */
-#line 2323 "grammar.y"
+#line 2324 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); POP_DEFAULT_ACCESS ;}
     break;
 
   case 735:
 
 /* Line 1464 of yacc.c  */
-#line 2325 "grammar.y"
+#line 2326 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(4) - (4)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); POP_DEFAULT_ACCESS ;}
     break;
 
   case 736:
 
 /* Line 1464 of yacc.c  */
-#line 2326 "grammar.y"
+#line 2327 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(4) - (4)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); POP_DEFAULT_ACCESS ;}
     break;
 
   case 737:
 
 /* Line 1464 of yacc.c  */
-#line 2327 "grammar.y"
+#line 2328 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); POP_DEFAULT_ACCESS ;}
     break;
 
   case 738:
 
 /* Line 1464 of yacc.c  */
-#line 2331 "grammar.y"
+#line 2332 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
     break;
 
   case 739:
 
 /* Line 1464 of yacc.c  */
-#line 2336 "grammar.y"
+#line 2337 "grammar.y"
     {
         (yyval.specifier) = (yyvsp[(1) - (1)].specifier);
         if(declMode)
@@ -18478,7 +18479,7 @@ yyreduce:
   case 740:
 
 /* Line 1464 of yacc.c  */
-#line 2344 "grammar.y"
+#line 2345 "grammar.y"
     {
       Symbol symbol = ((yyvsp[(1) - (4)].specifier).addNameSpace ? DeclClassAddNameSpace : DeclClass)((yyvsp[(1) - (4)].specifier).id._class, (yyvsp[(1) - (4)].specifier).id.string);
       (yyval.specifier) = (yyvsp[(1) - (4)].specifier);
@@ -18489,7 +18490,7 @@ yyreduce:
   case 741:
 
 /* Line 1464 of yacc.c  */
-#line 2353 "grammar.y"
+#line 2354 "grammar.y"
     {
       (yyval.specifier) = (yyvsp[(1) - (3)].specifier);
       (yyval.specifier).baseSpecs = (yyvsp[(3) - (3)].list);
@@ -18500,35 +18501,35 @@ yyreduce:
   case 742:
 
 /* Line 1464 of yacc.c  */
-#line 2361 "grammar.y"
+#line 2362 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (2)].specifier); (yyval.specifier).loc = (yyloc); ;}
     break;
 
   case 743:
 
 /* Line 1464 of yacc.c  */
-#line 2363 "grammar.y"
+#line 2364 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
     break;
 
   case 744:
 
 /* Line 1464 of yacc.c  */
-#line 2364 "grammar.y"
+#line 2365 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
     break;
 
   case 745:
 
 /* Line 1464 of yacc.c  */
-#line 2365 "grammar.y"
+#line 2366 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); POP_DEFAULT_ACCESS ;}
     break;
 
   case 746:
 
 /* Line 1464 of yacc.c  */
-#line 2370 "grammar.y"
+#line 2371 "grammar.y"
     {
       (yyval.specifier) = (yyvsp[(1) - (3)].specifier);
       (yyval.specifier).definitions = (yyvsp[(3) - (3)].list);
@@ -18540,7 +18541,7 @@ yyreduce:
   case 747:
 
 /* Line 1464 of yacc.c  */
-#line 2377 "grammar.y"
+#line 2378 "grammar.y"
     {
       (yyval.specifier) = (yyvsp[(1) - (3)].specifier);
       (yyval.specifier).definitions = (yyvsp[(3) - (3)].list);
@@ -18552,14 +18553,14 @@ yyreduce:
   case 748:
 
 /* Line 1464 of yacc.c  */
-#line 2384 "grammar.y"
+#line 2385 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext);;}
     break;
 
   case 749:
 
 /* Line 1464 of yacc.c  */
-#line 2387 "grammar.y"
+#line 2388 "grammar.y"
     {
         PopContext(curContext);
         if(!declMode)
@@ -18577,7 +18578,7 @@ yyreduce:
   case 750:
 
 /* Line 1464 of yacc.c  */
-#line 2400 "grammar.y"
+#line 2401 "grammar.y"
     {
         PopContext(curContext);
 
@@ -18596,483 +18597,483 @@ yyreduce:
   case 751:
 
 /* Line 1464 of yacc.c  */
-#line 2414 "grammar.y"
+#line 2415 "grammar.y"
     { (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
     break;
 
   case 752:
 
 /* Line 1464 of yacc.c  */
-#line 2417 "grammar.y"
+#line 2418 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS  ;}
     break;
 
   case 753:
 
 /* Line 1464 of yacc.c  */
-#line 2419 "grammar.y"
+#line 2420 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 754:
 
 /* Line 1464 of yacc.c  */
-#line 2421 "grammar.y"
+#line 2422 "grammar.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); POP_DEFAULT_ACCESS ;}
     break;
 
   case 755:
 
 /* Line 1464 of yacc.c  */
-#line 2425 "grammar.y"
+#line 2426 "grammar.y"
     { (yyval.specifierType) = structSpecifier; memberAccessStack[++defaultMemberAccess] = publicAccess; ;}
     break;
 
   case 756:
 
 /* Line 1464 of yacc.c  */
-#line 2426 "grammar.y"
+#line 2427 "grammar.y"
     { (yyval.specifierType) = unionSpecifier; memberAccessStack[++defaultMemberAccess] = publicAccess; ;}
     break;
 
   case 757:
 
 /* Line 1464 of yacc.c  */
-#line 2430 "grammar.y"
+#line 2431 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 758:
 
 /* Line 1464 of yacc.c  */
-#line 2431 "grammar.y"
+#line 2432 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 759:
 
 /* Line 1464 of yacc.c  */
-#line 2432 "grammar.y"
+#line 2433 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 760:
 
 /* Line 1464 of yacc.c  */
-#line 2433 "grammar.y"
+#line 2434 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 761:
 
 /* Line 1464 of yacc.c  */
-#line 2434 "grammar.y"
+#line 2435 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 762:
 
 /* Line 1464 of yacc.c  */
-#line 2435 "grammar.y"
+#line 2436 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 763:
 
 /* Line 1464 of yacc.c  */
-#line 2436 "grammar.y"
+#line 2437 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 764:
 
 /* Line 1464 of yacc.c  */
-#line 2437 "grammar.y"
+#line 2438 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 765:
 
 /* Line 1464 of yacc.c  */
-#line 2441 "grammar.y"
+#line 2442 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 766:
 
 /* Line 1464 of yacc.c  */
-#line 2442 "grammar.y"
+#line 2443 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 767:
 
 /* Line 1464 of yacc.c  */
-#line 2443 "grammar.y"
+#line 2444 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 768:
 
 /* Line 1464 of yacc.c  */
-#line 2444 "grammar.y"
+#line 2445 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 769:
 
 /* Line 1464 of yacc.c  */
-#line 2445 "grammar.y"
+#line 2446 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 770:
 
 /* Line 1464 of yacc.c  */
-#line 2446 "grammar.y"
+#line 2447 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 771:
 
 /* Line 1464 of yacc.c  */
-#line 2447 "grammar.y"
+#line 2448 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 772:
 
 /* Line 1464 of yacc.c  */
-#line 2448 "grammar.y"
+#line 2449 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 773:
 
 /* Line 1464 of yacc.c  */
-#line 2449 "grammar.y"
+#line 2450 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 774:
 
 /* Line 1464 of yacc.c  */
-#line 2450 "grammar.y"
+#line 2451 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 775:
 
 /* Line 1464 of yacc.c  */
-#line 2454 "grammar.y"
+#line 2455 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 776:
 
 /* Line 1464 of yacc.c  */
-#line 2455 "grammar.y"
+#line 2456 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 777:
 
 /* Line 1464 of yacc.c  */
-#line 2456 "grammar.y"
+#line 2457 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 778:
 
 /* Line 1464 of yacc.c  */
-#line 2457 "grammar.y"
+#line 2458 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 779:
 
 /* Line 1464 of yacc.c  */
-#line 2458 "grammar.y"
+#line 2459 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 780:
 
 /* Line 1464 of yacc.c  */
-#line 2459 "grammar.y"
+#line 2460 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 781:
 
 /* Line 1464 of yacc.c  */
-#line 2460 "grammar.y"
+#line 2461 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 782:
 
 /* Line 1464 of yacc.c  */
-#line 2461 "grammar.y"
+#line 2462 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 783:
 
 /* Line 1464 of yacc.c  */
-#line 2462 "grammar.y"
+#line 2463 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 784:
 
 /* Line 1464 of yacc.c  */
-#line 2463 "grammar.y"
+#line 2464 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 785:
 
 /* Line 1464 of yacc.c  */
-#line 2467 "grammar.y"
+#line 2468 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 786:
 
 /* Line 1464 of yacc.c  */
-#line 2468 "grammar.y"
+#line 2469 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 787:
 
 /* Line 1464 of yacc.c  */
-#line 2469 "grammar.y"
+#line 2470 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 788:
 
 /* Line 1464 of yacc.c  */
-#line 2470 "grammar.y"
+#line 2471 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 789:
 
 /* Line 1464 of yacc.c  */
-#line 2471 "grammar.y"
+#line 2472 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 790:
 
 /* Line 1464 of yacc.c  */
-#line 2472 "grammar.y"
+#line 2473 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 791:
 
 /* Line 1464 of yacc.c  */
-#line 2473 "grammar.y"
+#line 2474 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 792:
 
 /* Line 1464 of yacc.c  */
-#line 2474 "grammar.y"
+#line 2475 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 793:
 
 /* Line 1464 of yacc.c  */
-#line 2475 "grammar.y"
+#line 2476 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 794:
 
 /* Line 1464 of yacc.c  */
-#line 2476 "grammar.y"
+#line 2477 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 795:
 
 /* Line 1464 of yacc.c  */
-#line 2477 "grammar.y"
+#line 2478 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 796:
 
 /* Line 1464 of yacc.c  */
-#line 2478 "grammar.y"
+#line 2479 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 797:
 
 /* Line 1464 of yacc.c  */
-#line 2482 "grammar.y"
+#line 2483 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 798:
 
 /* Line 1464 of yacc.c  */
-#line 2483 "grammar.y"
+#line 2484 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 799:
 
 /* Line 1464 of yacc.c  */
-#line 2484 "grammar.y"
+#line 2485 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 800:
 
 /* Line 1464 of yacc.c  */
-#line 2485 "grammar.y"
+#line 2486 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 801:
 
 /* Line 1464 of yacc.c  */
-#line 2486 "grammar.y"
+#line 2487 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 802:
 
 /* Line 1464 of yacc.c  */
-#line 2487 "grammar.y"
+#line 2488 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 803:
 
 /* Line 1464 of yacc.c  */
-#line 2488 "grammar.y"
+#line 2489 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 804:
 
 /* Line 1464 of yacc.c  */
-#line 2489 "grammar.y"
+#line 2490 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 805:
 
 /* Line 1464 of yacc.c  */
-#line 2490 "grammar.y"
+#line 2491 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 806:
 
 /* Line 1464 of yacc.c  */
-#line 2491 "grammar.y"
+#line 2492 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 807:
 
 /* Line 1464 of yacc.c  */
-#line 2495 "grammar.y"
+#line 2496 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 808:
 
 /* Line 1464 of yacc.c  */
-#line 2496 "grammar.y"
+#line 2497 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 809:
 
 /* Line 1464 of yacc.c  */
-#line 2500 "grammar.y"
+#line 2501 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifier(PRIVATE)); ;}
     break;
 
   case 810:
 
 /* Line 1464 of yacc.c  */
-#line 2501 "grammar.y"
+#line 2502 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifier(PUBLIC)); ;}
     break;
 
   case 811:
 
 /* Line 1464 of yacc.c  */
-#line 2502 "grammar.y"
+#line 2503 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 812:
 
 /* Line 1464 of yacc.c  */
-#line 2503 "grammar.y"
+#line 2504 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 813:
 
 /* Line 1464 of yacc.c  */
-#line 2504 "grammar.y"
+#line 2505 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 814:
 
 /* Line 1464 of yacc.c  */
-#line 2505 "grammar.y"
+#line 2506 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 815:
 
 /* Line 1464 of yacc.c  */
-#line 2506 "grammar.y"
+#line 2507 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 816:
 
 /* Line 1464 of yacc.c  */
-#line 2507 "grammar.y"
+#line 2508 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 817:
 
 /* Line 1464 of yacc.c  */
-#line 2509 "grammar.y"
+#line 2510 "grammar.y"
     { _DeclClass((yyvsp[(1) - (1)].id)._class, (yyvsp[(1) - (1)].id).string); (yyval.list) = MkListOne(MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
     break;
 
   case 818:
 
 /* Line 1464 of yacc.c  */
-#line 2510 "grammar.y"
+#line 2511 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); _DeclClass((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
     break;
 
   case 819:
 
 /* Line 1464 of yacc.c  */
-#line 2513 "grammar.y"
+#line 2514 "grammar.y"
     {
          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
 
@@ -19085,7 +19086,7 @@ yyreduce:
   case 820:
 
 /* Line 1464 of yacc.c  */
-#line 2521 "grammar.y"
+#line 2522 "grammar.y"
     {
          (yyval.list) = (yyvsp[(1) - (5)].list);
          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
@@ -19097,70 +19098,70 @@ yyreduce:
   case 822:
 
 /* Line 1464 of yacc.c  */
-#line 2531 "grammar.y"
+#line 2532 "grammar.y"
     { (yyval.list) = MkListOne(MkStructOrUnion((yyvsp[(1) - (1)].specifierType), null, null)); POP_DEFAULT_ACCESS ;}
     break;
 
   case 823:
 
 /* Line 1464 of yacc.c  */
-#line 2535 "grammar.y"
+#line 2536 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 824:
 
 /* Line 1464 of yacc.c  */
-#line 2536 "grammar.y"
+#line 2537 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 825:
 
 /* Line 1464 of yacc.c  */
-#line 2537 "grammar.y"
+#line 2538 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 826:
 
 /* Line 1464 of yacc.c  */
-#line 2538 "grammar.y"
+#line 2539 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 827:
 
 /* Line 1464 of yacc.c  */
-#line 2539 "grammar.y"
+#line 2540 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 828:
 
 /* Line 1464 of yacc.c  */
-#line 2540 "grammar.y"
+#line 2541 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 829:
 
 /* Line 1464 of yacc.c  */
-#line 2541 "grammar.y"
+#line 2542 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id));}
     break;
 
   case 830:
 
 /* Line 1464 of yacc.c  */
-#line 2542 "grammar.y"
+#line 2543 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
     break;
 
   case 831:
 
 /* Line 1464 of yacc.c  */
-#line 2544 "grammar.y"
+#line 2545 "grammar.y"
     {
          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
 
@@ -19173,7 +19174,7 @@ yyreduce:
   case 832:
 
 /* Line 1464 of yacc.c  */
-#line 2552 "grammar.y"
+#line 2553 "grammar.y"
     {
          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
@@ -19184,91 +19185,91 @@ yyreduce:
   case 833:
 
 /* Line 1464 of yacc.c  */
-#line 2560 "grammar.y"
+#line 2561 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 834:
 
 /* Line 1464 of yacc.c  */
-#line 2561 "grammar.y"
+#line 2562 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 835:
 
 /* Line 1464 of yacc.c  */
-#line 2562 "grammar.y"
+#line 2563 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 836:
 
 /* Line 1464 of yacc.c  */
-#line 2563 "grammar.y"
+#line 2564 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 837:
 
 /* Line 1464 of yacc.c  */
-#line 2564 "grammar.y"
+#line 2565 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 838:
 
 /* Line 1464 of yacc.c  */
-#line 2565 "grammar.y"
+#line 2566 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 839:
 
 /* Line 1464 of yacc.c  */
-#line 2566 "grammar.y"
+#line 2567 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 840:
 
 /* Line 1464 of yacc.c  */
-#line 2567 "grammar.y"
+#line 2568 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 841:
 
 /* Line 1464 of yacc.c  */
-#line 2568 "grammar.y"
+#line 2569 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 842:
 
 /* Line 1464 of yacc.c  */
-#line 2569 "grammar.y"
+#line 2570 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 843:
 
 /* Line 1464 of yacc.c  */
-#line 2570 "grammar.y"
+#line 2571 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id));}
     break;
 
   case 844:
 
 /* Line 1464 of yacc.c  */
-#line 2571 "grammar.y"
+#line 2572 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
     break;
 
   case 845:
 
 /* Line 1464 of yacc.c  */
-#line 2573 "grammar.y"
+#line 2574 "grammar.y"
     {
          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
 
@@ -19281,7 +19282,7 @@ yyreduce:
   case 846:
 
 /* Line 1464 of yacc.c  */
-#line 2581 "grammar.y"
+#line 2582 "grammar.y"
     {
          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
@@ -19292,91 +19293,91 @@ yyreduce:
   case 847:
 
 /* Line 1464 of yacc.c  */
-#line 2589 "grammar.y"
+#line 2590 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 848:
 
 /* Line 1464 of yacc.c  */
-#line 2590 "grammar.y"
+#line 2591 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 849:
 
 /* Line 1464 of yacc.c  */
-#line 2591 "grammar.y"
+#line 2592 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 850:
 
 /* Line 1464 of yacc.c  */
-#line 2592 "grammar.y"
+#line 2593 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 851:
 
 /* Line 1464 of yacc.c  */
-#line 2593 "grammar.y"
+#line 2594 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 852:
 
 /* Line 1464 of yacc.c  */
-#line 2594 "grammar.y"
+#line 2595 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 853:
 
 /* Line 1464 of yacc.c  */
-#line 2595 "grammar.y"
+#line 2596 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 854:
 
 /* Line 1464 of yacc.c  */
-#line 2596 "grammar.y"
+#line 2597 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 855:
 
 /* Line 1464 of yacc.c  */
-#line 2597 "grammar.y"
+#line 2598 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 856:
 
 /* Line 1464 of yacc.c  */
-#line 2598 "grammar.y"
+#line 2599 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 857:
 
 /* Line 1464 of yacc.c  */
-#line 2599 "grammar.y"
+#line 2600 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id));}
     break;
 
   case 858:
 
 /* Line 1464 of yacc.c  */
-#line 2600 "grammar.y"
+#line 2601 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
     break;
 
   case 859:
 
 /* Line 1464 of yacc.c  */
-#line 2602 "grammar.y"
+#line 2603 "grammar.y"
     {
          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
 
@@ -19389,7 +19390,7 @@ yyreduce:
   case 860:
 
 /* Line 1464 of yacc.c  */
-#line 2610 "grammar.y"
+#line 2611 "grammar.y"
     {
          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
@@ -19400,56 +19401,56 @@ yyreduce:
   case 861:
 
 /* Line 1464 of yacc.c  */
-#line 2618 "grammar.y"
+#line 2619 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), null); ;}
     break;
 
   case 862:
 
 /* Line 1464 of yacc.c  */
-#line 2619 "grammar.y"
+#line 2620 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), null); ;}
     break;
 
   case 863:
 
 /* Line 1464 of yacc.c  */
-#line 2623 "grammar.y"
+#line 2624 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
     break;
 
   case 864:
 
 /* Line 1464 of yacc.c  */
-#line 2624 "grammar.y"
+#line 2625 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
     break;
 
   case 865:
 
 /* Line 1464 of yacc.c  */
-#line 2625 "grammar.y"
+#line 2626 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
     break;
 
   case 866:
 
 /* Line 1464 of yacc.c  */
-#line 2626 "grammar.y"
+#line 2627 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
     break;
 
   case 867:
 
 /* Line 1464 of yacc.c  */
-#line 2627 "grammar.y"
+#line 2628 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
     break;
 
   case 869:
 
 /* Line 1464 of yacc.c  */
-#line 2633 "grammar.y"
+#line 2634 "grammar.y"
     {
       char * colon = RSearchString((yyvsp[(1) - (1)].specifier).name, "::", strlen((yyvsp[(1) - (1)].specifier).name), true, false);
       String s = colon ? colon + 2 : (yyvsp[(1) - (1)].specifier).name;
@@ -19461,14 +19462,14 @@ yyreduce:
   case 870:
 
 /* Line 1464 of yacc.c  */
-#line 2639 "grammar.y"
+#line 2640 "grammar.y"
     { (yyval.declarator) = MkDeclaratorIdentifier(MkIdentifier("uint")); ;}
     break;
 
   case 871:
 
 /* Line 1464 of yacc.c  */
-#line 2642 "grammar.y"
+#line 2643 "grammar.y"
     {
          Declarator decl;
          char * colon = RSearchString((yyvsp[(1) - (4)].specifier).name, "::", strlen((yyvsp[(1) - (4)].specifier).name), true, false);
@@ -19482,7 +19483,7 @@ yyreduce:
   case 872:
 
 /* Line 1464 of yacc.c  */
-#line 2651 "grammar.y"
+#line 2652 "grammar.y"
     {
          Declarator decl;
          char * colon = RSearchString((yyvsp[(1) - (4)].specifier).name, "::", strlen((yyvsp[(1) - (4)].specifier).name), true, false);
@@ -19496,7 +19497,7 @@ yyreduce:
   case 873:
 
 /* Line 1464 of yacc.c  */
-#line 2660 "grammar.y"
+#line 2661 "grammar.y"
     {
          Declarator decl;
          char * colon = RSearchString((yyvsp[(1) - (4)].specifier).name, "::", strlen((yyvsp[(1) - (4)].specifier).name), true, false);
@@ -19510,7 +19511,7 @@ yyreduce:
   case 874:
 
 /* Line 1464 of yacc.c  */
-#line 2669 "grammar.y"
+#line 2670 "grammar.y"
     {
          Declarator decl;
          char * colon = RSearchString((yyvsp[(1) - (3)].specifier).name, "::", strlen((yyvsp[(1) - (3)].specifier).name), true, false);
@@ -19524,133 +19525,133 @@ yyreduce:
   case 875:
 
 /* Line 1464 of yacc.c  */
-#line 2677 "grammar.y"
+#line 2678 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 876:
 
 /* Line 1464 of yacc.c  */
-#line 2678 "grammar.y"
+#line 2679 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 877:
 
 /* Line 1464 of yacc.c  */
-#line 2679 "grammar.y"
+#line 2680 "grammar.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 878:
 
 /* Line 1464 of yacc.c  */
-#line 2680 "grammar.y"
+#line 2681 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 879:
 
 /* Line 1464 of yacc.c  */
-#line 2684 "grammar.y"
+#line 2685 "grammar.y"
     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
     break;
 
   case 880:
 
 /* Line 1464 of yacc.c  */
-#line 2685 "grammar.y"
+#line 2686 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 881:
 
 /* Line 1464 of yacc.c  */
-#line 2686 "grammar.y"
+#line 2687 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
     break;
 
   case 882:
 
 /* Line 1464 of yacc.c  */
-#line 2687 "grammar.y"
+#line 2688 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 883:
 
 /* Line 1464 of yacc.c  */
-#line 2688 "grammar.y"
+#line 2689 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
     break;
 
   case 884:
 
 /* Line 1464 of yacc.c  */
-#line 2689 "grammar.y"
+#line 2690 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 885:
 
 /* Line 1464 of yacc.c  */
-#line 2690 "grammar.y"
+#line 2691 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 886:
 
 /* Line 1464 of yacc.c  */
-#line 2691 "grammar.y"
+#line 2692 "grammar.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 887:
 
 /* Line 1464 of yacc.c  */
-#line 2692 "grammar.y"
+#line 2693 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 889:
 
 /* Line 1464 of yacc.c  */
-#line 2700 "grammar.y"
+#line 2701 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 890:
 
 /* Line 1464 of yacc.c  */
-#line 2701 "grammar.y"
+#line 2702 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 891:
 
 /* Line 1464 of yacc.c  */
-#line 2702 "grammar.y"
+#line 2703 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 892:
 
 /* Line 1464 of yacc.c  */
-#line 2703 "grammar.y"
+#line 2704 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 893:
 
 /* Line 1464 of yacc.c  */
-#line 2704 "grammar.y"
+#line 2705 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
     break;
 
   case 894:
 
 /* Line 1464 of yacc.c  */
-#line 2710 "grammar.y"
+#line 2711 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), (yyvsp[(2) - (2)].list));
          fileInput.Seek((yylsp[(1) - (2)]).end.pos, start);
@@ -19664,7 +19665,7 @@ yyreduce:
   case 895:
 
 /* Line 1464 of yacc.c  */
-#line 2719 "grammar.y"
+#line 2720 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null);
          fileInput.Seek((yylsp[(1) - (2)]).end.pos, start);
@@ -19678,7 +19679,7 @@ yyreduce:
   case 896:
 
 /* Line 1464 of yacc.c  */
-#line 2728 "grammar.y"
+#line 2729 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list));
          fileInput.Seek((yylsp[(1) - (3)]).end.pos, start);
@@ -19692,7 +19693,7 @@ yyreduce:
   case 897:
 
 /* Line 1464 of yacc.c  */
-#line 2737 "grammar.y"
+#line 2738 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), null);
          fileInput.Seek((yylsp[(1) - (4)]).end.pos, start);
@@ -19708,42 +19709,42 @@ yyreduce:
   case 901:
 
 /* Line 1464 of yacc.c  */
-#line 2760 "grammar.y"
+#line 2761 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 902:
 
 /* Line 1464 of yacc.c  */
-#line 2761 "grammar.y"
+#line 2762 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 903:
 
 /* Line 1464 of yacc.c  */
-#line 2762 "grammar.y"
+#line 2763 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 904:
 
 /* Line 1464 of yacc.c  */
-#line 2763 "grammar.y"
+#line 2764 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 905:
 
 /* Line 1464 of yacc.c  */
-#line 2764 "grammar.y"
+#line 2765 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
     break;
 
   case 906:
 
 /* Line 1464 of yacc.c  */
-#line 2770 "grammar.y"
+#line 2771 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), (yyvsp[(2) - (2)].list));
          fileInput.Seek((yylsp[(1) - (2)]).end.pos, start);
@@ -19757,7 +19758,7 @@ yyreduce:
   case 907:
 
 /* Line 1464 of yacc.c  */
-#line 2779 "grammar.y"
+#line 2780 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null);
          fileInput.Seek((yylsp[(1) - (2)]).end.pos, start);
@@ -19771,7 +19772,7 @@ yyreduce:
   case 908:
 
 /* Line 1464 of yacc.c  */
-#line 2788 "grammar.y"
+#line 2789 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list));
          fileInput.Seek((yylsp[(1) - (3)]).end.pos, start);
@@ -19785,7 +19786,7 @@ yyreduce:
   case 909:
 
 /* Line 1464 of yacc.c  */
-#line 2797 "grammar.y"
+#line 2798 "grammar.y"
     {
          (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), null);
          fileInput.Seek((yylsp[(1) - (4)]).end.pos, start);
@@ -19801,28 +19802,28 @@ yyreduce:
   case 912:
 
 /* Line 1464 of yacc.c  */
-#line 2860 "grammar.y"
+#line 2861 "grammar.y"
     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
     break;
 
   case 913:
 
 /* Line 1464 of yacc.c  */
-#line 2861 "grammar.y"
+#line 2862 "grammar.y"
     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
     break;
 
   case 914:
 
 /* Line 1464 of yacc.c  */
-#line 2862 "grammar.y"
+#line 2863 "grammar.y"
     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
     break;
 
   case 915:
 
 /* Line 1464 of yacc.c  */
-#line 2864 "grammar.y"
+#line 2865 "grammar.y"
     {
          char temp[1024];
          strcpy(temp, "__asm__(");
@@ -19836,532 +19837,532 @@ yyreduce:
   case 916:
 
 /* Line 1464 of yacc.c  */
-#line 2875 "grammar.y"
+#line 2876 "grammar.y"
     { (yyval.i) = ATTRIB; ;}
     break;
 
   case 917:
 
 /* Line 1464 of yacc.c  */
-#line 2876 "grammar.y"
+#line 2877 "grammar.y"
     { (yyval.i) = ATTRIB_DEP; ;}
     break;
 
   case 918:
 
 /* Line 1464 of yacc.c  */
-#line 2877 "grammar.y"
+#line 2878 "grammar.y"
     { (yyval.i) = __ATTRIB; ;}
     break;
 
   case 919:
 
 /* Line 1464 of yacc.c  */
-#line 2882 "grammar.y"
+#line 2883 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 920:
 
 /* Line 1464 of yacc.c  */
-#line 2883 "grammar.y"
+#line 2884 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 921:
 
 /* Line 1464 of yacc.c  */
-#line 2884 "grammar.y"
+#line 2885 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 922:
 
 /* Line 1464 of yacc.c  */
-#line 2885 "grammar.y"
+#line 2886 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 923:
 
 /* Line 1464 of yacc.c  */
-#line 2886 "grammar.y"
+#line 2887 "grammar.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 924:
 
 /* Line 1464 of yacc.c  */
-#line 2890 "grammar.y"
+#line 2891 "grammar.y"
     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
     break;
 
   case 925:
 
 /* Line 1464 of yacc.c  */
-#line 2891 "grammar.y"
+#line 2892 "grammar.y"
     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
     break;
 
   case 926:
 
 /* Line 1464 of yacc.c  */
-#line 2895 "grammar.y"
+#line 2896 "grammar.y"
     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
     break;
 
   case 927:
 
 /* Line 1464 of yacc.c  */
-#line 2896 "grammar.y"
+#line 2897 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 928:
 
 /* Line 1464 of yacc.c  */
-#line 2897 "grammar.y"
+#line 2898 "grammar.y"
     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 929:
 
 /* Line 1464 of yacc.c  */
-#line 2901 "grammar.y"
+#line 2902 "grammar.y"
     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
     break;
 
   case 930:
 
 /* Line 1464 of yacc.c  */
-#line 2902 "grammar.y"
+#line 2903 "grammar.y"
     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
     break;
 
   case 931:
 
 /* Line 1464 of yacc.c  */
-#line 2906 "grammar.y"
+#line 2907 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 932:
 
 /* Line 1464 of yacc.c  */
-#line 2907 "grammar.y"
+#line 2908 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
     break;
 
   case 933:
 
 /* Line 1464 of yacc.c  */
-#line 2908 "grammar.y"
+#line 2909 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
     break;
 
   case 934:
 
 /* Line 1464 of yacc.c  */
-#line 2909 "grammar.y"
+#line 2910 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
     break;
 
   case 935:
 
 /* Line 1464 of yacc.c  */
-#line 2910 "grammar.y"
+#line 2911 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
     break;
 
   case 936:
 
 /* Line 1464 of yacc.c  */
-#line 2911 "grammar.y"
+#line 2912 "grammar.y"
     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
     break;
 
   case 937:
 
 /* Line 1464 of yacc.c  */
-#line 2912 "grammar.y"
+#line 2913 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 938:
 
 /* Line 1464 of yacc.c  */
-#line 2913 "grammar.y"
+#line 2914 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 939:
 
 /* Line 1464 of yacc.c  */
-#line 2914 "grammar.y"
+#line 2915 "grammar.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 940:
 
 /* Line 1464 of yacc.c  */
-#line 2915 "grammar.y"
+#line 2916 "grammar.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 941:
 
 /* Line 1464 of yacc.c  */
-#line 2916 "grammar.y"
+#line 2917 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
     break;
 
   case 942:
 
 /* Line 1464 of yacc.c  */
-#line 2917 "grammar.y"
+#line 2918 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 943:
 
 /* Line 1464 of yacc.c  */
-#line 2918 "grammar.y"
+#line 2919 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 944:
 
 /* Line 1464 of yacc.c  */
-#line 2919 "grammar.y"
+#line 2920 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 945:
 
 /* Line 1464 of yacc.c  */
-#line 2920 "grammar.y"
+#line 2921 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 946:
 
 /* Line 1464 of yacc.c  */
-#line 2921 "grammar.y"
+#line 2922 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 947:
 
 /* Line 1464 of yacc.c  */
-#line 2925 "grammar.y"
+#line 2926 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 948:
 
 /* Line 1464 of yacc.c  */
-#line 2926 "grammar.y"
+#line 2927 "grammar.y"
     { (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
     break;
 
   case 949:
 
 /* Line 1464 of yacc.c  */
-#line 2927 "grammar.y"
+#line 2928 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
     break;
 
   case 950:
 
 /* Line 1464 of yacc.c  */
-#line 2928 "grammar.y"
+#line 2929 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 951:
 
 /* Line 1464 of yacc.c  */
-#line 2929 "grammar.y"
+#line 2930 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 952:
 
 /* Line 1464 of yacc.c  */
-#line 2930 "grammar.y"
+#line 2931 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 953:
 
 /* Line 1464 of yacc.c  */
-#line 2931 "grammar.y"
+#line 2932 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 954:
 
 /* Line 1464 of yacc.c  */
-#line 2932 "grammar.y"
+#line 2933 "grammar.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 955:
 
 /* Line 1464 of yacc.c  */
-#line 2936 "grammar.y"
+#line 2937 "grammar.y"
     { (yyval.pointer) = MkPointer(null, null); ;}
     break;
 
   case 956:
 
 /* Line 1464 of yacc.c  */
-#line 2937 "grammar.y"
+#line 2938 "grammar.y"
     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
     break;
 
   case 957:
 
 /* Line 1464 of yacc.c  */
-#line 2938 "grammar.y"
+#line 2939 "grammar.y"
     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
     break;
 
   case 958:
 
 /* Line 1464 of yacc.c  */
-#line 2939 "grammar.y"
+#line 2940 "grammar.y"
     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
     break;
 
   case 959:
 
 /* Line 1464 of yacc.c  */
-#line 2943 "grammar.y"
+#line 2944 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
     break;
 
   case 961:
 
 /* Line 1464 of yacc.c  */
-#line 2945 "grammar.y"
+#line 2946 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 962:
 
 /* Line 1464 of yacc.c  */
-#line 2946 "grammar.y"
+#line 2947 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
     break;
 
   case 963:
 
 /* Line 1464 of yacc.c  */
-#line 2947 "grammar.y"
+#line 2948 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 964:
 
 /* Line 1464 of yacc.c  */
-#line 2951 "grammar.y"
+#line 2952 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
     break;
 
   case 966:
 
 /* Line 1464 of yacc.c  */
-#line 2953 "grammar.y"
+#line 2954 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 967:
 
 /* Line 1464 of yacc.c  */
-#line 2954 "grammar.y"
+#line 2955 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
     break;
 
   case 968:
 
 /* Line 1464 of yacc.c  */
-#line 2955 "grammar.y"
+#line 2956 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 970:
 
 /* Line 1464 of yacc.c  */
-#line 2961 "grammar.y"
+#line 2962 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 971:
 
 /* Line 1464 of yacc.c  */
-#line 2963 "grammar.y"
+#line 2964 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 972:
 
 /* Line 1464 of yacc.c  */
-#line 2965 "grammar.y"
+#line 2966 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
     break;
 
   case 973:
 
 /* Line 1464 of yacc.c  */
-#line 2967 "grammar.y"
+#line 2968 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
     break;
 
   case 975:
 
 /* Line 1464 of yacc.c  */
-#line 2973 "grammar.y"
+#line 2974 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 976:
 
 /* Line 1464 of yacc.c  */
-#line 2975 "grammar.y"
+#line 2976 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 977:
 
 /* Line 1464 of yacc.c  */
-#line 2977 "grammar.y"
+#line 2978 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
     break;
 
   case 979:
 
 /* Line 1464 of yacc.c  */
-#line 2982 "grammar.y"
+#line 2983 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 980:
 
 /* Line 1464 of yacc.c  */
-#line 2983 "grammar.y"
+#line 2984 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 981:
 
 /* Line 1464 of yacc.c  */
-#line 2984 "grammar.y"
+#line 2985 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 983:
 
 /* Line 1464 of yacc.c  */
-#line 2989 "grammar.y"
+#line 2990 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 984:
 
 /* Line 1464 of yacc.c  */
-#line 2990 "grammar.y"
+#line 2991 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 985:
 
 /* Line 1464 of yacc.c  */
-#line 2991 "grammar.y"
+#line 2992 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 987:
 
 /* Line 1464 of yacc.c  */
-#line 2996 "grammar.y"
+#line 2997 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 988:
 
 /* Line 1464 of yacc.c  */
-#line 2997 "grammar.y"
+#line 2998 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 989:
 
 /* Line 1464 of yacc.c  */
-#line 2998 "grammar.y"
+#line 2999 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 991:
 
 /* Line 1464 of yacc.c  */
-#line 3003 "grammar.y"
+#line 3004 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 992:
 
 /* Line 1464 of yacc.c  */
-#line 3004 "grammar.y"
+#line 3005 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 993:
 
 /* Line 1464 of yacc.c  */
-#line 3005 "grammar.y"
+#line 3006 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 995:
 
 /* Line 1464 of yacc.c  */
-#line 3010 "grammar.y"
+#line 3011 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 996:
 
 /* Line 1464 of yacc.c  */
-#line 3011 "grammar.y"
+#line 3012 "grammar.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 997:
 
 /* Line 1464 of yacc.c  */
-#line 3012 "grammar.y"
+#line 3013 "grammar.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 998:
 
 /* Line 1464 of yacc.c  */
-#line 3016 "grammar.y"
+#line 3017 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 999:
 
 /* Line 1464 of yacc.c  */
-#line 3017 "grammar.y"
+#line 3018 "grammar.y"
     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1000:
 
 /* Line 1464 of yacc.c  */
-#line 3019 "grammar.y"
+#line 3020 "grammar.y"
     {
          Compiler_Warning($"extra comma\n");
          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list));
@@ -20380,28 +20381,28 @@ yyreduce:
   case 1001:
 
 /* Line 1464 of yacc.c  */
-#line 3035 "grammar.y"
+#line 3036 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1002:
 
 /* Line 1464 of yacc.c  */
-#line 3036 "grammar.y"
+#line 3037 "grammar.y"
     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1003:
 
 /* Line 1464 of yacc.c  */
-#line 3037 "grammar.y"
+#line 3038 "grammar.y"
     { yyerror(); (yyval.initializer) = MkInitializerList((yyvsp[(2) - (2)].list)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1004:
 
 /* Line 1464 of yacc.c  */
-#line 3039 "grammar.y"
+#line 3040 "grammar.y"
     {
          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (5)].list));
          (yyval.initializer).loc = (yyloc);
@@ -20419,7 +20420,7 @@ yyreduce:
   case 1005:
 
 /* Line 1464 of yacc.c  */
-#line 3052 "grammar.y"
+#line 3053 "grammar.y"
     {
          yyerror();
          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list));
@@ -20438,140 +20439,140 @@ yyreduce:
   case 1006:
 
 /* Line 1464 of yacc.c  */
-#line 3068 "grammar.y"
+#line 3069 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1007:
 
 /* Line 1464 of yacc.c  */
-#line 3070 "grammar.y"
+#line 3071 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1008:
 
 /* Line 1464 of yacc.c  */
-#line 3074 "grammar.y"
+#line 3075 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1009:
 
 /* Line 1464 of yacc.c  */
-#line 3075 "grammar.y"
+#line 3076 "grammar.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 1010:
 
 /* Line 1464 of yacc.c  */
-#line 3079 "grammar.y"
+#line 3080 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
     break;
 
   case 1011:
 
 /* Line 1464 of yacc.c  */
-#line 3080 "grammar.y"
+#line 3081 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
     break;
 
   case 1012:
 
 /* Line 1464 of yacc.c  */
-#line 3081 "grammar.y"
+#line 3082 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
     break;
 
   case 1013:
 
 /* Line 1464 of yacc.c  */
-#line 3082 "grammar.y"
+#line 3083 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
     break;
 
   case 1014:
 
 /* Line 1464 of yacc.c  */
-#line 3085 "grammar.y"
+#line 3086 "grammar.y"
     { yyerror(); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].initializer)); ;}
     break;
 
   case 1015:
 
 /* Line 1464 of yacc.c  */
-#line 3086 "grammar.y"
+#line 3087 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].initializer)); ;}
     break;
 
   case 1016:
 
 /* Line 1464 of yacc.c  */
-#line 3090 "grammar.y"
+#line 3091 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
     break;
 
   case 1017:
 
 /* Line 1464 of yacc.c  */
-#line 3091 "grammar.y"
+#line 3092 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
     break;
 
   case 1018:
 
 /* Line 1464 of yacc.c  */
-#line 3092 "grammar.y"
+#line 3093 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
     break;
 
   case 1019:
 
 /* Line 1464 of yacc.c  */
-#line 3096 "grammar.y"
+#line 3097 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
     break;
 
   case 1020:
 
 /* Line 1464 of yacc.c  */
-#line 3100 "grammar.y"
+#line 3101 "grammar.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
     break;
 
   case 1021:
 
 /* Line 1464 of yacc.c  */
-#line 3104 "grammar.y"
+#line 3105 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
     break;
 
   case 1022:
 
 /* Line 1464 of yacc.c  */
-#line 3105 "grammar.y"
+#line 3106 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1023:
 
 /* Line 1464 of yacc.c  */
-#line 3106 "grammar.y"
+#line 3107 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("uint")), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1024:
 
 /* Line 1464 of yacc.c  */
-#line 3107 "grammar.y"
+#line 3108 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("int64")), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1025:
 
 /* Line 1464 of yacc.c  */
-#line 3109 "grammar.y"
+#line 3110 "grammar.y"
     {
       char * colon = RSearchString((yyvsp[(1) - (3)].specifier).name, "::", strlen((yyvsp[(1) - (3)].specifier).name), true, false);
       String s = colon ? colon + 2 : (yyvsp[(1) - (3)].specifier).name;
@@ -20585,1484 +20586,1484 @@ yyreduce:
   case 1026:
 
 /* Line 1464 of yacc.c  */
-#line 3117 "grammar.y"
+#line 3118 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1027:
 
 /* Line 1464 of yacc.c  */
-#line 3126 "grammar.y"
+#line 3127 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
     break;
 
   case 1028:
 
 /* Line 1464 of yacc.c  */
-#line 3127 "grammar.y"
+#line 3128 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (2)].initDeclarator)); ;}
     break;
 
   case 1029:
 
 /* Line 1464 of yacc.c  */
-#line 3128 "grammar.y"
+#line 3129 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1030:
 
 /* Line 1464 of yacc.c  */
-#line 3129 "grammar.y"
+#line 3130 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 1031:
 
 /* Line 1464 of yacc.c  */
-#line 3133 "grammar.y"
+#line 3134 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1032:
 
 /* Line 1464 of yacc.c  */
-#line 3134 "grammar.y"
+#line 3135 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1033:
 
 /* Line 1464 of yacc.c  */
-#line 3138 "grammar.y"
+#line 3139 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1034:
 
 /* Line 1464 of yacc.c  */
-#line 3139 "grammar.y"
+#line 3140 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1035:
 
 /* Line 1464 of yacc.c  */
-#line 3144 "grammar.y"
+#line 3145 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1036:
 
 /* Line 1464 of yacc.c  */
-#line 3145 "grammar.y"
+#line 3146 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 1037:
 
 /* Line 1464 of yacc.c  */
-#line 3146 "grammar.y"
+#line 3147 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
     break;
 
   case 1038:
 
 /* Line 1464 of yacc.c  */
-#line 3147 "grammar.y"
+#line 3148 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 1039:
 
 /* Line 1464 of yacc.c  */
-#line 3148 "grammar.y"
+#line 3149 "grammar.y"
     { (yyval.typeName) = MkTypeNameGuessDecl((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1040:
 
 /* Line 1464 of yacc.c  */
-#line 3150 "grammar.y"
+#line 3151 "grammar.y"
     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
     break;
 
   case 1041:
 
 /* Line 1464 of yacc.c  */
-#line 3168 "grammar.y"
+#line 3169 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 1042:
 
 /* Line 1464 of yacc.c  */
-#line 3169 "grammar.y"
+#line 3170 "grammar.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 1043:
 
 /* Line 1464 of yacc.c  */
-#line 3173 "grammar.y"
+#line 3174 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
     break;
 
   case 1044:
 
 /* Line 1464 of yacc.c  */
-#line 3174 "grammar.y"
+#line 3175 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1045:
 
 /* Line 1464 of yacc.c  */
-#line 3175 "grammar.y"
+#line 3176 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1046:
 
 /* Line 1464 of yacc.c  */
-#line 3176 "grammar.y"
+#line 3177 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1047:
 
 /* Line 1464 of yacc.c  */
-#line 3177 "grammar.y"
+#line 3178 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1048:
 
 /* Line 1464 of yacc.c  */
-#line 3178 "grammar.y"
+#line 3179 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(MkList(), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1049:
 
 /* Line 1464 of yacc.c  */
-#line 3180 "grammar.y"
+#line 3181 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1050:
 
 /* Line 1464 of yacc.c  */
-#line 3181 "grammar.y"
+#line 3182 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1051:
 
 /* Line 1464 of yacc.c  */
-#line 3182 "grammar.y"
+#line 3183 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1052:
 
 /* Line 1464 of yacc.c  */
-#line 3183 "grammar.y"
+#line 3184 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1053:
 
 /* Line 1464 of yacc.c  */
-#line 3187 "grammar.y"
+#line 3188 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
     break;
 
   case 1054:
 
 /* Line 1464 of yacc.c  */
-#line 3188 "grammar.y"
+#line 3189 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1055:
 
 /* Line 1464 of yacc.c  */
-#line 3189 "grammar.y"
+#line 3190 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1056:
 
 /* Line 1464 of yacc.c  */
-#line 3190 "grammar.y"
+#line 3191 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1057:
 
 /* Line 1464 of yacc.c  */
-#line 3191 "grammar.y"
+#line 3192 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(MkList(), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1058:
 
 /* Line 1464 of yacc.c  */
-#line 3193 "grammar.y"
+#line 3194 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1059:
 
 /* Line 1464 of yacc.c  */
-#line 3194 "grammar.y"
+#line 3195 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 1060:
 
 /* Line 1464 of yacc.c  */
-#line 3195 "grammar.y"
+#line 3196 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
     break;
 
   case 1062:
 
 /* Line 1464 of yacc.c  */
-#line 3200 "grammar.y"
+#line 3201 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 1063:
 
 /* Line 1464 of yacc.c  */
-#line 3201 "grammar.y"
+#line 3202 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 1064:
 
 /* Line 1464 of yacc.c  */
-#line 3202 "grammar.y"
+#line 3203 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 1065:
 
 /* Line 1464 of yacc.c  */
-#line 3203 "grammar.y"
+#line 3204 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 1066:
 
 /* Line 1464 of yacc.c  */
-#line 3204 "grammar.y"
+#line 3205 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, null)); ;}
     break;
 
   case 1068:
 
 /* Line 1464 of yacc.c  */
-#line 3209 "grammar.y"
+#line 3210 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), null); ;}
     break;
 
   case 1071:
 
 /* Line 1464 of yacc.c  */
-#line 3216 "grammar.y"
+#line 3217 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt(null); FreeAttrib((yyvsp[(1) - (1)].attrib)); ;}
     break;
 
   case 1073:
 
 /* Line 1464 of yacc.c  */
-#line 3218 "grammar.y"
+#line 3219 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt(null); ;}
     break;
 
   case 1074:
 
 /* Line 1464 of yacc.c  */
-#line 3219 "grammar.y"
+#line 3220 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt(null); ;}
     break;
 
   case 1075:
 
 /* Line 1464 of yacc.c  */
-#line 3220 "grammar.y"
+#line 3221 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1083:
 
 /* Line 1464 of yacc.c  */
-#line 3231 "grammar.y"
+#line 3232 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1084:
 
 /* Line 1464 of yacc.c  */
-#line 3232 "grammar.y"
+#line 3233 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1085:
 
 /* Line 1464 of yacc.c  */
-#line 3233 "grammar.y"
+#line 3234 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1086:
 
 /* Line 1464 of yacc.c  */
-#line 3234 "grammar.y"
+#line 3235 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1087:
 
 /* Line 1464 of yacc.c  */
-#line 3235 "grammar.y"
+#line 3236 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1088:
 
 /* Line 1464 of yacc.c  */
-#line 3236 "grammar.y"
+#line 3237 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (2)].stmt); Compiler_Error($"syntax error\n"); ;}
     break;
 
   case 1089:
 
 /* Line 1464 of yacc.c  */
-#line 3237 "grammar.y"
+#line 3238 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (1)].list)); Compiler_Error($"syntax error\n"); (yyval.stmt).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 1090:
 
 /* Line 1464 of yacc.c  */
-#line 3241 "grammar.y"
+#line 3242 "grammar.y"
     { (yyval.asmField) = MkAsmField((yyvsp[(1) - (1)].string), null, null); (yyval.asmField).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 1091:
 
 /* Line 1464 of yacc.c  */
-#line 3242 "grammar.y"
+#line 3243 "grammar.y"
     { (yyval.asmField) = MkAsmField((yyvsp[(1) - (4)].string), (yyvsp[(3) - (4)].exp), null); (yyval.asmField).loc = (yyloc); ;}
     break;
 
   case 1092:
 
 /* Line 1464 of yacc.c  */
-#line 3243 "grammar.y"
+#line 3244 "grammar.y"
     { (yyval.asmField) = MkAsmField((yyvsp[(4) - (7)].string), (yyvsp[(6) - (7)].exp), (yyvsp[(2) - (7)].id)); (yyval.asmField).loc = (yyloc); ;}
     break;
 
   case 1093:
 
 /* Line 1464 of yacc.c  */
-#line 3247 "grammar.y"
+#line 3248 "grammar.y"
     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].asmField)); ;}
     break;
 
   case 1094:
 
 /* Line 1464 of yacc.c  */
-#line 3248 "grammar.y"
+#line 3249 "grammar.y"
     { ListAdd((yyval.list), (yyvsp[(3) - (3)].asmField)); ;}
     break;
 
   case 1095:
 
 /* Line 1464 of yacc.c  */
-#line 3249 "grammar.y"
+#line 3250 "grammar.y"
     { (yyval.list) = null; ;}
     break;
 
   case 1096:
 
 /* Line 1464 of yacc.c  */
-#line 3253 "grammar.y"
+#line 3254 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (6)].specifier), (yyvsp[(4) - (6)].string), null, null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1097:
 
 /* Line 1464 of yacc.c  */
-#line 3254 "grammar.y"
+#line 3255 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (8)].specifier), (yyvsp[(4) - (8)].string), (yyvsp[(6) - (8)].list), null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1098:
 
 /* Line 1464 of yacc.c  */
-#line 3255 "grammar.y"
+#line 3256 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (10)].specifier), (yyvsp[(4) - (10)].string), (yyvsp[(6) - (10)].list), (yyvsp[(8) - (10)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1099:
 
 /* Line 1464 of yacc.c  */
-#line 3256 "grammar.y"
+#line 3257 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (12)].specifier), (yyvsp[(4) - (12)].string), (yyvsp[(6) - (12)].list), (yyvsp[(8) - (12)].list), (yyvsp[(10) - (12)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1100:
 
 /* Line 1464 of yacc.c  */
-#line 3258 "grammar.y"
+#line 3259 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (8)].specifier), (yyvsp[(4) - (8)].string), null, (yyvsp[(6) - (8)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1101:
 
 /* Line 1464 of yacc.c  */
-#line 3259 "grammar.y"
+#line 3260 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (10)].specifier), (yyvsp[(4) - (10)].string), null, (yyvsp[(6) - (10)].list), (yyvsp[(8) - (10)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1102:
 
 /* Line 1464 of yacc.c  */
-#line 3260 "grammar.y"
+#line 3261 "grammar.y"
     { (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (10)].specifier), (yyvsp[(4) - (10)].string), (yyvsp[(6) - (10)].list), null, (yyvsp[(8) - (10)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1103:
 
 /* Line 1464 of yacc.c  */
-#line 3262 "grammar.y"
+#line 3263 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (5)].string), null, null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1104:
 
 /* Line 1464 of yacc.c  */
-#line 3263 "grammar.y"
+#line 3264 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (7)].string), (yyvsp[(5) - (7)].list), null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1105:
 
 /* Line 1464 of yacc.c  */
-#line 3264 "grammar.y"
+#line 3265 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (9)].string), (yyvsp[(5) - (9)].list), (yyvsp[(7) - (9)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1106:
 
 /* Line 1464 of yacc.c  */
-#line 3265 "grammar.y"
+#line 3266 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (11)].string), (yyvsp[(5) - (11)].list), (yyvsp[(7) - (11)].list), (yyvsp[(9) - (11)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1107:
 
 /* Line 1464 of yacc.c  */
-#line 3267 "grammar.y"
+#line 3268 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (7)].string), null, (yyvsp[(5) - (7)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1108:
 
 /* Line 1464 of yacc.c  */
-#line 3268 "grammar.y"
+#line 3269 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (9)].string), null, (yyvsp[(5) - (9)].list), (yyvsp[(7) - (9)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1109:
 
 /* Line 1464 of yacc.c  */
-#line 3269 "grammar.y"
+#line 3270 "grammar.y"
     { (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (9)].string), (yyvsp[(5) - (9)].list), null, (yyvsp[(7) - (9)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1110:
 
 /* Line 1464 of yacc.c  */
-#line 3273 "grammar.y"
+#line 3274 "grammar.y"
     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1111:
 
 /* Line 1464 of yacc.c  */
-#line 3274 "grammar.y"
+#line 3275 "grammar.y"
     { /*if($4.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1112:
 
 /* Line 1464 of yacc.c  */
-#line 3275 "grammar.y"
+#line 3276 "grammar.y"
     { /*if($4.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1113:
 
 /* Line 1464 of yacc.c  */
-#line 3276 "grammar.y"
+#line 3277 "grammar.y"
     { /*if($3.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt(MkExpDummy(), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
     break;
 
   case 1114:
 
 /* Line 1464 of yacc.c  */
-#line 3277 "grammar.y"
+#line 3278 "grammar.y"
     { /*if($3.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1115:
 
 /* Line 1464 of yacc.c  */
-#line 3279 "grammar.y"
+#line 3280 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), stmt); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1116:
 
 /* Line 1464 of yacc.c  */
-#line 3280 "grammar.y"
+#line 3281 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(4) - (4)].declaration)); stmt.loc = (yylsp[(4) - (4)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), stmt); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1117:
 
 /* Line 1464 of yacc.c  */
-#line 3281 "grammar.y"
+#line 3282 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(4) - (4)].declaration)); stmt.loc = (yylsp[(4) - (4)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), stmt); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1118:
 
 /* Line 1464 of yacc.c  */
-#line 3282 "grammar.y"
+#line 3283 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt(MkExpDummy(), stmt); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
     break;
 
   case 1119:
 
 /* Line 1464 of yacc.c  */
-#line 3283 "grammar.y"
+#line 3284 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt(null, stmt); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1120:
 
 /* Line 1464 of yacc.c  */
-#line 3287 "grammar.y"
+#line 3288 "grammar.y"
     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1121:
 
 /* Line 1464 of yacc.c  */
-#line 3288 "grammar.y"
+#line 3289 "grammar.y"
     { /*if($4.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1122:
 
 /* Line 1464 of yacc.c  */
-#line 3289 "grammar.y"
+#line 3290 "grammar.y"
     { /*if($4.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1123:
 
 /* Line 1464 of yacc.c  */
-#line 3290 "grammar.y"
+#line 3291 "grammar.y"
     { /*if($3.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt(MkExpDummy(), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
     break;
 
   case 1124:
 
 /* Line 1464 of yacc.c  */
-#line 3291 "grammar.y"
+#line 3292 "grammar.y"
     { (yyval.stmt) = MkCaseStmt(MkExpDummy(), null); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (2)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (2)]).end; ;}
     break;
 
   case 1125:
 
 /* Line 1464 of yacc.c  */
-#line 3292 "grammar.y"
+#line 3293 "grammar.y"
     { /*if($3.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1126:
 
 /* Line 1464 of yacc.c  */
-#line 3293 "grammar.y"
+#line 3294 "grammar.y"
     { (yyval.stmt) = MkCaseStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1127:
 
 /* Line 1464 of yacc.c  */
-#line 3295 "grammar.y"
+#line 3296 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), stmt); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1128:
 
 /* Line 1464 of yacc.c  */
-#line 3296 "grammar.y"
+#line 3297 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(4) - (4)].declaration)); stmt.loc = (yylsp[(4) - (4)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), stmt); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1129:
 
 /* Line 1464 of yacc.c  */
-#line 3297 "grammar.y"
+#line 3298 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(4) - (4)].declaration)); stmt.loc = (yylsp[(4) - (4)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), stmt); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 1130:
 
 /* Line 1464 of yacc.c  */
-#line 3298 "grammar.y"
+#line 3299 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt(MkExpDummy(), stmt); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
     break;
 
   case 1131:
 
 /* Line 1464 of yacc.c  */
-#line 3299 "grammar.y"
+#line 3300 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt(null, stmt); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1132:
 
 /* Line 1464 of yacc.c  */
-#line 3303 "grammar.y"
+#line 3304 "grammar.y"
     { (yyval.declMode) = structDeclMode = declMode = publicAccess; ;}
     break;
 
   case 1133:
 
 /* Line 1464 of yacc.c  */
-#line 3304 "grammar.y"
+#line 3305 "grammar.y"
     { (yyval.declMode) = structDeclMode = declMode = privateAccess; ;}
     break;
 
   case 1134:
 
 /* Line 1464 of yacc.c  */
-#line 3305 "grammar.y"
+#line 3306 "grammar.y"
     { (yyval.declMode) = structDeclMode = declMode = defaultAccess; ;}
     break;
 
   case 1135:
 
 /* Line 1464 of yacc.c  */
-#line 3309 "grammar.y"
+#line 3310 "grammar.y"
     { (yyval.declMode) = publicAccess; ;}
     break;
 
   case 1136:
 
 /* Line 1464 of yacc.c  */
-#line 3310 "grammar.y"
+#line 3311 "grammar.y"
     { (yyval.declMode) = privateAccess; ;}
     break;
 
   case 1137:
 
 /* Line 1464 of yacc.c  */
-#line 3314 "grammar.y"
+#line 3315 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
     break;
 
   case 1138:
 
 /* Line 1464 of yacc.c  */
-#line 3315 "grammar.y"
+#line 3316 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
     break;
 
   case 1139:
 
 /* Line 1464 of yacc.c  */
-#line 3316 "grammar.y"
+#line 3317 "grammar.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
     break;
 
   case 1140:
 
 /* Line 1464 of yacc.c  */
-#line 3317 "grammar.y"
+#line 3318 "grammar.y"
     { (yyval.declaration) = (yyvsp[(1) - (2)].declaration); structDeclMode = defaultDeclMode; ;}
     break;
 
   case 1141:
 
 /* Line 1464 of yacc.c  */
-#line 3321 "grammar.y"
+#line 3322 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1142:
 
 /* Line 1464 of yacc.c  */
-#line 3322 "grammar.y"
+#line 3323 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1143:
 
 /* Line 1464 of yacc.c  */
-#line 3323 "grammar.y"
+#line 3324 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1144:
 
 /* Line 1464 of yacc.c  */
-#line 3325 "grammar.y"
+#line 3326 "grammar.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1145:
 
 /* Line 1464 of yacc.c  */
-#line 3326 "grammar.y"
+#line 3327 "grammar.y"
     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1146:
 
 /* Line 1464 of yacc.c  */
-#line 3327 "grammar.y"
+#line 3328 "grammar.y"
     { structDeclMode = declMode = staticAccess; (yyval.declaration) = MkDeclarationDefine((yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].exp)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 1147:
 
 /* Line 1464 of yacc.c  */
-#line 3331 "grammar.y"
+#line 3332 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); yyerrok; ;}
     break;
 
   case 1148:
 
 /* Line 1464 of yacc.c  */
-#line 3335 "grammar.y"
+#line 3336 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
     break;
 
   case 1149:
 
 /* Line 1464 of yacc.c  */
-#line 3336 "grammar.y"
+#line 3337 "grammar.y"
     { structDeclMode = defaultDeclMode;  ;}
     break;
 
   case 1150:
 
 /* Line 1464 of yacc.c  */
-#line 3338 "grammar.y"
+#line 3339 "grammar.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
     break;
 
   case 1151:
 
 /* Line 1464 of yacc.c  */
-#line 3339 "grammar.y"
+#line 3340 "grammar.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
     break;
 
   case 1152:
 
 /* Line 1464 of yacc.c  */
-#line 3340 "grammar.y"
+#line 3341 "grammar.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
     break;
 
   case 1153:
 
 /* Line 1464 of yacc.c  */
-#line 3344 "grammar.y"
+#line 3345 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1154:
 
 /* Line 1464 of yacc.c  */
-#line 3345 "grammar.y"
+#line 3346 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); /*declMode = defaultDeclMode; */;}
     break;
 
   case 1155:
 
 /* Line 1464 of yacc.c  */
-#line 3346 "grammar.y"
+#line 3347 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); /*declMode = defaultDeclMode; */;}
     break;
 
   case 1156:
 
 /* Line 1464 of yacc.c  */
-#line 3347 "grammar.y"
+#line 3348 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 1157:
 
 /* Line 1464 of yacc.c  */
-#line 3351 "grammar.y"
+#line 3352 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
     break;
 
   case 1158:
 
 /* Line 1464 of yacc.c  */
-#line 3352 "grammar.y"
+#line 3353 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
     break;
 
   case 1159:
 
 /* Line 1464 of yacc.c  */
-#line 3356 "grammar.y"
+#line 3357 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
     break;
 
   case 1160:
 
 /* Line 1464 of yacc.c  */
-#line 3357 "grammar.y"
+#line 3358 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 1161:
 
 /* Line 1464 of yacc.c  */
-#line 3358 "grammar.y"
+#line 3359 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 1162:
 
 /* Line 1464 of yacc.c  */
-#line 3362 "grammar.y"
+#line 3363 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
     break;
 
   case 1163:
 
 /* Line 1464 of yacc.c  */
-#line 3363 "grammar.y"
+#line 3364 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 1164:
 
 /* Line 1464 of yacc.c  */
-#line 3364 "grammar.y"
+#line 3365 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 1165:
 
 /* Line 1464 of yacc.c  */
-#line 3365 "grammar.y"
+#line 3366 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1166:
 
 /* Line 1464 of yacc.c  */
-#line 3366 "grammar.y"
+#line 3367 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1167:
 
 /* Line 1464 of yacc.c  */
-#line 3367 "grammar.y"
+#line 3368 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1168:
 
 /* Line 1464 of yacc.c  */
-#line 3368 "grammar.y"
+#line 3369 "grammar.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
     break;
 
   case 1169:
 
 /* Line 1464 of yacc.c  */
-#line 3372 "grammar.y"
+#line 3373 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
     break;
 
   case 1170:
 
 /* Line 1464 of yacc.c  */
-#line 3373 "grammar.y"
+#line 3374 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1171:
 
 /* Line 1464 of yacc.c  */
-#line 3374 "grammar.y"
+#line 3375 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 1172:
 
 /* Line 1464 of yacc.c  */
-#line 3375 "grammar.y"
+#line 3376 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 1173:
 
 /* Line 1464 of yacc.c  */
-#line 3379 "grammar.y"
+#line 3380 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
     break;
 
   case 1174:
 
 /* Line 1464 of yacc.c  */
-#line 3380 "grammar.y"
+#line 3381 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 1175:
 
 /* Line 1464 of yacc.c  */
-#line 3381 "grammar.y"
+#line 3382 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 1176:
 
 /* Line 1464 of yacc.c  */
-#line 3382 "grammar.y"
+#line 3383 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 1177:
 
 /* Line 1464 of yacc.c  */
-#line 3386 "grammar.y"
+#line 3387 "grammar.y"
     { (yyval.context) = PushContext(); ;}
     break;
 
   case 1178:
 
 /* Line 1464 of yacc.c  */
-#line 3390 "grammar.y"
+#line 3391 "grammar.y"
     { (yyval.stmt) = (yyvsp[(1) - (2)].stmt); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1179:
 
 /* Line 1464 of yacc.c  */
-#line 3395 "grammar.y"
+#line 3396 "grammar.y"
     { (yyval.stmt) = (yyvsp[(2) - (2)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (2)].context); PopContext((yyvsp[(1) - (2)].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
     break;
 
   case 1180:
 
 /* Line 1464 of yacc.c  */
-#line 3397 "grammar.y"
+#line 3398 "grammar.y"
     { (yyval.stmt) = MkCompoundStmt(null, null); (yyval.stmt).compound.context = (yyvsp[(1) - (1)].context); PopContext((yyvsp[(1) - (1)].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
     break;
 
   case 1181:
 
 /* Line 1464 of yacc.c  */
-#line 3400 "grammar.y"
+#line 3401 "grammar.y"
     { (yyval.stmt) = (yyvsp[(2) - (2)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (2)].context); PopContext((yyvsp[(1) - (2)].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
     break;
 
   case 1182:
 
 /* Line 1464 of yacc.c  */
-#line 3405 "grammar.y"
+#line 3406 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1183:
 
 /* Line 1464 of yacc.c  */
-#line 3406 "grammar.y"
+#line 3407 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1184:
 
 /* Line 1464 of yacc.c  */
-#line 3407 "grammar.y"
+#line 3408 "grammar.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1185:
 
 /* Line 1464 of yacc.c  */
-#line 3411 "grammar.y"
+#line 3412 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1186:
 
 /* Line 1464 of yacc.c  */
-#line 3412 "grammar.y"
+#line 3413 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1187:
 
 /* Line 1464 of yacc.c  */
-#line 3413 "grammar.y"
+#line 3414 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1188:
 
 /* Line 1464 of yacc.c  */
-#line 3414 "grammar.y"
+#line 3415 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1189:
 
 /* Line 1464 of yacc.c  */
-#line 3415 "grammar.y"
+#line 3416 "grammar.y"
     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1190:
 
 /* Line 1464 of yacc.c  */
-#line 3416 "grammar.y"
+#line 3417 "grammar.y"
     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1191:
 
 /* Line 1464 of yacc.c  */
-#line 3420 "grammar.y"
+#line 3421 "grammar.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (3)].list), null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1193:
 
 /* Line 1464 of yacc.c  */
-#line 3425 "grammar.y"
+#line 3426 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1194:
 
 /* Line 1464 of yacc.c  */
-#line 3426 "grammar.y"
+#line 3427 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (4)].list), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1195:
 
 /* Line 1464 of yacc.c  */
-#line 3427 "grammar.y"
+#line 3428 "grammar.y"
     { yyerror(); (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1196:
 
 /* Line 1464 of yacc.c  */
-#line 3429 "grammar.y"
+#line 3430 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1197:
 
 /* Line 1464 of yacc.c  */
-#line 3430 "grammar.y"
+#line 3431 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (6)].stmt), (yyvsp[(5) - (6)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1198:
 
 /* Line 1464 of yacc.c  */
-#line 3432 "grammar.y"
+#line 3433 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1199:
 
 /* Line 1464 of yacc.c  */
-#line 3433 "grammar.y"
+#line 3434 "grammar.y"
     { yyerror(); (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1200:
 
 /* Line 1464 of yacc.c  */
-#line 3434 "grammar.y"
+#line 3435 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1201:
 
 /* Line 1464 of yacc.c  */
-#line 3435 "grammar.y"
+#line 3436 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), (yyvsp[(5) - (6)].list), (yyvsp[(6) - (6)].stmt) ); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1202:
 
 /* Line 1464 of yacc.c  */
-#line 3436 "grammar.y"
+#line 3437 "grammar.y"
     { yyerror(); (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1203:
 
 /* Line 1464 of yacc.c  */
-#line 3438 "grammar.y"
+#line 3439 "grammar.y"
     { (yyval.stmt) = MkForEachStmt((yyvsp[(3) - (7)].id), (yyvsp[(5) - (7)].list), null, (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1204:
 
 /* Line 1464 of yacc.c  */
-#line 3439 "grammar.y"
+#line 3440 "grammar.y"
     { (yyval.stmt) = MkForEachStmt((yyvsp[(3) - (9)].id), (yyvsp[(5) - (9)].list), (yyvsp[(7) - (9)].list), (yyvsp[(9) - (9)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1205:
 
 /* Line 1464 of yacc.c  */
-#line 3443 "grammar.y"
+#line 3444 "grammar.y"
     { (yyval.stmt) = MkForStmt(null, null, null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1206:
 
 /* Line 1464 of yacc.c  */
-#line 3444 "grammar.y"
+#line 3445 "grammar.y"
     { (yyval.stmt) = MkForStmt(MkExpressionStmt((yyvsp[(3) - (4)].list)), null, null, null); (yyval.stmt).forStmt.init.loc = (yylsp[(3) - (4)]); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1207:
 
 /* Line 1464 of yacc.c  */
-#line 3445 "grammar.y"
+#line 3446 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (4)].stmt), null, null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1208:
 
 /* Line 1464 of yacc.c  */
-#line 3446 "grammar.y"
+#line 3447 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), MkExpressionStmt((yyvsp[(4) - (5)].list)), null, null); (yyval.stmt).loc = (yyloc); (yyval.stmt).forStmt.check.loc = (yylsp[(4) - (5)]); ;}
     break;
 
   case 1209:
 
 /* Line 1464 of yacc.c  */
-#line 3450 "grammar.y"
+#line 3451 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), (yyvsp[(4) - (5)].stmt), (yyvsp[(5) - (5)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1210:
 
 /* Line 1464 of yacc.c  */
-#line 3451 "grammar.y"
+#line 3452 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1211:
 
 /* Line 1464 of yacc.c  */
-#line 3452 "grammar.y"
+#line 3453 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1212:
 
 /* Line 1464 of yacc.c  */
-#line 3453 "grammar.y"
+#line 3454 "grammar.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), (yyvsp[(5) - (6)].list), (yyvsp[(6) - (6)].stmt) ); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1213:
 
 /* Line 1464 of yacc.c  */
-#line 3455 "grammar.y"
+#line 3456 "grammar.y"
     { yyerror(); (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (6)].stmt), (yyvsp[(5) - (6)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1214:
 
 /* Line 1464 of yacc.c  */
-#line 3456 "grammar.y"
+#line 3457 "grammar.y"
     { yyerror(); (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (5)].stmt), (yyvsp[(5) - (5)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1215:
 
 /* Line 1464 of yacc.c  */
-#line 3457 "grammar.y"
+#line 3458 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (5)].stmt), (yyvsp[(5) - (5)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1216:
 
 /* Line 1464 of yacc.c  */
-#line 3458 "grammar.y"
+#line 3459 "grammar.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (4)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1217:
 
 /* Line 1464 of yacc.c  */
-#line 3459 "grammar.y"
+#line 3460 "grammar.y"
     { yyerror(); (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (3)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1218:
 
 /* Line 1464 of yacc.c  */
-#line 3460 "grammar.y"
+#line 3461 "grammar.y"
     { yyerror(); (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (2)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1219:
 
 /* Line 1464 of yacc.c  */
-#line 3461 "grammar.y"
+#line 3462 "grammar.y"
     { yyerror(); (yyval.stmt) = MkDoWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1220:
 
 /* Line 1464 of yacc.c  */
-#line 3464 "grammar.y"
+#line 3465 "grammar.y"
     { (yyval.stmt) = MkWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1221:
 
 /* Line 1464 of yacc.c  */
-#line 3468 "grammar.y"
+#line 3469 "grammar.y"
     { (yyval.stmt) = MkWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1222:
 
 /* Line 1464 of yacc.c  */
-#line 3469 "grammar.y"
+#line 3470 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (3)].list), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1223:
 
 /* Line 1464 of yacc.c  */
-#line 3473 "grammar.y"
+#line 3474 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1224:
 
 /* Line 1464 of yacc.c  */
-#line 3474 "grammar.y"
+#line 3475 "grammar.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (4)].list), (yyvsp[(4) - (4)].stmt) ); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1225:
 
 /* Line 1464 of yacc.c  */
-#line 3478 "grammar.y"
+#line 3479 "grammar.y"
     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1226:
 
 /* Line 1464 of yacc.c  */
-#line 3479 "grammar.y"
+#line 3480 "grammar.y"
     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1227:
 
 /* Line 1464 of yacc.c  */
-#line 3480 "grammar.y"
+#line 3481 "grammar.y"
     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1228:
 
 /* Line 1464 of yacc.c  */
-#line 3481 "grammar.y"
+#line 3482 "grammar.y"
     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
     break;
 
   case 1229:
 
 /* Line 1464 of yacc.c  */
-#line 3482 "grammar.y"
+#line 3483 "grammar.y"
     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1230:
 
 /* Line 1464 of yacc.c  */
-#line 3483 "grammar.y"
+#line 3484 "grammar.y"
     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1231:
 
 /* Line 1464 of yacc.c  */
-#line 3484 "grammar.y"
+#line 3485 "grammar.y"
     { (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[(2) - (3)].exp))); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1232:
 
 /* Line 1464 of yacc.c  */
-#line 3485 "grammar.y"
+#line 3486 "grammar.y"
     { (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[(2) - (3)].exp))); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1233:
 
 /* Line 1464 of yacc.c  */
-#line 3489 "grammar.y"
+#line 3490 "grammar.y"
     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1234:
 
 /* Line 1464 of yacc.c  */
-#line 3490 "grammar.y"
+#line 3491 "grammar.y"
     { (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[(2) - (2)].exp))); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1235:
 
 /* Line 1464 of yacc.c  */
-#line 3491 "grammar.y"
+#line 3492 "grammar.y"
     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc.start = exp.loc.end = (yylsp[(1) - (1)]).end; ;}
     break;
 
   case 1236:
 
 /* Line 1464 of yacc.c  */
-#line 3492 "grammar.y"
+#line 3493 "grammar.y"
     { (yyval.stmt) = MkGotoStmt(null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 1237:
 
 /* Line 1464 of yacc.c  */
-#line 3498 "grammar.y"
+#line 3499 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1238:
 
 /* Line 1464 of yacc.c  */
-#line 3500 "grammar.y"
+#line 3501 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1239:
 
 /* Line 1464 of yacc.c  */
-#line 3501 "grammar.y"
+#line 3502 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1240:
 
 /* Line 1464 of yacc.c  */
-#line 3503 "grammar.y"
+#line 3504 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1241:
 
 /* Line 1464 of yacc.c  */
-#line 3505 "grammar.y"
+#line 3506 "grammar.y"
     { (yyval.function) = MkFunction(null, (yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); ;}
     break;
 
   case 1242:
 
 /* Line 1464 of yacc.c  */
-#line 3506 "grammar.y"
+#line 3507 "grammar.y"
     { (yyval.function) = MkFunction(null, (yyvsp[(1) - (2)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(2) - (2)].stmt)); (yyval.function).loc = (yyloc);;}
     break;
 
   case 1243:
 
 /* Line 1464 of yacc.c  */
-#line 3509 "grammar.y"
+#line 3510 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(4) - (4)].stmt).loc.end; ;}
     break;
 
   case 1244:
 
 /* Line 1464 of yacc.c  */
-#line 3510 "grammar.y"
+#line 3511 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(3) - (3)].stmt).loc.end; ;}
     break;
 
   case 1245:
 
 /* Line 1464 of yacc.c  */
-#line 3511 "grammar.y"
+#line 3512 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(4) - (4)].stmt).loc.end; ;}
     break;
 
   case 1246:
 
 /* Line 1464 of yacc.c  */
-#line 3512 "grammar.y"
+#line 3513 "grammar.y"
     { (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(3) - (3)].stmt).loc.end; ;}
     break;
 
   case 1247:
 
 /* Line 1464 of yacc.c  */
-#line 3513 "grammar.y"
+#line 3514 "grammar.y"
     { (yyval.function) = MkFunction(null, (yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(3) - (3)].stmt).loc.end; ;}
     break;
 
   case 1248:
 
 /* Line 1464 of yacc.c  */
-#line 3514 "grammar.y"
+#line 3515 "grammar.y"
     { (yyval.function) = MkFunction(null, (yyvsp[(1) - (2)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(2) - (2)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(2) - (2)].stmt).loc.end; ;}
     break;
 
   case 1249:
 
 /* Line 1464 of yacc.c  */
-#line 3518 "grammar.y"
+#line 3519 "grammar.y"
     { (yyval.string) = CopyString(yytext); ;}
     break;
 
   case 1250:
 
 /* Line 1464 of yacc.c  */
-#line 3520 "grammar.y"
+#line 3521 "grammar.y"
     {
       int len1 = strlen((yyvsp[(1) - (2)].string));
       int len2 = strlen(yytext);
@@ -22076,49 +22077,49 @@ yyreduce:
   case 1251:
 
 /* Line 1464 of yacc.c  */
-#line 3531 "grammar.y"
+#line 3532 "grammar.y"
     { (yyval.external) = MkExternalFunction((yyvsp[(1) - (1)].function)); (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].function).declMode = declMode; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1252:
 
 /* Line 1464 of yacc.c  */
-#line 3533 "grammar.y"
+#line 3534 "grammar.y"
     { (yyval.external) = MkExternalClass((yyvsp[(1) - (1)]._class));  (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1253:
 
 /* Line 1464 of yacc.c  */
-#line 3536 "grammar.y"
+#line 3537 "grammar.y"
     { (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class));  (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; FreeList((yyvsp[(1) - (2)].list), FreeSpecifier); ;}
     break;
 
   case 1254:
 
 /* Line 1464 of yacc.c  */
-#line 3539 "grammar.y"
+#line 3540 "grammar.y"
     { (yyval.external) = MkExternalDeclaration((yyvsp[(1) - (1)].declaration));  (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].declaration).declMode = declMode; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1255:
 
 /* Line 1464 of yacc.c  */
-#line 3540 "grammar.y"
+#line 3541 "grammar.y"
     { (yyval.external) = MkExternalImport((yyvsp[(2) - (2)].string), normalImport, (declMode != defaultAccess) ? declMode : privateAccess);  (yyval.external).loc = (yyloc); ;}
     break;
 
   case 1256:
 
 /* Line 1464 of yacc.c  */
-#line 3541 "grammar.y"
+#line 3542 "grammar.y"
     { (yyval.external) = MkExternalImport((yyvsp[(3) - (3)].string), staticImport, (declMode != defaultAccess) ? declMode : privateAccess);  (yyval.external).loc = (yyloc); ;}
     break;
 
   case 1257:
 
 /* Line 1464 of yacc.c  */
-#line 3543 "grammar.y"
+#line 3544 "grammar.y"
     {
       bool isRemote = !strcmp((yyvsp[(2) - (3)].id).string, "remote");
       (yyval.external) = MkExternalImport((yyvsp[(3) - (3)].string), isRemote ? remoteImport : normalImport, (declMode != defaultAccess) ? declMode : privateAccess);
@@ -22132,49 +22133,49 @@ yyreduce:
   case 1258:
 
 /* Line 1464 of yacc.c  */
-#line 3552 "grammar.y"
+#line 3553 "grammar.y"
     { (yyval.external) = null; ;}
     break;
 
   case 1259:
 
 /* Line 1464 of yacc.c  */
-#line 3554 "grammar.y"
+#line 3555 "grammar.y"
     { (yyval.external) = MkExternalFunction((yyvsp[(2) - (2)].function)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].function).declMode = (yyvsp[(1) - (2)].declMode); structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1260:
 
 /* Line 1464 of yacc.c  */
-#line 3556 "grammar.y"
+#line 3557 "grammar.y"
     { (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class));  (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)]._class).declMode = ((yyvsp[(1) - (2)].declMode) != defaultAccess) ? (yyvsp[(1) - (2)].declMode) : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1261:
 
 /* Line 1464 of yacc.c  */
-#line 3557 "grammar.y"
+#line 3558 "grammar.y"
     { (yyval.external) = MkExternalDeclaration((yyvsp[(2) - (2)].declaration)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].declaration).declMode = (yyvsp[(1) - (2)].declMode); structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1262:
 
 /* Line 1464 of yacc.c  */
-#line 3558 "grammar.y"
+#line 3559 "grammar.y"
     { (yyval.external) = MkExternalImport((yyvsp[(3) - (3)].string), normalImport, ((yyvsp[(1) - (3)].declMode) != defaultAccess) ? (yyvsp[(1) - (3)].declMode) : privateAccess);  (yyval.external).loc = (yyloc); structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1263:
 
 /* Line 1464 of yacc.c  */
-#line 3559 "grammar.y"
+#line 3560 "grammar.y"
     { (yyval.external) = MkExternalImport((yyvsp[(4) - (4)].string), staticImport, ((yyvsp[(1) - (4)].declMode) != defaultAccess) ? (yyvsp[(1) - (4)].declMode) : privateAccess);  (yyval.external).loc = (yyloc); structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1264:
 
 /* Line 1464 of yacc.c  */
-#line 3561 "grammar.y"
+#line 3562 "grammar.y"
     {
       bool isRemote = !strcmp((yyvsp[(3) - (4)].id).string, "remote");
       (yyval.external) = MkExternalImport((yyvsp[(4) - (4)].string), isRemote ? remoteImport : normalImport, ((yyvsp[(1) - (4)].declMode) != defaultAccess) ? (yyvsp[(1) - (4)].declMode) : privateAccess);
@@ -22189,56 +22190,56 @@ yyreduce:
   case 1265:
 
 /* Line 1464 of yacc.c  */
-#line 3570 "grammar.y"
+#line 3571 "grammar.y"
     { defaultDeclMode = (yyvsp[(1) - (2)].declMode); (yyval.external) = null; ;}
     break;
 
   case 1266:
 
 /* Line 1464 of yacc.c  */
-#line 3571 "grammar.y"
+#line 3572 "grammar.y"
     { defaultDeclMode = staticAccess; (yyval.external) = null; ;}
     break;
 
   case 1267:
 
 /* Line 1464 of yacc.c  */
-#line 3572 "grammar.y"
+#line 3573 "grammar.y"
     { (yyval.external) = MkExternalNameSpace((yyvsp[(2) - (2)].id)); (yyval.external).loc = (yyloc); ;}
     break;
 
   case 1268:
 
 /* Line 1464 of yacc.c  */
-#line 3573 "grammar.y"
+#line 3574 "grammar.y"
     { (yyval.external) = MkExternalNameSpace(MkIdentifier((yyvsp[(2) - (2)].specifier).name)); FreeSpecifier((yyvsp[(2) - (2)].specifier)); (yyval.external).loc = (yyloc); ;}
     break;
 
   case 1269:
 
 /* Line 1464 of yacc.c  */
-#line 3574 "grammar.y"
+#line 3575 "grammar.y"
     { (yyval.external) = MkExternalDBTable((yyvsp[(1) - (1)].dbtableDef)); (yyval.external).loc = (yyloc);  (yyvsp[(1) - (1)].dbtableDef).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1270:
 
 /* Line 1464 of yacc.c  */
-#line 3575 "grammar.y"
+#line 3576 "grammar.y"
     { (yyval.external) = MkExternalDBTable((yyvsp[(2) - (2)].dbtableDef)); (yyval.external).loc = (yyloc);  (yyvsp[(2) - (2)].dbtableDef).declMode = ((yyvsp[(1) - (2)].declMode) != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1271:
 
 /* Line 1464 of yacc.c  */
-#line 3579 "grammar.y"
+#line 3580 "grammar.y"
     { yyerror(); (yyval.external) = MkExternalClass((yyvsp[(1) - (1)]._class));  (yyval.external).loc = (yyvsp[(1) - (1)]._class).loc; (yyvsp[(1) - (1)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1272:
 
 /* Line 1464 of yacc.c  */
-#line 3581 "grammar.y"
+#line 3582 "grammar.y"
     {
       yyerror();
       FreeList((yyvsp[(1) - (2)].list), FreeSpecifier);
@@ -22252,231 +22253,231 @@ yyreduce:
   case 1273:
 
 /* Line 1464 of yacc.c  */
-#line 3589 "grammar.y"
+#line 3590 "grammar.y"
     { yyerror(); (yyval.external) = MkExternalFunction((yyvsp[(1) - (1)].function)); (yyval.external).loc = (yyvsp[(1) - (1)].function).loc;  (yyvsp[(1) - (1)].function).declMode = declMode; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1274:
 
 /* Line 1464 of yacc.c  */
-#line 3591 "grammar.y"
+#line 3592 "grammar.y"
     { yyerror(); (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class));  (yyval.external).loc = (yyvsp[(2) - (2)]._class).loc; (yyvsp[(2) - (2)]._class).declMode = ((yyvsp[(1) - (2)].declMode) != defaultAccess) ? (yyvsp[(1) - (2)].declMode) : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1275:
 
 /* Line 1464 of yacc.c  */
-#line 3592 "grammar.y"
+#line 3593 "grammar.y"
     { yyerror(); (yyval.external) = MkExternalFunction((yyvsp[(2) - (2)].function)); (yyval.external).loc = (yyvsp[(2) - (2)].function).loc; (yyvsp[(2) - (2)].function).declMode = (yyvsp[(1) - (2)].declMode); structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1276:
 
 /* Line 1464 of yacc.c  */
-#line 3595 "grammar.y"
+#line 3596 "grammar.y"
     { yyerror(); (yyval.external) = MkExternalDeclaration((yyvsp[(1) - (1)].declaration));  (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].declaration).declMode = declMode; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1277:
 
 /* Line 1464 of yacc.c  */
-#line 3596 "grammar.y"
+#line 3597 "grammar.y"
     { yyerror(); (yyval.external) = MkExternalDeclaration((yyvsp[(2) - (2)].declaration)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].declaration).declMode = (yyvsp[(1) - (2)].declMode); structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1278:
 
 /* Line 1464 of yacc.c  */
-#line 3600 "grammar.y"
+#line 3601 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].external)); ast = (yyval.list); ;}
     break;
 
   case 1279:
 
 /* Line 1464 of yacc.c  */
-#line 3601 "grammar.y"
+#line 3602 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].external)); ;}
     break;
 
   case 1280:
 
 /* Line 1464 of yacc.c  */
-#line 3602 "grammar.y"
+#line 3603 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].external)); ;}
     break;
 
   case 1283:
 
 /* Line 1464 of yacc.c  */
-#line 3608 "grammar.y"
+#line 3609 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].external)); ast = (yyval.list); ;}
     break;
 
   case 1284:
 
 /* Line 1464 of yacc.c  */
-#line 3609 "grammar.y"
+#line 3610 "grammar.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].external)); ;}
     break;
 
   case 1285:
 
 /* Line 1464 of yacc.c  */
-#line 3611 "grammar.y"
+#line 3612 "grammar.y"
     { External _class = MkExternalClass((yyvsp[(2) - (2)]._class)); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), _class); _class.loc = (yylsp[(2) - (2)]);  (yyvsp[(2) - (2)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1286:
 
 /* Line 1464 of yacc.c  */
-#line 3613 "grammar.y"
+#line 3614 "grammar.y"
     { External _class = MkExternalClass((yyvsp[(3) - (3)]._class)); (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), _class); _class.loc = (yylsp[(3) - (3)]);  (yyvsp[(3) - (3)]._class).declMode = ((yyvsp[(2) - (3)].declMode) != defaultAccess) ? (yyvsp[(2) - (3)].declMode) : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
     break;
 
   case 1289:
 
 /* Line 1464 of yacc.c  */
-#line 3619 "grammar.y"
+#line 3620 "grammar.y"
     { ast = MkList(); ;}
     break;
 
   case 1290:
 
 /* Line 1464 of yacc.c  */
-#line 3623 "grammar.y"
+#line 3624 "grammar.y"
     { Symbol symbol = DeclClassAddNameSpace((yyvsp[(3) - (6)].id)._class, (yyvsp[(3) - (6)].id).string); FreeIdentifier((yyvsp[(3) - (6)].id)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (6)].string), symbol, (yyvsp[(5) - (6)].list)); ;}
     break;
 
   case 1291:
 
 /* Line 1464 of yacc.c  */
-#line 3624 "grammar.y"
+#line 3625 "grammar.y"
     { Symbol symbol = DeclClass((yyvsp[(3) - (6)].specifier).nsSpec, (yyvsp[(3) - (6)].specifier).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (6)].string), symbol, (yyvsp[(5) - (6)].list)); ;}
     break;
 
   case 1292:
 
 /* Line 1464 of yacc.c  */
-#line 3625 "grammar.y"
+#line 3626 "grammar.y"
     { (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (5)].string), null, (yyvsp[(4) - (5)].list)); ;}
     break;
 
   case 1293:
 
 /* Line 1464 of yacc.c  */
-#line 3629 "grammar.y"
+#line 3630 "grammar.y"
     { (yyval.dbtableEntry) = MkDBFieldEntry(MkTypeName((yyvsp[(1) - (4)].list), null), (yyvsp[(2) - (4)].id), (yyvsp[(3) - (4)].string)); ;}
     break;
 
   case 1294:
 
 /* Line 1464 of yacc.c  */
-#line 3633 "grammar.y"
+#line 3634 "grammar.y"
     { (yyval.dbindexItem) = MkDBIndexItem((yyvsp[(1) - (1)].id), ascending); ;}
     break;
 
   case 1295:
 
 /* Line 1464 of yacc.c  */
-#line 3634 "grammar.y"
+#line 3635 "grammar.y"
     { (yyval.dbindexItem) = MkDBIndexItem((yyvsp[(2) - (2)].id), descending); ;}
     break;
 
   case 1296:
 
 /* Line 1464 of yacc.c  */
-#line 3635 "grammar.y"
+#line 3636 "grammar.y"
     { (yyval.dbindexItem) = MkDBIndexItem((yyvsp[(2) - (2)].id), ascending); ;}
     break;
 
   case 1297:
 
 /* Line 1464 of yacc.c  */
-#line 3639 "grammar.y"
+#line 3640 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].dbindexItem)); ;}
     break;
 
   case 1298:
 
 /* Line 1464 of yacc.c  */
-#line 3640 "grammar.y"
+#line 3641 "grammar.y"
     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].dbindexItem)); ;}
     break;
 
   case 1299:
 
 /* Line 1464 of yacc.c  */
-#line 3644 "grammar.y"
+#line 3645 "grammar.y"
     { (yyval.dbtableEntry) = MkDBIndexEntry((yyvsp[(2) - (3)].list), null); ;}
     break;
 
   case 1300:
 
 /* Line 1464 of yacc.c  */
-#line 3645 "grammar.y"
+#line 3646 "grammar.y"
     { (yyval.dbtableEntry) = MkDBIndexEntry((yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].id)); ;}
     break;
 
   case 1301:
 
 /* Line 1464 of yacc.c  */
-#line 3649 "grammar.y"
+#line 3650 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].dbtableEntry)); ;}
     break;
 
   case 1302:
 
 /* Line 1464 of yacc.c  */
-#line 3650 "grammar.y"
+#line 3651 "grammar.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].dbtableEntry)); ;}
     break;
 
   case 1303:
 
 /* Line 1464 of yacc.c  */
-#line 3651 "grammar.y"
+#line 3652 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].dbtableEntry)); ;}
     break;
 
   case 1304:
 
 /* Line 1464 of yacc.c  */
-#line 3652 "grammar.y"
+#line 3653 "grammar.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].dbtableEntry)); ;}
     break;
 
   case 1305:
 
 /* Line 1464 of yacc.c  */
-#line 3656 "grammar.y"
+#line 3657 "grammar.y"
     { (yyval.exp) = MkExpDBOpen((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].exp)); ;}
     break;
 
   case 1306:
 
 /* Line 1464 of yacc.c  */
-#line 3660 "grammar.y"
+#line 3661 "grammar.y"
     { (yyval.exp) = MkExpDBField((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].id)); ;}
     break;
 
   case 1307:
 
 /* Line 1464 of yacc.c  */
-#line 3664 "grammar.y"
+#line 3665 "grammar.y"
     { (yyval.exp) = MkExpDBIndex((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].id)); ;}
     break;
 
   case 1308:
 
 /* Line 1464 of yacc.c  */
-#line 3668 "grammar.y"
+#line 3669 "grammar.y"
     { (yyval.exp) = MkExpDBTable((yyvsp[(3) - (4)].string)); ;}
     break;
 
 
 
 /* Line 1464 of yacc.c  */
-#line 22480 "grammar.ec"
+#line 22481 "grammar.ec"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -22695,6 +22696,6 @@ yyreturn:
 
 
 /* Line 1684 of yacc.c  */
-#line 3671 "grammar.y"
+#line 3672 "grammar.y"
 
 
index b3229c9..7ce99b9 100644 (file)
@@ -164,7 +164,7 @@ typedef union YYSTYPE
 {
 
 /* Line 1685 of yacc.c  */
-#line 38 "grammar.y"
+#line 39 "grammar.y"
 
    SpecifierType specifierType;
    int i;
index a1003a2..2e31562 100644 (file)
@@ -1,6 +1,7 @@
 %{
 import "ecdefs"
 
+#define YYSIZE_T size_t
 #define YYLTYPE Location
 #include "grammar.h"
 
index bbc5120..9b9053a 100644 (file)
@@ -1,5 +1,7 @@
 import "ecdefs"
 
+#define NUM_ECC_ADDED_LINES   47
+
 #define YYLTYPE Location
 
 #include "grammar.h"
@@ -1531,7 +1533,7 @@ public void OutputTree(OldList ast, File f)
 {
    External external;
 
-   outputLine = 38;
+   outputLine = NUM_ECC_ADDED_LINES;
 
    for(external = ast.first; external; external = external.next)
    {
index e67c24d..b411fae 100644 (file)
@@ -285,10 +285,7 @@ static void InstDeclPassSpecifier(Specifier spec, bool byRefTypedObject)
                !strcmp(spec.extDecl.s, "__stdcall") || !strcmp(spec.extDecl.s, "__stdcall__"))
             {
                delete spec.extDecl.s;
-               if(targetPlatform == win32)
-                  spec.extDecl.s = CopyString("__attribute__((__stdcall__))");
-               else
-                  spec.extDecl.s = CopyString("");
+               spec.extDecl.s = CopyString("stdcall");
             }
          }
          break;
@@ -370,10 +367,7 @@ static void InstDeclPassDeclarator(Declarator decl)
                !strcmp(decl.extended.extended.s, "__stdcall") || !strcmp(decl.extended.extended.s, "__stdcall__")))
             {
                delete decl.extended.extended.s;
-               if(targetPlatform == win32)
-                  decl.extended.extended.s = CopyString("__attribute__((__stdcall__))");
-               else
-                  decl.extended.extended.s = CopyString("");
+               decl.extended.extended.s = CopyString("stdcall");
             }
          }
          if(decl.declarator)
index 0611c85..6d5bee8 100644 (file)
@@ -72,6 +72,7 @@
 
 import "ecdefs"
 
+#define YYSIZE_T size_t
 #define YYLTYPE Location
 #include "grammar.h"
 
@@ -105,7 +106,7 @@ default:
 
 
 /* Line 189 of yacc.c  */
-#line 109 "type.ec"
+#line 110 "type.ec"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -258,7 +259,7 @@ typedef union YYSTYPE
 {
 
 /* Line 214 of yacc.c  */
-#line 39 "type.y"
+#line 40 "type.y"
 
    int i;
    SpecifierType specifierType;
@@ -297,7 +298,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 301 "type.ec"
+#line 302 "type.ec"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -322,7 +323,7 @@ typedef struct YYLTYPE
 
 
 /* Line 264 of yacc.c  */
-#line 326 "type.ec"
+#line 327 "type.ec"
 
 #ifdef short
 # undef short
@@ -835,57 +836,57 @@ static const yytype_int16 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   229,   229,   247,   271,   311,   312,   339,   343,   344,
-     345,   362,   364,   369,   374,   379,   381,   386,   391,   392,
-     397,   399,   401,   403,   404,   406,   407,   408,   411,   412,
-     413,   414,   415,   416,   417,   418,   419,   423,   424,   425,
-     426,   427,   428,   441,   442,   443,   447,   476,   477,   478,
-     479,   483,   484,   485,   487,   488,   490,   491,   495,   496,
-     505,   506,   507,   508,   509,   510,   511,   515,   516,   520,
-     521,   522,   523,   527,   528,   529,   533,   534,   535,   539,
-     547,   548,   549,   550,   551,   555,   556,   557,   561,   562,
-     566,   567,   571,   572,   576,   577,   581,   582,   586,   587,
-     591,   592,   593,   597,   598,   599,   600,   601,   602,   603,
-     604,   605,   606,   607,   611,   612,   616,   620,   621,   622,
-     623,   627,   628,   629,   630,   631,   632,   633,   634,   638,
-     639,   640,   641,   642,   643,   644,   645,   646,   647,   651,
-     652,   653,   654,   655,   656,   657,   658,   659,   660,   664,
-     665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
-     675,   679,   680,   684,   685,   686,   687,   688,   689,   690,
-     691,   692,   700,   709,   710,   711,   712,   713,   714,   715,
-     716,   717,   718,   719,   720,   721,   729,   738,   739,   743,
-     744,   748,   749,   750,   751,   752,   753,   757,   758,   759,
-     763,   764,   765,   770,   771,   772,   773,   774,   778,   779,
-     783,   784,   785,   789,   790,   794,   798,   799,   800,   805,
-     806,   807,   808,   809,   810,   811,   812,   813,   814,   815,
-     816,   817,   818,   819,   820,   821,   822,   823,   824,   825,
-     826,   827,   828,   832,   833,   834,   835,   836,   837,   838,
-     839,   840,   841,   842,   843,   844,   845,   846,   847,   848,
-     849,   850,   851,   852,   853,   858,   859,   860,   861,   862,
-     865,   866,   867,   868,   869,   874,   875,   878,   880,   885,
-     886,   891,   892,   903,   907,   909,   910,   912,   913,   937,
-     952,   953,   957,   958,   962,   963,   967,   971,   972,   976,
-     978,   980,   982,   984,   987,   989,   991,   993,   995,   998,
-    1000,  1002,  1004,  1006,  1009,  1011,  1013,  1015,  1017,  1022,
-    1023,  1024,  1025,  1026,  1027,  1028,  1029,  1033,  1035,  1040,
-    1042,  1044,  1046,  1048,  1053,  1054,  1058,  1060,  1061,  1062,
-    1063,  1067,  1069,  1074,  1076,  1082,  1084,  1086,  1088,  1090,
-    1092,  1094,  1096,  1098,  1100,  1102,  1107,  1109,  1111,  1113,
-    1115,  1120,  1121,  1122,  1123,  1124,  1125,  1129,  1130,  1131,
-    1132,  1133,  1134,  1180,  1181,  1183,  1185,  1190,  1192,  1194,
-    1196,  1198,  1203,  1204,  1207,  1209,  1211,  1217,  1221,  1223,
-    1225,  1230,  1231,  1232,  1234,  1239,  1240,  1241,  1242,  1243,
-    1247,  1248,  1252,  1253,  1254,  1255,  1259,  1260,  1264,  1265,
-    1269,  1270,  1271,  1272,  1273,  1284,  1309,  1310,  1314,  1315,
-    1319,  1320,  1324,  1326,  1328,  1344,  1346,  1368,  1370,  1375,
-    1376,  1377,  1378,  1379,  1380,  1384,  1386,  1388,  1393,  1394,
-    1398,  1399,  1402,  1406,  1407,  1408,  1412,  1416,  1424,  1429,
-    1430,  1434,  1435,  1436,  1440,  1441,  1442,  1443,  1445,  1446,
-    1447,  1451,  1452,  1453,  1454,  1455,  1459,  1463,  1465,  1470,
-    1472,  1497,  1499,  1501,  1503,  1508,  1510,  1514,  1516,  1518,
-    1520,  1522,  1528,  1530,  1535,  1540,  1541,  1545,  1547,  1552,
-    1557,  1558,  1559,  1560,  1561,  1562,  1566,  1567,  1568,  1572,
-    1573
+       0,   230,   230,   248,   272,   312,   313,   340,   344,   345,
+     346,   363,   365,   370,   375,   380,   382,   387,   392,   393,
+     398,   400,   402,   404,   405,   407,   408,   409,   412,   413,
+     414,   415,   416,   417,   418,   419,   420,   424,   425,   426,
+     427,   428,   429,   442,   443,   444,   448,   477,   478,   479,
+     480,   484,   485,   486,   488,   489,   491,   492,   496,   497,
+     506,   507,   508,   509,   510,   511,   512,   516,   517,   521,
+     522,   523,   524,   528,   529,   530,   534,   535,   536,   540,
+     548,   549,   550,   551,   552,   556,   557,   558,   562,   563,
+     567,   568,   572,   573,   577,   578,   582,   583,   587,   588,
+     592,   593,   594,   598,   599,   600,   601,   602,   603,   604,
+     605,   606,   607,   608,   612,   613,   617,   621,   622,   623,
+     624,   628,   629,   630,   631,   632,   633,   634,   635,   639,
+     640,   641,   642,   643,   644,   645,   646,   647,   648,   652,
+     653,   654,   655,   656,   657,   658,   659,   660,   661,   665,
+     666,   667,   668,   669,   670,   671,   672,   673,   674,   675,
+     676,   680,   681,   685,   686,   687,   688,   689,   690,   691,
+     692,   693,   701,   710,   711,   712,   713,   714,   715,   716,
+     717,   718,   719,   720,   721,   722,   730,   739,   740,   744,
+     745,   749,   750,   751,   752,   753,   754,   758,   759,   760,
+     764,   765,   766,   771,   772,   773,   774,   775,   779,   780,
+     784,   785,   786,   790,   791,   795,   799,   800,   801,   806,
+     807,   808,   809,   810,   811,   812,   813,   814,   815,   816,
+     817,   818,   819,   820,   821,   822,   823,   824,   825,   826,
+     827,   828,   829,   833,   834,   835,   836,   837,   838,   839,
+     840,   841,   842,   843,   844,   845,   846,   847,   848,   849,
+     850,   851,   852,   853,   854,   859,   860,   861,   862,   863,
+     866,   867,   868,   869,   870,   875,   876,   879,   881,   886,
+     887,   892,   893,   904,   908,   910,   911,   913,   914,   938,
+     953,   954,   958,   959,   963,   964,   968,   972,   973,   977,
+     979,   981,   983,   985,   988,   990,   992,   994,   996,   999,
+    1001,  1003,  1005,  1007,  1010,  1012,  1014,  1016,  1018,  1023,
+    1024,  1025,  1026,  1027,  1028,  1029,  1030,  1034,  1036,  1041,
+    1043,  1045,  1047,  1049,  1054,  1055,  1059,  1061,  1062,  1063,
+    1064,  1068,  1070,  1075,  1077,  1083,  1085,  1087,  1089,  1091,
+    1093,  1095,  1097,  1099,  1101,  1103,  1108,  1110,  1112,  1114,
+    1116,  1121,  1122,  1123,  1124,  1125,  1126,  1130,  1131,  1132,
+    1133,  1134,  1135,  1181,  1182,  1184,  1186,  1191,  1193,  1195,
+    1197,  1199,  1204,  1205,  1208,  1210,  1212,  1218,  1222,  1224,
+    1226,  1231,  1232,  1233,  1235,  1240,  1241,  1242,  1243,  1244,
+    1248,  1249,  1253,  1254,  1255,  1256,  1260,  1261,  1265,  1266,
+    1270,  1271,  1272,  1273,  1274,  1285,  1310,  1311,  1315,  1316,
+    1320,  1321,  1325,  1327,  1329,  1345,  1347,  1369,  1371,  1376,
+    1377,  1378,  1379,  1380,  1381,  1385,  1387,  1389,  1394,  1395,
+    1399,  1400,  1403,  1407,  1408,  1409,  1413,  1417,  1425,  1430,
+    1431,  1435,  1436,  1437,  1441,  1442,  1443,  1444,  1446,  1447,
+    1448,  1452,  1453,  1454,  1455,  1456,  1460,  1464,  1466,  1471,
+    1473,  1498,  1500,  1502,  1504,  1509,  1511,  1515,  1517,  1519,
+    1521,  1523,  1529,  1531,  1536,  1541,  1542,  1546,  1548,  1553,
+    1558,  1559,  1560,  1561,  1562,  1563,  1567,  1568,  1569,  1573,
+    1574
 };
 #endif
 
@@ -3792,956 +3793,956 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
       case 145: /* "guess_type" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3800 "type.ec"
+#line 3801 "type.ec"
        break;
       case 147: /* "type" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3809 "type.ec"
+#line 3810 "type.ec"
        break;
       case 148: /* "base_strict_type" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3818 "type.ec"
+#line 3819 "type.ec"
        break;
       case 149: /* "strict_type" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 3827 "type.ec"
+#line 3828 "type.ec"
        break;
       case 150: /* "class_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 195 "type.y"
+#line 196 "type.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 3836 "type.ec"
+#line 3837 "type.ec"
        break;
       case 151: /* "constructor_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 195 "type.y"
+#line 196 "type.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 3845 "type.ec"
+#line 3846 "type.ec"
        break;
       case 152: /* "destructor_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 195 "type.y"
+#line 196 "type.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 3854 "type.ec"
+#line 3855 "type.ec"
        break;
       case 153: /* "virtual_class_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 195 "type.y"
+#line 196 "type.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 3863 "type.ec"
+#line 3864 "type.ec"
        break;
       case 154: /* "identifier" */
 
 /* Line 1009 of yacc.c  */
-#line 166 "type.y"
+#line 167 "type.y"
        { FreeIdentifier((yyvaluep->id)); };
 
 /* Line 1009 of yacc.c  */
-#line 3872 "type.ec"
+#line 3873 "type.ec"
        break;
       case 155: /* "primary_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3881 "type.ec"
+#line 3882 "type.ec"
        break;
       case 157: /* "postfix_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3890 "type.ec"
+#line 3891 "type.ec"
        break;
       case 159: /* "argument_expression_list" */
 
 /* Line 1009 of yacc.c  */
-#line 203 "type.y"
+#line 204 "type.y"
        { FreeList((yyvaluep->list), FreeExpression); };
 
 /* Line 1009 of yacc.c  */
-#line 3899 "type.ec"
+#line 3900 "type.ec"
        break;
       case 161: /* "unary_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3908 "type.ec"
+#line 3909 "type.ec"
        break;
       case 163: /* "cast_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3917 "type.ec"
+#line 3918 "type.ec"
        break;
       case 164: /* "multiplicative_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3926 "type.ec"
+#line 3927 "type.ec"
        break;
       case 165: /* "additive_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3935 "type.ec"
+#line 3936 "type.ec"
        break;
       case 166: /* "shift_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3944 "type.ec"
+#line 3945 "type.ec"
        break;
       case 168: /* "relational_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3953 "type.ec"
+#line 3954 "type.ec"
        break;
       case 169: /* "equality_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3962 "type.ec"
+#line 3963 "type.ec"
        break;
       case 170: /* "and_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3971 "type.ec"
+#line 3972 "type.ec"
        break;
       case 171: /* "exclusive_or_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3980 "type.ec"
+#line 3981 "type.ec"
        break;
       case 172: /* "inclusive_or_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3989 "type.ec"
+#line 3990 "type.ec"
        break;
       case 173: /* "logical_and_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 3998 "type.ec"
+#line 3999 "type.ec"
        break;
       case 174: /* "logical_or_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 4007 "type.ec"
+#line 4008 "type.ec"
        break;
       case 175: /* "conditional_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 4016 "type.ec"
+#line 4017 "type.ec"
        break;
       case 176: /* "assignment_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 4025 "type.ec"
+#line 4026 "type.ec"
        break;
       case 178: /* "expression" */
 
 /* Line 1009 of yacc.c  */
-#line 203 "type.y"
+#line 204 "type.y"
        { FreeList((yyvaluep->list), FreeExpression); };
 
 /* Line 1009 of yacc.c  */
-#line 4034 "type.ec"
+#line 4035 "type.ec"
        break;
       case 179: /* "constant_expression" */
 
 /* Line 1009 of yacc.c  */
-#line 168 "type.y"
+#line 169 "type.y"
        { FreeExpression((yyvaluep->exp)); };
 
 /* Line 1009 of yacc.c  */
-#line 4043 "type.ec"
+#line 4044 "type.ec"
        break;
       case 180: /* "declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 189 "type.y"
+#line 190 "type.y"
        { FreeDeclaration((yyvaluep->declaration)); };
 
 /* Line 1009 of yacc.c  */
-#line 4052 "type.ec"
+#line 4053 "type.ec"
        break;
       case 181: /* "specifier_qualifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 205 "type.y"
+#line 206 "type.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 4061 "type.ec"
+#line 4062 "type.ec"
        break;
       case 182: /* "guess_specifier_qualifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 205 "type.y"
+#line 206 "type.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 4070 "type.ec"
+#line 4071 "type.ec"
        break;
       case 183: /* "declaration_specifiers" */
 
 /* Line 1009 of yacc.c  */
-#line 205 "type.y"
+#line 206 "type.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 4079 "type.ec"
+#line 4080 "type.ec"
        break;
       case 184: /* "guess_declaration_specifiers" */
 
 /* Line 1009 of yacc.c  */
-#line 205 "type.y"
+#line 206 "type.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 4088 "type.ec"
+#line 4089 "type.ec"
        break;
       case 188: /* "init_declarator_list" */
 
 /* Line 1009 of yacc.c  */
-#line 210 "type.y"
+#line 211 "type.y"
        { FreeList((yyvaluep->list), FreeInitDeclarator); };
 
 /* Line 1009 of yacc.c  */
-#line 4097 "type.ec"
+#line 4098 "type.ec"
        break;
       case 189: /* "init_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 184 "type.y"
+#line 185 "type.y"
        { FreeInitDeclarator((yyvaluep->initDeclarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4106 "type.ec"
+#line 4107 "type.ec"
        break;
       case 190: /* "storage_class_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 4115 "type.ec"
+#line 4116 "type.ec"
        break;
       case 191: /* "ext_decl" */
 
 /* Line 1009 of yacc.c  */
-#line 220 "type.y"
+#line 221 "type.y"
        { FreeExtDecl((yyvaluep->extDecl)); };
 
 /* Line 1009 of yacc.c  */
-#line 4124 "type.ec"
+#line 4125 "type.ec"
        break;
       case 193: /* "attribute_word" */
 
 /* Line 1009 of yacc.c  */
-#line 200 "type.y"
+#line 201 "type.y"
        { delete (yyvaluep->string); };
 
 /* Line 1009 of yacc.c  */
-#line 4133 "type.ec"
+#line 4134 "type.ec"
        break;
       case 194: /* "attribute" */
 
 /* Line 1009 of yacc.c  */
-#line 221 "type.y"
+#line 222 "type.y"
        { FreeAttribute((yyvaluep->attribute)); };
 
 /* Line 1009 of yacc.c  */
-#line 4142 "type.ec"
+#line 4143 "type.ec"
        break;
       case 195: /* "attribs_list" */
 
 /* Line 1009 of yacc.c  */
-#line 222 "type.y"
+#line 223 "type.y"
        { FreeList((yyvaluep->list), FreeAttribute); };
 
 /* Line 1009 of yacc.c  */
-#line 4151 "type.ec"
+#line 4152 "type.ec"
        break;
       case 196: /* "attrib" */
 
 /* Line 1009 of yacc.c  */
-#line 219 "type.y"
+#line 220 "type.y"
        { FreeAttrib((yyvaluep->attrib)); };
 
 /* Line 1009 of yacc.c  */
-#line 4160 "type.ec"
+#line 4161 "type.ec"
        break;
       case 197: /* "ext_storage" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 4169 "type.ec"
+#line 4170 "type.ec"
        break;
       case 198: /* "type_qualifier" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 4178 "type.ec"
+#line 4179 "type.ec"
        break;
       case 199: /* "type_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 4187 "type.ec"
+#line 4188 "type.ec"
        break;
       case 200: /* "strict_type_specifier" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 4196 "type.ec"
+#line 4197 "type.ec"
        break;
       case 201: /* "struct_or_union_specifier_compound" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 4205 "type.ec"
+#line 4206 "type.ec"
        break;
       case 202: /* "struct_or_union_specifier_nocompound" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 4214 "type.ec"
+#line 4215 "type.ec"
        break;
       case 203: /* "template_datatype" */
 
 /* Line 1009 of yacc.c  */
-#line 218 "type.y"
+#line 219 "type.y"
        { FreeTemplateDataType((yyvaluep->templateDatatype)); };
 
 /* Line 1009 of yacc.c  */
-#line 4223 "type.ec"
+#line 4224 "type.ec"
        break;
       case 204: /* "template_type_argument" */
 
 /* Line 1009 of yacc.c  */
-#line 217 "type.y"
+#line 218 "type.y"
        { FreeTemplateArgument((yyvaluep->templateArgument)); };
 
 /* Line 1009 of yacc.c  */
-#line 4232 "type.ec"
+#line 4233 "type.ec"
        break;
       case 205: /* "template_expression_argument" */
 
 /* Line 1009 of yacc.c  */
-#line 217 "type.y"
+#line 218 "type.y"
        { FreeTemplateArgument((yyvaluep->templateArgument)); };
 
 /* Line 1009 of yacc.c  */
-#line 4241 "type.ec"
+#line 4242 "type.ec"
        break;
       case 206: /* "template_argument" */
 
 /* Line 1009 of yacc.c  */
-#line 217 "type.y"
+#line 218 "type.y"
        { FreeTemplateArgument((yyvaluep->templateArgument)); };
 
 /* Line 1009 of yacc.c  */
-#line 4250 "type.ec"
+#line 4251 "type.ec"
        break;
       case 209: /* "struct_declaration_list" */
 
 /* Line 1009 of yacc.c  */
-#line 213 "type.y"
+#line 214 "type.y"
        { FreeList((yyvaluep->list), FreeClassDef); };
 
 /* Line 1009 of yacc.c  */
-#line 4259 "type.ec"
+#line 4260 "type.ec"
        break;
       case 210: /* "default_property" */
 
 /* Line 1009 of yacc.c  */
-#line 193 "type.y"
+#line 194 "type.y"
        { FreeMemberInit((yyvaluep->memberInit)); };
 
 /* Line 1009 of yacc.c  */
-#line 4268 "type.ec"
+#line 4269 "type.ec"
        break;
       case 211: /* "default_property_list" */
 
 /* Line 1009 of yacc.c  */
-#line 214 "type.y"
+#line 215 "type.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 4277 "type.ec"
+#line 4278 "type.ec"
        break;
       case 212: /* "property" */
 
 /* Line 1009 of yacc.c  */
-#line 201 "type.y"
+#line 202 "type.y"
        { FreeProperty((yyvaluep->prop)); };
 
 /* Line 1009 of yacc.c  */
-#line 4286 "type.ec"
+#line 4287 "type.ec"
        break;
       case 213: /* "struct_declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 199 "type.y"
+#line 200 "type.y"
        { FreeClassDef((yyvaluep->classDef)); };
 
 /* Line 1009 of yacc.c  */
-#line 4295 "type.ec"
+#line 4296 "type.ec"
        break;
       case 214: /* "struct_declarator_list" */
 
 /* Line 1009 of yacc.c  */
-#line 207 "type.y"
+#line 208 "type.y"
        { FreeList((yyvaluep->list), FreeDeclarator); };
 
 /* Line 1009 of yacc.c  */
-#line 4304 "type.ec"
+#line 4305 "type.ec"
        break;
       case 215: /* "struct_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4313 "type.ec"
+#line 4314 "type.ec"
        break;
       case 216: /* "enum_specifier_nocompound" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 4322 "type.ec"
+#line 4323 "type.ec"
        break;
       case 217: /* "enum_specifier_compound" */
 
 /* Line 1009 of yacc.c  */
-#line 174 "type.y"
+#line 175 "type.y"
        { FreeSpecifier((yyvaluep->specifier)); };
 
 /* Line 1009 of yacc.c  */
-#line 4331 "type.ec"
+#line 4332 "type.ec"
        break;
       case 218: /* "enumerator_list" */
 
 /* Line 1009 of yacc.c  */
-#line 204 "type.y"
+#line 205 "type.y"
        { FreeList((yyvaluep->list), FreeEnumerator); };
 
 /* Line 1009 of yacc.c  */
-#line 4340 "type.ec"
+#line 4341 "type.ec"
        break;
       case 219: /* "enumerator" */
 
 /* Line 1009 of yacc.c  */
-#line 177 "type.y"
+#line 178 "type.y"
        { FreeEnumerator((yyvaluep->enumerator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4349 "type.ec"
+#line 4350 "type.ec"
        break;
       case 220: /* "direct_abstract_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4358 "type.ec"
+#line 4359 "type.ec"
        break;
       case 221: /* "direct_abstract_declarator_noarray" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4367 "type.ec"
+#line 4368 "type.ec"
        break;
       case 222: /* "abstract_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4376 "type.ec"
+#line 4377 "type.ec"
        break;
       case 223: /* "abstract_declarator_noarray" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4385 "type.ec"
+#line 4386 "type.ec"
        break;
       case 224: /* "declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4394 "type.ec"
+#line 4395 "type.ec"
        break;
       case 225: /* "direct_declarator_nofunction" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4403 "type.ec"
+#line 4404 "type.ec"
        break;
       case 226: /* "declarator_function" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4412 "type.ec"
+#line 4413 "type.ec"
        break;
       case 227: /* "direct_declarator_function_start" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4421 "type.ec"
+#line 4422 "type.ec"
        break;
       case 228: /* "direct_declarator_function" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4430 "type.ec"
+#line 4431 "type.ec"
        break;
       case 229: /* "direct_declarator" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4439 "type.ec"
+#line 4440 "type.ec"
        break;
       case 230: /* "declarator_nofunction" */
 
 /* Line 1009 of yacc.c  */
-#line 178 "type.y"
+#line 179 "type.y"
        { FreeDeclarator((yyvaluep->declarator)); };
 
 /* Line 1009 of yacc.c  */
-#line 4448 "type.ec"
+#line 4449 "type.ec"
        break;
       case 231: /* "type_qualifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 205 "type.y"
+#line 206 "type.y"
        { FreeList((yyvaluep->list), FreeSpecifier); };
 
 /* Line 1009 of yacc.c  */
-#line 4457 "type.ec"
+#line 4458 "type.ec"
        break;
       case 232: /* "pointer" */
 
 /* Line 1009 of yacc.c  */
-#line 167 "type.y"
+#line 168 "type.y"
        { FreePointer((yyvaluep->pointer)); };
 
 /* Line 1009 of yacc.c  */
-#line 4466 "type.ec"
+#line 4467 "type.ec"
        break;
       case 233: /* "parameter_type_list" */
 
 /* Line 1009 of yacc.c  */
-#line 211 "type.y"
+#line 212 "type.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 4475 "type.ec"
+#line 4476 "type.ec"
        break;
       case 234: /* "parameter_list" */
 
 /* Line 1009 of yacc.c  */
-#line 211 "type.y"
+#line 212 "type.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 4484 "type.ec"
+#line 4485 "type.ec"
        break;
       case 235: /* "parameter_declaration" */
 
 /* Line 1009 of yacc.c  */
-#line 185 "type.y"
+#line 186 "type.y"
        { FreeTypeName((yyvaluep->typeName)); };
 
 /* Line 1009 of yacc.c  */
-#line 4493 "type.ec"
+#line 4494 "type.ec"
        break;
       case 236: /* "identifier_list" */
 
 /* Line 1009 of yacc.c  */
-#line 211 "type.y"
+#line 212 "type.y"
        { FreeList((yyvaluep->list), FreeTypeName); };
 
 /* Line 1009 of yacc.c  */
-#line 4502 "type.ec"
+#line 4503 "type.ec"
        break;
       case 237: /* "type_name" */
 
 /* Line 1009 of yacc.c  */
-#line 185 "type.y"
+#line 186 "type.y"
        { FreeTypeName((yyvaluep->typeName)); };
 
 /* Line 1009 of yacc.c  */
-#line 4511 "type.ec"
+#line 4512 "type.ec"
        break;
       case 238: /* "guess_type_name" */
 
 /* Line 1009 of yacc.c  */
-#line 185 "type.y"
+#line 186 "type.y"
        { FreeTypeName((yyvaluep->typeName)); };
 
 /* Line 1009 of yacc.c  */
-#line 4520 "type.ec"
+#line 4521 "type.ec"
        break;
       case 239: /* "initializer" */
 
 /* Line 1009 of yacc.c  */
-#line 183 "type.y"
+#line 184 "type.y"
        { FreeInitializer((yyvaluep->initializer)); };
 
 /* Line 1009 of yacc.c  */
-#line 4529 "type.ec"
+#line 4530 "type.ec"
        break;
       case 240: /* "initializer_condition" */
 
 /* Line 1009 of yacc.c  */
-#line 183 "type.y"
+#line 184 "type.y"
        { FreeInitializer((yyvaluep->initializer)); };
 
 /* Line 1009 of yacc.c  */
-#line 4538 "type.ec"
+#line 4539 "type.ec"
        break;
       case 241: /* "initializer_list" */
 
 /* Line 1009 of yacc.c  */
-#line 209 "type.y"
+#line 210 "type.y"
        { FreeList((yyvaluep->list), FreeInitializer); };
 
 /* Line 1009 of yacc.c  */
-#line 4547 "type.ec"
+#line 4548 "type.ec"
        break;
       case 242: /* "statement" */
 
 /* Line 1009 of yacc.c  */
-#line 186 "type.y"
+#line 187 "type.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4556 "type.ec"
+#line 4557 "type.ec"
        break;
       case 243: /* "labeled_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 186 "type.y"
+#line 187 "type.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4565 "type.ec"
+#line 4566 "type.ec"
        break;
       case 244: /* "declaration_list" */
 
 /* Line 1009 of yacc.c  */
-#line 208 "type.y"
+#line 209 "type.y"
        { FreeList((yyvaluep->list), FreeDeclaration); };
 
 /* Line 1009 of yacc.c  */
-#line 4574 "type.ec"
+#line 4575 "type.ec"
        break;
       case 245: /* "statement_list" */
 
 /* Line 1009 of yacc.c  */
-#line 212 "type.y"
+#line 213 "type.y"
        { FreeList((yyvaluep->list), FreeStatement); };
 
 /* Line 1009 of yacc.c  */
-#line 4583 "type.ec"
+#line 4584 "type.ec"
        break;
       case 246: /* "compound_inside" */
 
 /* Line 1009 of yacc.c  */
-#line 186 "type.y"
+#line 187 "type.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4592 "type.ec"
+#line 4593 "type.ec"
        break;
       case 247: /* "compound_start" */
 
 /* Line 1009 of yacc.c  */
-#line 216 "type.y"
+#line 217 "type.y"
        { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
 
 /* Line 1009 of yacc.c  */
-#line 4601 "type.ec"
+#line 4602 "type.ec"
        break;
       case 248: /* "compound_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 186 "type.y"
+#line 187 "type.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4610 "type.ec"
+#line 4611 "type.ec"
        break;
       case 249: /* "expression_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 186 "type.y"
+#line 187 "type.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4619 "type.ec"
+#line 4620 "type.ec"
        break;
       case 250: /* "selection_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 186 "type.y"
+#line 187 "type.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4628 "type.ec"
+#line 4629 "type.ec"
        break;
       case 251: /* "iteration_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 186 "type.y"
+#line 187 "type.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4637 "type.ec"
+#line 4638 "type.ec"
        break;
       case 252: /* "jump_statement" */
 
 /* Line 1009 of yacc.c  */
-#line 186 "type.y"
+#line 187 "type.y"
        { FreeStatement((yyvaluep->stmt)); };
 
 /* Line 1009 of yacc.c  */
-#line 4646 "type.ec"
+#line 4647 "type.ec"
        break;
       case 253: /* "string_literal" */
 
 /* Line 1009 of yacc.c  */
-#line 200 "type.y"
+#line 201 "type.y"
        { delete (yyvaluep->string); };
 
 /* Line 1009 of yacc.c  */
-#line 4655 "type.ec"
+#line 4656 "type.ec"
        break;
       case 254: /* "instantiation_named" */
 
 /* Line 1009 of yacc.c  */
-#line 191 "type.y"
+#line 192 "type.y"
        { FreeInstance((yyvaluep->instance)); };
 
 /* Line 1009 of yacc.c  */
-#line 4664 "type.ec"
+#line 4665 "type.ec"
        break;
       case 256: /* "instantiation_unnamed" */
 
 /* Line 1009 of yacc.c  */
-#line 191 "type.y"
+#line 192 "type.y"
        { FreeInstance((yyvaluep->instance)); };
 
 /* Line 1009 of yacc.c  */
-#line 4673 "type.ec"
+#line 4674 "type.ec"
        break;
       case 258: /* "class_function_definition" */
 
 /* Line 1009 of yacc.c  */
-#line 195 "type.y"
+#line 196 "type.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4682 "type.ec"
+#line 4683 "type.ec"
        break;
       case 259: /* "instance_class_function_definition_start" */
 
 /* Line 1009 of yacc.c  */
-#line 195 "type.y"
+#line 196 "type.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4691 "type.ec"
+#line 4692 "type.ec"
        break;
       case 260: /* "instance_class_function_definition" */
 
 /* Line 1009 of yacc.c  */
-#line 195 "type.y"
+#line 196 "type.y"
        { FreeClassFunction((yyvaluep->classFunction)); };
 
 /* Line 1009 of yacc.c  */
-#line 4700 "type.ec"
+#line 4701 "type.ec"
        break;
       case 261: /* "data_member_initialization" */
 
 /* Line 1009 of yacc.c  */
-#line 193 "type.y"
+#line 194 "type.y"
        { FreeMemberInit((yyvaluep->memberInit)); };
 
 /* Line 1009 of yacc.c  */
-#line 4709 "type.ec"
+#line 4710 "type.ec"
        break;
       case 262: /* "data_member_initialization_list" */
 
 /* Line 1009 of yacc.c  */
-#line 214 "type.y"
+#line 215 "type.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 4718 "type.ec"
+#line 4719 "type.ec"
        break;
       case 263: /* "data_member_initialization_list_coloned" */
 
 /* Line 1009 of yacc.c  */
-#line 214 "type.y"
+#line 215 "type.y"
        { FreeList((yyvaluep->list), FreeMemberInit); };
 
 /* Line 1009 of yacc.c  */
-#line 4727 "type.ec"
+#line 4728 "type.ec"
        break;
       case 264: /* "members_initialization_list_coloned" */
 
 /* Line 1009 of yacc.c  */
-#line 215 "type.y"
+#line 216 "type.y"
        { FreeList((yyvaluep->list), FreeMembersInit); };
 
 /* Line 1009 of yacc.c  */
-#line 4736 "type.ec"
+#line 4737 "type.ec"
        break;
       case 265: /* "members_initialization_list" */
 
 /* Line 1009 of yacc.c  */
-#line 215 "type.y"
+#line 216 "type.y"
        { FreeList((yyvaluep->list), FreeMembersInit); };
 
 /* Line 1009 of yacc.c  */
-#line 4745 "type.ec"
+#line 4746 "type.ec"
        break;
 
       default:
@@ -5073,7 +5074,7 @@ yyreduce:
         case 2:
 
 /* Line 1464 of yacc.c  */
-#line 230 "type.y"
+#line 231 "type.y"
     {
       (yyval.specifier) = null;
       DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
@@ -5096,7 +5097,7 @@ yyreduce:
   case 3:
 
 /* Line 1464 of yacc.c  */
-#line 248 "type.y"
+#line 249 "type.y"
     {
       (yyval.specifier) = null;
    #ifdef PRECOMPILER
@@ -5122,7 +5123,7 @@ yyreduce:
   case 4:
 
 /* Line 1464 of yacc.c  */
-#line 272 "type.y"
+#line 273 "type.y"
     {
       DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
@@ -5144,14 +5145,14 @@ yyreduce:
   case 5:
 
 /* Line 1464 of yacc.c  */
-#line 311 "type.y"
+#line 312 "type.y"
     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
     break;
 
   case 6:
 
 /* Line 1464 of yacc.c  */
-#line 313 "type.y"
+#line 314 "type.y"
     {
    #ifdef PRECOMPILER
       DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
@@ -5180,21 +5181,21 @@ yyreduce:
   case 7:
 
 /* Line 1464 of yacc.c  */
-#line 339 "type.y"
+#line 340 "type.y"
     { (yyval.specifier) = MkSpecifierName(yytext); ;}
     break;
 
   case 9:
 
 /* Line 1464 of yacc.c  */
-#line 344 "type.y"
+#line 345 "type.y"
     { (yyval.specifier) = (yyvsp[(1) - (4)].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); ;}
     break;
 
   case 10:
 
 /* Line 1464 of yacc.c  */
-#line 346 "type.y"
+#line 347 "type.y"
     {
       (yyval.specifier) = (yyvsp[(1) - (4)].specifier);
       SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list));
@@ -5210,210 +5211,210 @@ yyreduce:
   case 11:
 
 /* Line 1464 of yacc.c  */
-#line 363 "type.y"
+#line 364 "type.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 12:
 
 /* Line 1464 of yacc.c  */
-#line 365 "type.y"
+#line 366 "type.y"
     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 13:
 
 /* Line 1464 of yacc.c  */
-#line 370 "type.y"
+#line 371 "type.y"
     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(1) - (3)].list), FreeSpecifier); ;}
     break;
 
   case 14:
 
 /* Line 1464 of yacc.c  */
-#line 375 "type.y"
+#line 376 "type.y"
     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(2) - (4)].list), FreeSpecifier); ;}
     break;
 
   case 15:
 
 /* Line 1464 of yacc.c  */
-#line 380 "type.y"
+#line 381 "type.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 16:
 
 /* Line 1464 of yacc.c  */
-#line 382 "type.y"
+#line 383 "type.y"
     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 17:
 
 /* Line 1464 of yacc.c  */
-#line 387 "type.y"
+#line 388 "type.y"
     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 19:
 
 /* Line 1464 of yacc.c  */
-#line 393 "type.y"
+#line 394 "type.y"
     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 20:
 
 /* Line 1464 of yacc.c  */
-#line 398 "type.y"
+#line 399 "type.y"
     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 21:
 
 /* Line 1464 of yacc.c  */
-#line 400 "type.y"
+#line 401 "type.y"
     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 22:
 
 /* Line 1464 of yacc.c  */
-#line 402 "type.y"
+#line 403 "type.y"
     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 23:
 
 /* Line 1464 of yacc.c  */
-#line 403 "type.y"
+#line 404 "type.y"
     { (yyval.exp) = MkExpWideString(yytext); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 24:
 
 /* Line 1464 of yacc.c  */
-#line 405 "type.y"
+#line 406 "type.y"
     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 25:
 
 /* Line 1464 of yacc.c  */
-#line 406 "type.y"
+#line 407 "type.y"
     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 26:
 
 /* Line 1464 of yacc.c  */
-#line 407 "type.y"
+#line 408 "type.y"
     { (yyval.exp) = MkExpIntlString((yyvsp[(4) - (4)].string), (yyvsp[(2) - (4)].string)); delete (yyvsp[(2) - (4)].string); delete (yyvsp[(4) - (4)].string); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 27:
 
 /* Line 1464 of yacc.c  */
-#line 409 "type.y"
+#line 410 "type.y"
     { Expression exp = MkExpDummy(); exp.loc.start = (yylsp[(1) - (2)]).end; exp.loc.end = (yylsp[(2) - (2)]).start; (yyval.exp) = MkExpBrackets(MkListOne(exp)); (yyval.exp).loc = (yyloc); yyerror(); ;}
     break;
 
   case 28:
 
 /* Line 1464 of yacc.c  */
-#line 411 "type.y"
+#line 412 "type.y"
     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 29:
 
 /* Line 1464 of yacc.c  */
-#line 412 "type.y"
+#line 413 "type.y"
     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 30:
 
 /* Line 1464 of yacc.c  */
-#line 413 "type.y"
+#line 414 "type.y"
     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 31:
 
 /* Line 1464 of yacc.c  */
-#line 414 "type.y"
+#line 415 "type.y"
     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 32:
 
 /* Line 1464 of yacc.c  */
-#line 415 "type.y"
+#line 416 "type.y"
     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 33:
 
 /* Line 1464 of yacc.c  */
-#line 416 "type.y"
+#line 417 "type.y"
     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 34:
 
 /* Line 1464 of yacc.c  */
-#line 417 "type.y"
+#line 418 "type.y"
     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 35:
 
 /* Line 1464 of yacc.c  */
-#line 418 "type.y"
+#line 419 "type.y"
     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 36:
 
 /* Line 1464 of yacc.c  */
-#line 419 "type.y"
+#line 420 "type.y"
     { (yyval.exp) = MkExpDummy(); ;}
     break;
 
   case 38:
 
 /* Line 1464 of yacc.c  */
-#line 424 "type.y"
+#line 425 "type.y"
     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 39:
 
 /* Line 1464 of yacc.c  */
-#line 425 "type.y"
+#line 426 "type.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 40:
 
 /* Line 1464 of yacc.c  */
-#line 426 "type.y"
+#line 427 "type.y"
     { (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end; (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 41:
 
 /* Line 1464 of yacc.c  */
-#line 427 "type.y"
+#line 428 "type.y"
     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 42:
 
 /* Line 1464 of yacc.c  */
-#line 429 "type.y"
+#line 430 "type.y"
     {
       char * constant = (yyvsp[(1) - (2)].exp).type == constantExp ? (yyvsp[(1) - (2)].exp).constant : null;
       int len = constant ? strlen(constant) : 0;
@@ -5431,217 +5432,217 @@ yyreduce:
   case 43:
 
 /* Line 1464 of yacc.c  */
-#line 441 "type.y"
+#line 442 "type.y"
     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 44:
 
 /* Line 1464 of yacc.c  */
-#line 442 "type.y"
+#line 443 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 45:
 
 /* Line 1464 of yacc.c  */
-#line 443 "type.y"
+#line 444 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 46:
 
 /* Line 1464 of yacc.c  */
-#line 447 "type.y"
+#line 448 "type.y"
     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 47:
 
 /* Line 1464 of yacc.c  */
-#line 476 "type.y"
+#line 477 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 48:
 
 /* Line 1464 of yacc.c  */
-#line 477 "type.y"
+#line 478 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 49:
 
 /* Line 1464 of yacc.c  */
-#line 478 "type.y"
+#line 479 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
     break;
 
   case 50:
 
 /* Line 1464 of yacc.c  */
-#line 479 "type.y"
+#line 480 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
     break;
 
   case 51:
 
 /* Line 1464 of yacc.c  */
-#line 483 "type.y"
+#line 484 "type.y"
     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 52:
 
 /* Line 1464 of yacc.c  */
-#line 484 "type.y"
+#line 485 "type.y"
     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 53:
 
 /* Line 1464 of yacc.c  */
-#line 485 "type.y"
+#line 486 "type.y"
     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 54:
 
 /* Line 1464 of yacc.c  */
-#line 487 "type.y"
+#line 488 "type.y"
     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 55:
 
 /* Line 1464 of yacc.c  */
-#line 488 "type.y"
+#line 489 "type.y"
     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 56:
 
 /* Line 1464 of yacc.c  */
-#line 490 "type.y"
+#line 491 "type.y"
     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 57:
 
 /* Line 1464 of yacc.c  */
-#line 491 "type.y"
+#line 492 "type.y"
     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 60:
 
 /* Line 1464 of yacc.c  */
-#line 505 "type.y"
+#line 506 "type.y"
     { (yyval.i) = '&'; ;}
     break;
 
   case 61:
 
 /* Line 1464 of yacc.c  */
-#line 506 "type.y"
+#line 507 "type.y"
     { (yyval.i) = '*'; ;}
     break;
 
   case 62:
 
 /* Line 1464 of yacc.c  */
-#line 507 "type.y"
+#line 508 "type.y"
     { (yyval.i) = '+'; ;}
     break;
 
   case 63:
 
 /* Line 1464 of yacc.c  */
-#line 508 "type.y"
+#line 509 "type.y"
     { (yyval.i) = '-'; ;}
     break;
 
   case 64:
 
 /* Line 1464 of yacc.c  */
-#line 509 "type.y"
+#line 510 "type.y"
     { (yyval.i) = '~'; ;}
     break;
 
   case 65:
 
 /* Line 1464 of yacc.c  */
-#line 510 "type.y"
+#line 511 "type.y"
     { (yyval.i) = '!'; ;}
     break;
 
   case 66:
 
 /* Line 1464 of yacc.c  */
-#line 511 "type.y"
+#line 512 "type.y"
     { (yyval.i) = DELETE; ;}
     break;
 
   case 68:
 
 /* Line 1464 of yacc.c  */
-#line 516 "type.y"
+#line 517 "type.y"
     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 70:
 
 /* Line 1464 of yacc.c  */
-#line 521 "type.y"
+#line 522 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 71:
 
 /* Line 1464 of yacc.c  */
-#line 522 "type.y"
+#line 523 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 72:
 
 /* Line 1464 of yacc.c  */
-#line 523 "type.y"
+#line 524 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 74:
 
 /* Line 1464 of yacc.c  */
-#line 528 "type.y"
+#line 529 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 75:
 
 /* Line 1464 of yacc.c  */
-#line 529 "type.y"
+#line 530 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 77:
 
 /* Line 1464 of yacc.c  */
-#line 534 "type.y"
+#line 535 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 78:
 
 /* Line 1464 of yacc.c  */
-#line 535 "type.y"
+#line 536 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 79:
 
 /* Line 1464 of yacc.c  */
-#line 540 "type.y"
+#line 541 "type.y"
     {
       (yyval.exp) = (yyvsp[(1) - (2)].exp);
       skipErrors = true;
@@ -5651,574 +5652,574 @@ yyreduce:
   case 81:
 
 /* Line 1464 of yacc.c  */
-#line 548 "type.y"
+#line 549 "type.y"
     { skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), '<', (yyvsp[(2) - (2)].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 82:
 
 /* Line 1464 of yacc.c  */
-#line 549 "type.y"
+#line 550 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 83:
 
 /* Line 1464 of yacc.c  */
-#line 550 "type.y"
+#line 551 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 84:
 
 /* Line 1464 of yacc.c  */
-#line 551 "type.y"
+#line 552 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 86:
 
 /* Line 1464 of yacc.c  */
-#line 556 "type.y"
+#line 557 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 87:
 
 /* Line 1464 of yacc.c  */
-#line 557 "type.y"
+#line 558 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 89:
 
 /* Line 1464 of yacc.c  */
-#line 562 "type.y"
+#line 563 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 91:
 
 /* Line 1464 of yacc.c  */
-#line 567 "type.y"
+#line 568 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 93:
 
 /* Line 1464 of yacc.c  */
-#line 572 "type.y"
+#line 573 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 95:
 
 /* Line 1464 of yacc.c  */
-#line 577 "type.y"
+#line 578 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 97:
 
 /* Line 1464 of yacc.c  */
-#line 582 "type.y"
+#line 583 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 99:
 
 /* Line 1464 of yacc.c  */
-#line 587 "type.y"
+#line 588 "type.y"
     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 101:
 
 /* Line 1464 of yacc.c  */
-#line 592 "type.y"
+#line 593 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 102:
 
 /* Line 1464 of yacc.c  */
-#line 593 "type.y"
+#line 594 "type.y"
     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
     break;
 
   case 103:
 
 /* Line 1464 of yacc.c  */
-#line 597 "type.y"
+#line 598 "type.y"
     { (yyval.i) = '='; ;}
     break;
 
   case 104:
 
 /* Line 1464 of yacc.c  */
-#line 598 "type.y"
+#line 599 "type.y"
     { (yyval.i) = MUL_ASSIGN; ;}
     break;
 
   case 105:
 
 /* Line 1464 of yacc.c  */
-#line 599 "type.y"
+#line 600 "type.y"
     { (yyval.i) = DIV_ASSIGN; ;}
     break;
 
   case 106:
 
 /* Line 1464 of yacc.c  */
-#line 600 "type.y"
+#line 601 "type.y"
     { (yyval.i) = MOD_ASSIGN; ;}
     break;
 
   case 107:
 
 /* Line 1464 of yacc.c  */
-#line 601 "type.y"
+#line 602 "type.y"
     { (yyval.i) = ADD_ASSIGN; ;}
     break;
 
   case 108:
 
 /* Line 1464 of yacc.c  */
-#line 602 "type.y"
+#line 603 "type.y"
     { (yyval.i) = SUB_ASSIGN; ;}
     break;
 
   case 109:
 
 /* Line 1464 of yacc.c  */
-#line 603 "type.y"
+#line 604 "type.y"
     { (yyval.i) = LEFT_ASSIGN; ;}
     break;
 
   case 110:
 
 /* Line 1464 of yacc.c  */
-#line 604 "type.y"
+#line 605 "type.y"
     { (yyval.i) = RIGHT_ASSIGN; ;}
     break;
 
   case 111:
 
 /* Line 1464 of yacc.c  */
-#line 605 "type.y"
+#line 606 "type.y"
     { (yyval.i) = AND_ASSIGN; ;}
     break;
 
   case 112:
 
 /* Line 1464 of yacc.c  */
-#line 606 "type.y"
+#line 607 "type.y"
     { (yyval.i) = XOR_ASSIGN; ;}
     break;
 
   case 113:
 
 /* Line 1464 of yacc.c  */
-#line 607 "type.y"
+#line 608 "type.y"
     { (yyval.i) = OR_ASSIGN; ;}
     break;
 
   case 114:
 
 /* Line 1464 of yacc.c  */
-#line 611 "type.y"
+#line 612 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 115:
 
 /* Line 1464 of yacc.c  */
-#line 612 "type.y"
+#line 613 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 117:
 
 /* Line 1464 of yacc.c  */
-#line 620 "type.y"
+#line 621 "type.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 118:
 
 /* Line 1464 of yacc.c  */
-#line 621 "type.y"
+#line 622 "type.y"
     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 119:
 
 /* Line 1464 of yacc.c  */
-#line 622 "type.y"
+#line 623 "type.y"
     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 120:
 
 /* Line 1464 of yacc.c  */
-#line 623 "type.y"
+#line 624 "type.y"
     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
     break;
 
   case 121:
 
 /* Line 1464 of yacc.c  */
-#line 627 "type.y"
+#line 628 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 122:
 
 /* Line 1464 of yacc.c  */
-#line 628 "type.y"
+#line 629 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 123:
 
 /* Line 1464 of yacc.c  */
-#line 629 "type.y"
+#line 630 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 124:
 
 /* Line 1464 of yacc.c  */
-#line 630 "type.y"
+#line 631 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 125:
 
 /* Line 1464 of yacc.c  */
-#line 631 "type.y"
+#line 632 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 126:
 
 /* Line 1464 of yacc.c  */
-#line 632 "type.y"
+#line 633 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 127:
 
 /* Line 1464 of yacc.c  */
-#line 633 "type.y"
+#line 634 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 128:
 
 /* Line 1464 of yacc.c  */
-#line 634 "type.y"
+#line 635 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 129:
 
 /* Line 1464 of yacc.c  */
-#line 638 "type.y"
+#line 639 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 130:
 
 /* Line 1464 of yacc.c  */
-#line 639 "type.y"
+#line 640 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 131:
 
 /* Line 1464 of yacc.c  */
-#line 640 "type.y"
+#line 641 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 132:
 
 /* Line 1464 of yacc.c  */
-#line 641 "type.y"
+#line 642 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 133:
 
 /* Line 1464 of yacc.c  */
-#line 642 "type.y"
+#line 643 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 134:
 
 /* Line 1464 of yacc.c  */
-#line 643 "type.y"
+#line 644 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 135:
 
 /* Line 1464 of yacc.c  */
-#line 644 "type.y"
+#line 645 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 136:
 
 /* Line 1464 of yacc.c  */
-#line 645 "type.y"
+#line 646 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 137:
 
 /* Line 1464 of yacc.c  */
-#line 646 "type.y"
+#line 647 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 138:
 
 /* Line 1464 of yacc.c  */
-#line 647 "type.y"
+#line 648 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 139:
 
 /* Line 1464 of yacc.c  */
-#line 651 "type.y"
+#line 652 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 140:
 
 /* Line 1464 of yacc.c  */
-#line 652 "type.y"
+#line 653 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 141:
 
 /* Line 1464 of yacc.c  */
-#line 653 "type.y"
+#line 654 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 142:
 
 /* Line 1464 of yacc.c  */
-#line 654 "type.y"
+#line 655 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 143:
 
 /* Line 1464 of yacc.c  */
-#line 655 "type.y"
+#line 656 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 144:
 
 /* Line 1464 of yacc.c  */
-#line 656 "type.y"
+#line 657 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 145:
 
 /* Line 1464 of yacc.c  */
-#line 657 "type.y"
+#line 658 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 146:
 
 /* Line 1464 of yacc.c  */
-#line 658 "type.y"
+#line 659 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 147:
 
 /* Line 1464 of yacc.c  */
-#line 659 "type.y"
+#line 660 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 148:
 
 /* Line 1464 of yacc.c  */
-#line 660 "type.y"
+#line 661 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 149:
 
 /* Line 1464 of yacc.c  */
-#line 664 "type.y"
+#line 665 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 150:
 
 /* Line 1464 of yacc.c  */
-#line 665 "type.y"
+#line 666 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 151:
 
 /* Line 1464 of yacc.c  */
-#line 666 "type.y"
+#line 667 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 152:
 
 /* Line 1464 of yacc.c  */
-#line 667 "type.y"
+#line 668 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 153:
 
 /* Line 1464 of yacc.c  */
-#line 668 "type.y"
+#line 669 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 154:
 
 /* Line 1464 of yacc.c  */
-#line 669 "type.y"
+#line 670 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 155:
 
 /* Line 1464 of yacc.c  */
-#line 670 "type.y"
+#line 671 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 156:
 
 /* Line 1464 of yacc.c  */
-#line 671 "type.y"
+#line 672 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 157:
 
 /* Line 1464 of yacc.c  */
-#line 672 "type.y"
+#line 673 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 158:
 
 /* Line 1464 of yacc.c  */
-#line 673 "type.y"
+#line 674 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 159:
 
 /* Line 1464 of yacc.c  */
-#line 674 "type.y"
+#line 675 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 160:
 
 /* Line 1464 of yacc.c  */
-#line 675 "type.y"
+#line 676 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 161:
 
 /* Line 1464 of yacc.c  */
-#line 679 "type.y"
+#line 680 "type.y"
     { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
     break;
 
   case 162:
 
 /* Line 1464 of yacc.c  */
-#line 680 "type.y"
+#line 681 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 163:
 
 /* Line 1464 of yacc.c  */
-#line 684 "type.y"
+#line 685 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 164:
 
 /* Line 1464 of yacc.c  */
-#line 685 "type.y"
+#line 686 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 165:
 
 /* Line 1464 of yacc.c  */
-#line 686 "type.y"
+#line 687 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 166:
 
 /* Line 1464 of yacc.c  */
-#line 687 "type.y"
+#line 688 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 167:
 
 /* Line 1464 of yacc.c  */
-#line 688 "type.y"
+#line 689 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 168:
 
 /* Line 1464 of yacc.c  */
-#line 689 "type.y"
+#line 690 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 169:
 
 /* Line 1464 of yacc.c  */
-#line 690 "type.y"
+#line 691 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
     break;
 
   case 170:
 
 /* Line 1464 of yacc.c  */
-#line 691 "type.y"
+#line 692 "type.y"
     { ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
     break;
 
   case 171:
 
 /* Line 1464 of yacc.c  */
-#line 693 "type.y"
+#line 694 "type.y"
     {
          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
 
@@ -6231,7 +6232,7 @@ yyreduce:
   case 172:
 
 /* Line 1464 of yacc.c  */
-#line 701 "type.y"
+#line 702 "type.y"
     {
          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
@@ -6242,91 +6243,91 @@ yyreduce:
   case 173:
 
 /* Line 1464 of yacc.c  */
-#line 709 "type.y"
+#line 710 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 174:
 
 /* Line 1464 of yacc.c  */
-#line 710 "type.y"
+#line 711 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 175:
 
 /* Line 1464 of yacc.c  */
-#line 711 "type.y"
+#line 712 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 176:
 
 /* Line 1464 of yacc.c  */
-#line 712 "type.y"
+#line 713 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 177:
 
 /* Line 1464 of yacc.c  */
-#line 713 "type.y"
+#line 714 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 178:
 
 /* Line 1464 of yacc.c  */
-#line 714 "type.y"
+#line 715 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 179:
 
 /* Line 1464 of yacc.c  */
-#line 715 "type.y"
+#line 716 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 180:
 
 /* Line 1464 of yacc.c  */
-#line 716 "type.y"
+#line 717 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 181:
 
 /* Line 1464 of yacc.c  */
-#line 717 "type.y"
+#line 718 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 182:
 
 /* Line 1464 of yacc.c  */
-#line 718 "type.y"
+#line 719 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 183:
 
 /* Line 1464 of yacc.c  */
-#line 719 "type.y"
+#line 720 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
     break;
 
   case 184:
 
 /* Line 1464 of yacc.c  */
-#line 720 "type.y"
+#line 721 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
     break;
 
   case 185:
 
 /* Line 1464 of yacc.c  */
-#line 722 "type.y"
+#line 723 "type.y"
     {
          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
 
@@ -6339,7 +6340,7 @@ yyreduce:
   case 186:
 
 /* Line 1464 of yacc.c  */
-#line 730 "type.y"
+#line 731 "type.y"
     {
          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
@@ -6350,658 +6351,658 @@ yyreduce:
   case 187:
 
 /* Line 1464 of yacc.c  */
-#line 738 "type.y"
+#line 739 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
     break;
 
   case 188:
 
 /* Line 1464 of yacc.c  */
-#line 739 "type.y"
+#line 740 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
     break;
 
   case 189:
 
 /* Line 1464 of yacc.c  */
-#line 743 "type.y"
+#line 744 "type.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
     break;
 
   case 190:
 
 /* Line 1464 of yacc.c  */
-#line 744 "type.y"
+#line 745 "type.y"
     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
     break;
 
   case 191:
 
 /* Line 1464 of yacc.c  */
-#line 748 "type.y"
+#line 749 "type.y"
     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
     break;
 
   case 192:
 
 /* Line 1464 of yacc.c  */
-#line 749 "type.y"
+#line 750 "type.y"
     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
     break;
 
   case 193:
 
 /* Line 1464 of yacc.c  */
-#line 750 "type.y"
+#line 751 "type.y"
     { (yyval.specifier) = MkSpecifier(STATIC); ;}
     break;
 
   case 194:
 
 /* Line 1464 of yacc.c  */
-#line 751 "type.y"
+#line 752 "type.y"
     { (yyval.specifier) = MkSpecifier(AUTO); ;}
     break;
 
   case 195:
 
 /* Line 1464 of yacc.c  */
-#line 752 "type.y"
+#line 753 "type.y"
     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
     break;
 
   case 196:
 
 /* Line 1464 of yacc.c  */
-#line 753 "type.y"
+#line 754 "type.y"
     { (yyval.specifier) = MkSpecifier(THREAD); ;}
     break;
 
   case 197:
 
 /* Line 1464 of yacc.c  */
-#line 757 "type.y"
+#line 758 "type.y"
     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
     break;
 
   case 198:
 
 /* Line 1464 of yacc.c  */
-#line 758 "type.y"
+#line 759 "type.y"
     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
     break;
 
   case 199:
 
 /* Line 1464 of yacc.c  */
-#line 759 "type.y"
+#line 760 "type.y"
     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
     break;
 
   case 200:
 
 /* Line 1464 of yacc.c  */
-#line 763 "type.y"
+#line 764 "type.y"
     { (yyval.i) = ATTRIB; ;}
     break;
 
   case 201:
 
 /* Line 1464 of yacc.c  */
-#line 764 "type.y"
+#line 765 "type.y"
     { (yyval.i) = ATTRIB_DEP; ;}
     break;
 
   case 202:
 
 /* Line 1464 of yacc.c  */
-#line 765 "type.y"
+#line 766 "type.y"
     { (yyval.i) = __ATTRIB; ;}
     break;
 
   case 203:
 
 /* Line 1464 of yacc.c  */
-#line 770 "type.y"
+#line 771 "type.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 204:
 
 /* Line 1464 of yacc.c  */
-#line 771 "type.y"
+#line 772 "type.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 205:
 
 /* Line 1464 of yacc.c  */
-#line 772 "type.y"
+#line 773 "type.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 206:
 
 /* Line 1464 of yacc.c  */
-#line 773 "type.y"
+#line 774 "type.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 207:
 
 /* Line 1464 of yacc.c  */
-#line 774 "type.y"
+#line 775 "type.y"
     { (yyval.string)  = CopyString(yytext); ;}
     break;
 
   case 208:
 
 /* Line 1464 of yacc.c  */
-#line 778 "type.y"
+#line 779 "type.y"
     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
     break;
 
   case 209:
 
 /* Line 1464 of yacc.c  */
-#line 779 "type.y"
+#line 780 "type.y"
     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
     break;
 
   case 210:
 
 /* Line 1464 of yacc.c  */
-#line 783 "type.y"
+#line 784 "type.y"
     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
     break;
 
   case 211:
 
 /* Line 1464 of yacc.c  */
-#line 784 "type.y"
+#line 785 "type.y"
     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 212:
 
 /* Line 1464 of yacc.c  */
-#line 785 "type.y"
+#line 786 "type.y"
     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 213:
 
 /* Line 1464 of yacc.c  */
-#line 789 "type.y"
+#line 790 "type.y"
     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
     break;
 
   case 214:
 
 /* Line 1464 of yacc.c  */
-#line 790 "type.y"
+#line 791 "type.y"
     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
     break;
 
   case 215:
 
 /* Line 1464 of yacc.c  */
-#line 794 "type.y"
+#line 795 "type.y"
     { (yyval.specifier) = MkSpecifierExtended((yyvsp[(1) - (1)].extDecl)); ;}
     break;
 
   case 216:
 
 /* Line 1464 of yacc.c  */
-#line 798 "type.y"
+#line 799 "type.y"
     { (yyval.specifier) = MkSpecifier(CONST); ;}
     break;
 
   case 217:
 
 /* Line 1464 of yacc.c  */
-#line 799 "type.y"
+#line 800 "type.y"
     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
     break;
 
   case 218:
 
 /* Line 1464 of yacc.c  */
-#line 800 "type.y"
+#line 801 "type.y"
     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
     break;
 
   case 219:
 
 /* Line 1464 of yacc.c  */
-#line 805 "type.y"
+#line 806 "type.y"
     { (yyval.specifier) = MkSpecifier(VOID); ;}
     break;
 
   case 220:
 
 /* Line 1464 of yacc.c  */
-#line 806 "type.y"
+#line 807 "type.y"
     { (yyval.specifier) = MkSpecifier(CHAR); ;}
     break;
 
   case 221:
 
 /* Line 1464 of yacc.c  */
-#line 807 "type.y"
+#line 808 "type.y"
     { (yyval.specifier) = MkSpecifier(SHORT); ;}
     break;
 
   case 222:
 
 /* Line 1464 of yacc.c  */
-#line 808 "type.y"
+#line 809 "type.y"
     { (yyval.specifier) = MkSpecifier(INT); ;}
     break;
 
   case 223:
 
 /* Line 1464 of yacc.c  */
-#line 809 "type.y"
+#line 810 "type.y"
     { (yyval.specifier) = MkSpecifier(UINT); ;}
     break;
 
   case 224:
 
 /* Line 1464 of yacc.c  */
-#line 810 "type.y"
+#line 811 "type.y"
     { (yyval.specifier) = MkSpecifier(INT64); ;}
     break;
 
   case 225:
 
 /* Line 1464 of yacc.c  */
-#line 811 "type.y"
+#line 812 "type.y"
     { (yyval.specifier) = MkSpecifier(VALIST); ;}
     break;
 
   case 226:
 
 /* Line 1464 of yacc.c  */
-#line 812 "type.y"
+#line 813 "type.y"
     { (yyval.specifier) = MkSpecifier(LONG); ;}
     break;
 
   case 227:
 
 /* Line 1464 of yacc.c  */
-#line 813 "type.y"
+#line 814 "type.y"
     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
     break;
 
   case 228:
 
 /* Line 1464 of yacc.c  */
-#line 814 "type.y"
+#line 815 "type.y"
     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
     break;
 
   case 229:
 
 /* Line 1464 of yacc.c  */
-#line 815 "type.y"
+#line 816 "type.y"
     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
     break;
 
   case 230:
 
 /* Line 1464 of yacc.c  */
-#line 816 "type.y"
+#line 817 "type.y"
     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
     break;
 
   case 231:
 
 /* Line 1464 of yacc.c  */
-#line 817 "type.y"
+#line 818 "type.y"
     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
     break;
 
   case 232:
 
 /* Line 1464 of yacc.c  */
-#line 818 "type.y"
+#line 819 "type.y"
     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
     break;
 
   case 233:
 
 /* Line 1464 of yacc.c  */
-#line 819 "type.y"
+#line 820 "type.y"
     { (yyval.specifier) = MkSpecifier(BOOL); ;}
     break;
 
   case 237:
 
 /* Line 1464 of yacc.c  */
-#line 823 "type.y"
+#line 824 "type.y"
     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 238:
 
 /* Line 1464 of yacc.c  */
-#line 824 "type.y"
+#line 825 "type.y"
     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 239:
 
 /* Line 1464 of yacc.c  */
-#line 825 "type.y"
+#line 826 "type.y"
     { _DeclClass((yyvsp[(3) - (4)].id)._class, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
     break;
 
   case 240:
 
 /* Line 1464 of yacc.c  */
-#line 826 "type.y"
+#line 827 "type.y"
     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
     break;
 
   case 241:
 
 /* Line 1464 of yacc.c  */
-#line 827 "type.y"
+#line 828 "type.y"
     { (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
     break;
 
   case 242:
 
 /* Line 1464 of yacc.c  */
-#line 828 "type.y"
+#line 829 "type.y"
     { (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
     break;
 
   case 243:
 
 /* Line 1464 of yacc.c  */
-#line 832 "type.y"
+#line 833 "type.y"
     { (yyval.specifier) = MkSpecifier(VOID); ;}
     break;
 
   case 244:
 
 /* Line 1464 of yacc.c  */
-#line 833 "type.y"
+#line 834 "type.y"
     { (yyval.specifier) = MkSpecifier(CHAR); ;}
     break;
 
   case 245:
 
 /* Line 1464 of yacc.c  */
-#line 834 "type.y"
+#line 835 "type.y"
     { (yyval.specifier) = MkSpecifier(SHORT); ;}
     break;
 
   case 246:
 
 /* Line 1464 of yacc.c  */
-#line 835 "type.y"
+#line 836 "type.y"
     { (yyval.specifier) = MkSpecifier(INT); ;}
     break;
 
   case 247:
 
 /* Line 1464 of yacc.c  */
-#line 836 "type.y"
+#line 837 "type.y"
     { (yyval.specifier) = MkSpecifier(UINT); ;}
     break;
 
   case 248:
 
 /* Line 1464 of yacc.c  */
-#line 837 "type.y"
+#line 838 "type.y"
     { (yyval.specifier) = MkSpecifier(INT64); ;}
     break;
 
   case 249:
 
 /* Line 1464 of yacc.c  */
-#line 838 "type.y"
+#line 839 "type.y"
     { (yyval.specifier) = MkSpecifier(VALIST); ;}
     break;
 
   case 250:
 
 /* Line 1464 of yacc.c  */
-#line 839 "type.y"
+#line 840 "type.y"
     { (yyval.specifier) = MkSpecifier(LONG); ;}
     break;
 
   case 251:
 
 /* Line 1464 of yacc.c  */
-#line 840 "type.y"
+#line 841 "type.y"
     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
     break;
 
   case 252:
 
 /* Line 1464 of yacc.c  */
-#line 841 "type.y"
+#line 842 "type.y"
     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
     break;
 
   case 253:
 
 /* Line 1464 of yacc.c  */
-#line 842 "type.y"
+#line 843 "type.y"
     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
     break;
 
   case 254:
 
 /* Line 1464 of yacc.c  */
-#line 843 "type.y"
+#line 844 "type.y"
     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
     break;
 
   case 255:
 
 /* Line 1464 of yacc.c  */
-#line 844 "type.y"
+#line 845 "type.y"
     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
     break;
 
   case 256:
 
 /* Line 1464 of yacc.c  */
-#line 845 "type.y"
+#line 846 "type.y"
     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
     break;
 
   case 257:
 
 /* Line 1464 of yacc.c  */
-#line 846 "type.y"
+#line 847 "type.y"
     { (yyval.specifier) = MkSpecifier(BOOL); ;}
     break;
 
   case 261:
 
 /* Line 1464 of yacc.c  */
-#line 850 "type.y"
+#line 851 "type.y"
     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 262:
 
 /* Line 1464 of yacc.c  */
-#line 851 "type.y"
+#line 852 "type.y"
     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 263:
 
 /* Line 1464 of yacc.c  */
-#line 852 "type.y"
+#line 853 "type.y"
     { _DeclClass((yyvsp[(3) - (4)].id)._class, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
     break;
 
   case 264:
 
 /* Line 1464 of yacc.c  */
-#line 853 "type.y"
+#line 854 "type.y"
     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
     break;
 
   case 265:
 
 /* Line 1464 of yacc.c  */
-#line 858 "type.y"
+#line 859 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string); ;}
     break;
 
   case 266:
 
 /* Line 1464 of yacc.c  */
-#line 859 "type.y"
+#line 860 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 267:
 
 /* Line 1464 of yacc.c  */
-#line 860 "type.y"
+#line 861 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), (yyvsp[(2) - (4)].id), null); if(declMode) DeclClass((yyvsp[(2) - (4)].id)._class, (yyvsp[(2) - (4)].id).string); ;}
     break;
 
   case 268:
 
 /* Line 1464 of yacc.c  */
-#line 861 "type.y"
+#line 862 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); ;}
     break;
 
   case 269:
 
 /* Line 1464 of yacc.c  */
-#line 863 "type.y"
+#line 864 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].specifier).nsSpec, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
     break;
 
   case 270:
 
 /* Line 1464 of yacc.c  */
-#line 865 "type.y"
+#line 866 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (6)].specifierType), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (6)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (6)].id)._class, (yyvsp[(3) - (6)].id).string); ;}
     break;
 
   case 271:
 
 /* Line 1464 of yacc.c  */
-#line 866 "type.y"
+#line 867 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), null, (yyvsp[(4) - (5)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); ;}
     break;
 
   case 272:
 
 /* Line 1464 of yacc.c  */
-#line 867 "type.y"
+#line 868 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(3) - (5)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (5)].id)._class, (yyvsp[(3) - (5)].id).string); ;}
     break;
 
   case 273:
 
 /* Line 1464 of yacc.c  */
-#line 868 "type.y"
+#line 869 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); ;}
     break;
 
   case 274:
 
 /* Line 1464 of yacc.c  */
-#line 870 "type.y"
+#line 871 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (6)].specifierType), MkIdentifier((yyvsp[(3) - (6)].specifier).name), (yyvsp[(5) - (6)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (6)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (6)].specifier).nsSpec, (yyvsp[(3) - (6)].specifier).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); ;}
     break;
 
   case 275:
 
 /* Line 1464 of yacc.c  */
-#line 874 "type.y"
+#line 875 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null); if(declMode) DeclClass((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ;}
     break;
 
   case 276:
 
 /* Line 1464 of yacc.c  */
-#line 876 "type.y"
+#line 877 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 277:
 
 /* Line 1464 of yacc.c  */
-#line 879 "type.y"
+#line 880 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), (yyvsp[(3) - (3)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl);if(declMode) DeclClass((yyvsp[(3) - (3)].id)._class, (yyvsp[(3) - (3)].id).string); ;}
     break;
 
   case 278:
 
 /* Line 1464 of yacc.c  */
-#line 881 "type.y"
+#line 882 "type.y"
     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), MkIdentifier((yyvsp[(3) - (3)].specifier).name), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (3)].specifier).nsSpec, (yyvsp[(3) - (3)].specifier).name); FreeSpecifier((yyvsp[(3) - (3)].specifier)); ;}
     break;
 
   case 279:
 
 /* Line 1464 of yacc.c  */
-#line 885 "type.y"
+#line 886 "type.y"
     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 280:
 
 /* Line 1464 of yacc.c  */
-#line 886 "type.y"
+#line 887 "type.y"
     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 281:
 
 /* Line 1464 of yacc.c  */
-#line 891 "type.y"
+#line 892 "type.y"
     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (1)].list), null)); ;}
     break;
 
   case 282:
 
 /* Line 1464 of yacc.c  */
-#line 892 "type.y"
+#line 893 "type.y"
     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator))); ;}
     break;
 
   case 283:
 
 /* Line 1464 of yacc.c  */
-#line 903 "type.y"
+#line 904 "type.y"
     { (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[(1) - (1)].exp)); ;}
     break;
 
   case 286:
 
 /* Line 1464 of yacc.c  */
-#line 910 "type.y"
+#line 911 "type.y"
     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
     break;
 
   case 287:
 
 /* Line 1464 of yacc.c  */
-#line 912 "type.y"
+#line 913 "type.y"
     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
     break;
 
   case 288:
 
 /* Line 1464 of yacc.c  */
-#line 914 "type.y"
+#line 915 "type.y"
     {
       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument);
       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
@@ -7018,7 +7019,7 @@ yyreduce:
   case 289:
 
 /* Line 1464 of yacc.c  */
-#line 938 "type.y"
+#line 939 "type.y"
     {
       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument);
       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
@@ -7035,882 +7036,882 @@ yyreduce:
   case 290:
 
 /* Line 1464 of yacc.c  */
-#line 952 "type.y"
+#line 953 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateArgument)); ;}
     break;
 
   case 291:
 
 /* Line 1464 of yacc.c  */
-#line 953 "type.y"
+#line 954 "type.y"
     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateArgument)); ;}
     break;
 
   case 292:
 
 /* Line 1464 of yacc.c  */
-#line 957 "type.y"
+#line 958 "type.y"
     { (yyval.specifierType) = structSpecifier; ;}
     break;
 
   case 293:
 
 /* Line 1464 of yacc.c  */
-#line 958 "type.y"
+#line 959 "type.y"
     { (yyval.specifierType) = unionSpecifier; ;}
     break;
 
   case 294:
 
 /* Line 1464 of yacc.c  */
-#line 962 "type.y"
+#line 963 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
     break;
 
   case 295:
 
 /* Line 1464 of yacc.c  */
-#line 963 "type.y"
+#line 964 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
     break;
 
   case 296:
 
 /* Line 1464 of yacc.c  */
-#line 967 "type.y"
+#line 968 "type.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
     break;
 
   case 297:
 
 /* Line 1464 of yacc.c  */
-#line 971 "type.y"
+#line 972 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
     break;
 
   case 298:
 
 /* Line 1464 of yacc.c  */
-#line 972 "type.y"
+#line 973 "type.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 299:
 
 /* Line 1464 of yacc.c  */
-#line 977 "type.y"
+#line 978 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 300:
 
 /* Line 1464 of yacc.c  */
-#line 979 "type.y"
+#line 980 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 301:
 
 /* Line 1464 of yacc.c  */
-#line 981 "type.y"
+#line 982 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 302:
 
 /* Line 1464 of yacc.c  */
-#line 983 "type.y"
+#line 984 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 303:
 
 /* Line 1464 of yacc.c  */
-#line 985 "type.y"
+#line 986 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), null, (yyvsp[(3) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 304:
 
 /* Line 1464 of yacc.c  */
-#line 988 "type.y"
+#line 989 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (10)].list), (yyvsp[(3) - (10)].declarator), (yyvsp[(4) - (10)].id), (yyvsp[(7) - (10)].stmt), (yyvsp[(9) - (10)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 305:
 
 /* Line 1464 of yacc.c  */
-#line 990 "type.y"
+#line 991 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (10)].list), (yyvsp[(3) - (10)].declarator), (yyvsp[(4) - (10)].id), (yyvsp[(9) - (10)].stmt), (yyvsp[(7) - (10)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 306:
 
 /* Line 1464 of yacc.c  */
-#line 992 "type.y"
+#line 993 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), (yyvsp[(7) - (8)].stmt), null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 307:
 
 /* Line 1464 of yacc.c  */
-#line 994 "type.y"
+#line 995 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), null, (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 308:
 
 /* Line 1464 of yacc.c  */
-#line 996 "type.y"
+#line 997 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), (yyvsp[(3) - (6)].declarator), (yyvsp[(4) - (6)].id), null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 309:
 
 /* Line 1464 of yacc.c  */
-#line 999 "type.y"
+#line 1000 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(5) - (8)].stmt), (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 310:
 
 /* Line 1464 of yacc.c  */
-#line 1001 "type.y"
+#line 1002 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(7) - (8)].stmt), (yyvsp[(5) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 311:
 
 /* Line 1464 of yacc.c  */
-#line 1003 "type.y"
+#line 1004 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, (yyvsp[(5) - (6)].stmt), null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 312:
 
 /* Line 1464 of yacc.c  */
-#line 1005 "type.y"
+#line 1006 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, null, (yyvsp[(5) - (6)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 313:
 
 /* Line 1464 of yacc.c  */
-#line 1007 "type.y"
+#line 1008 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 314:
 
 /* Line 1464 of yacc.c  */
-#line 1010 "type.y"
+#line 1011 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 315:
 
 /* Line 1464 of yacc.c  */
-#line 1012 "type.y"
+#line 1013 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 316:
 
 /* Line 1464 of yacc.c  */
-#line 1014 "type.y"
+#line 1015 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 317:
 
 /* Line 1464 of yacc.c  */
-#line 1016 "type.y"
+#line 1017 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 318:
 
 /* Line 1464 of yacc.c  */
-#line 1018 "type.y"
+#line 1019 "type.y"
     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
     break;
 
   case 319:
 
 /* Line 1464 of yacc.c  */
-#line 1022 "type.y"
+#line 1023 "type.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 320:
 
 /* Line 1464 of yacc.c  */
-#line 1023 "type.y"
+#line 1024 "type.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 321:
 
 /* Line 1464 of yacc.c  */
-#line 1024 "type.y"
+#line 1025 "type.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
     break;
 
   case 322:
 
 /* Line 1464 of yacc.c  */
-#line 1025 "type.y"
+#line 1026 "type.y"
     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
     break;
 
   case 323:
 
 /* Line 1464 of yacc.c  */
-#line 1026 "type.y"
+#line 1027 "type.y"
     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 324:
 
 /* Line 1464 of yacc.c  */
-#line 1027 "type.y"
+#line 1028 "type.y"
     { (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[(1) - (2)].list)); if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).start; (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 325:
 
 /* Line 1464 of yacc.c  */
-#line 1028 "type.y"
+#line 1029 "type.y"
     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); ;}
     break;
 
   case 326:
 
 /* Line 1464 of yacc.c  */
-#line 1029 "type.y"
+#line 1030 "type.y"
     { (yyval.classDef) = null; ;}
     break;
 
   case 327:
 
 /* Line 1464 of yacc.c  */
-#line 1034 "type.y"
+#line 1035 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
     break;
 
   case 328:
 
 /* Line 1464 of yacc.c  */
-#line 1036 "type.y"
+#line 1037 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
     break;
 
   case 329:
 
 /* Line 1464 of yacc.c  */
-#line 1041 "type.y"
+#line 1042 "type.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 330:
 
 /* Line 1464 of yacc.c  */
-#line 1043 "type.y"
+#line 1044 "type.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 331:
 
 /* Line 1464 of yacc.c  */
-#line 1045 "type.y"
+#line 1046 "type.y"
     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 332:
 
 /* Line 1464 of yacc.c  */
-#line 1047 "type.y"
+#line 1048 "type.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 333:
 
 /* Line 1464 of yacc.c  */
-#line 1049 "type.y"
+#line 1050 "type.y"
     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
     break;
 
   case 334:
 
 /* Line 1464 of yacc.c  */
-#line 1053 "type.y"
+#line 1054 "type.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); if(declMode) DeclClass((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ;}
     break;
 
   case 335:
 
 /* Line 1464 of yacc.c  */
-#line 1054 "type.y"
+#line 1055 "type.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
     break;
 
   case 336:
 
 /* Line 1464 of yacc.c  */
-#line 1059 "type.y"
+#line 1060 "type.y"
     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 337:
 
 /* Line 1464 of yacc.c  */
-#line 1060 "type.y"
+#line 1061 "type.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string); ;}
     break;
 
   case 338:
 
 /* Line 1464 of yacc.c  */
-#line 1061 "type.y"
+#line 1062 "type.y"
     { (yyval.specifier) = MkEnum((yyvsp[(2) - (7)].id), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass((yyvsp[(2) - (7)].id)._class, (yyvsp[(2) - (7)].id).string); ;}
     break;
 
   case 339:
 
 /* Line 1464 of yacc.c  */
-#line 1062 "type.y"
+#line 1063 "type.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (7)].specifier).name), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass((yyvsp[(2) - (7)].specifier).nsSpec, (yyvsp[(2) - (7)].specifier).name); FreeSpecifier((yyvsp[(2) - (7)].specifier)); ;}
     break;
 
   case 340:
 
 /* Line 1464 of yacc.c  */
-#line 1063 "type.y"
+#line 1064 "type.y"
     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].specifier).nsSpec, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
     break;
 
   case 341:
 
 /* Line 1464 of yacc.c  */
-#line 1068 "type.y"
+#line 1069 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
     break;
 
   case 342:
 
 /* Line 1464 of yacc.c  */
-#line 1070 "type.y"
+#line 1071 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
     break;
 
   case 343:
 
 /* Line 1464 of yacc.c  */
-#line 1075 "type.y"
+#line 1076 "type.y"
     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
     break;
 
   case 344:
 
 /* Line 1464 of yacc.c  */
-#line 1077 "type.y"
+#line 1078 "type.y"
     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
     break;
 
   case 345:
 
 /* Line 1464 of yacc.c  */
-#line 1083 "type.y"
+#line 1084 "type.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 346:
 
 /* Line 1464 of yacc.c  */
-#line 1085 "type.y"
+#line 1086 "type.y"
     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
     break;
 
   case 347:
 
 /* Line 1464 of yacc.c  */
-#line 1087 "type.y"
+#line 1088 "type.y"
     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
     break;
 
   case 348:
 
 /* Line 1464 of yacc.c  */
-#line 1089 "type.y"
+#line 1090 "type.y"
     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
     break;
 
   case 349:
 
 /* Line 1464 of yacc.c  */
-#line 1091 "type.y"
+#line 1092 "type.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 350:
 
 /* Line 1464 of yacc.c  */
-#line 1093 "type.y"
+#line 1094 "type.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 351:
 
 /* Line 1464 of yacc.c  */
-#line 1095 "type.y"
+#line 1096 "type.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 352:
 
 /* Line 1464 of yacc.c  */
-#line 1097 "type.y"
+#line 1098 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
     break;
 
   case 353:
 
 /* Line 1464 of yacc.c  */
-#line 1099 "type.y"
+#line 1100 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 354:
 
 /* Line 1464 of yacc.c  */
-#line 1101 "type.y"
+#line 1102 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 355:
 
 /* Line 1464 of yacc.c  */
-#line 1103 "type.y"
+#line 1104 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 356:
 
 /* Line 1464 of yacc.c  */
-#line 1108 "type.y"
+#line 1109 "type.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 357:
 
 /* Line 1464 of yacc.c  */
-#line 1110 "type.y"
+#line 1111 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
     break;
 
   case 358:
 
 /* Line 1464 of yacc.c  */
-#line 1112 "type.y"
+#line 1113 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 359:
 
 /* Line 1464 of yacc.c  */
-#line 1114 "type.y"
+#line 1115 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 360:
 
 /* Line 1464 of yacc.c  */
-#line 1116 "type.y"
+#line 1117 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
     break;
 
   case 361:
 
 /* Line 1464 of yacc.c  */
-#line 1120 "type.y"
+#line 1121 "type.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
     break;
 
   case 363:
 
 /* Line 1464 of yacc.c  */
-#line 1122 "type.y"
+#line 1123 "type.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 364:
 
 /* Line 1464 of yacc.c  */
-#line 1123 "type.y"
+#line 1124 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
     break;
 
   case 365:
 
 /* Line 1464 of yacc.c  */
-#line 1124 "type.y"
+#line 1125 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 366:
 
 /* Line 1464 of yacc.c  */
-#line 1125 "type.y"
+#line 1126 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 367:
 
 /* Line 1464 of yacc.c  */
-#line 1129 "type.y"
+#line 1130 "type.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
     break;
 
   case 369:
 
 /* Line 1464 of yacc.c  */
-#line 1131 "type.y"
+#line 1132 "type.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 370:
 
 /* Line 1464 of yacc.c  */
-#line 1132 "type.y"
+#line 1133 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
     break;
 
   case 371:
 
 /* Line 1464 of yacc.c  */
-#line 1133 "type.y"
+#line 1134 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 372:
 
 /* Line 1464 of yacc.c  */
-#line 1134 "type.y"
+#line 1135 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 374:
 
 /* Line 1464 of yacc.c  */
-#line 1182 "type.y"
+#line 1183 "type.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 375:
 
 /* Line 1464 of yacc.c  */
-#line 1184 "type.y"
+#line 1185 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 376:
 
 /* Line 1464 of yacc.c  */
-#line 1186 "type.y"
+#line 1187 "type.y"
     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
     break;
 
   case 377:
 
 /* Line 1464 of yacc.c  */
-#line 1191 "type.y"
+#line 1192 "type.y"
     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
     break;
 
   case 378:
 
 /* Line 1464 of yacc.c  */
-#line 1193 "type.y"
+#line 1194 "type.y"
     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
     break;
 
   case 379:
 
 /* Line 1464 of yacc.c  */
-#line 1195 "type.y"
+#line 1196 "type.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
     break;
 
   case 380:
 
 /* Line 1464 of yacc.c  */
-#line 1197 "type.y"
+#line 1198 "type.y"
     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
     break;
 
   case 381:
 
 /* Line 1464 of yacc.c  */
-#line 1199 "type.y"
+#line 1200 "type.y"
     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
     break;
 
   case 383:
 
 /* Line 1464 of yacc.c  */
-#line 1205 "type.y"
+#line 1206 "type.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 384:
 
 /* Line 1464 of yacc.c  */
-#line 1208 "type.y"
+#line 1209 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 385:
 
 /* Line 1464 of yacc.c  */
-#line 1210 "type.y"
+#line 1211 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 386:
 
 /* Line 1464 of yacc.c  */
-#line 1212 "type.y"
+#line 1213 "type.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 388:
 
 /* Line 1464 of yacc.c  */
-#line 1222 "type.y"
+#line 1223 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 389:
 
 /* Line 1464 of yacc.c  */
-#line 1224 "type.y"
+#line 1225 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
     break;
 
   case 390:
 
 /* Line 1464 of yacc.c  */
-#line 1226 "type.y"
+#line 1227 "type.y"
     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
     break;
 
   case 393:
 
 /* Line 1464 of yacc.c  */
-#line 1233 "type.y"
+#line 1234 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 394:
 
 /* Line 1464 of yacc.c  */
-#line 1235 "type.y"
+#line 1236 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 396:
 
 /* Line 1464 of yacc.c  */
-#line 1240 "type.y"
+#line 1241 "type.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 397:
 
 /* Line 1464 of yacc.c  */
-#line 1241 "type.y"
+#line 1242 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 398:
 
 /* Line 1464 of yacc.c  */
-#line 1242 "type.y"
+#line 1243 "type.y"
     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 399:
 
 /* Line 1464 of yacc.c  */
-#line 1243 "type.y"
+#line 1244 "type.y"
     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 400:
 
 /* Line 1464 of yacc.c  */
-#line 1247 "type.y"
+#line 1248 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
     break;
 
   case 401:
 
 /* Line 1464 of yacc.c  */
-#line 1248 "type.y"
+#line 1249 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
     break;
 
   case 402:
 
 /* Line 1464 of yacc.c  */
-#line 1252 "type.y"
+#line 1253 "type.y"
     { (yyval.pointer) = MkPointer(null, null); ;}
     break;
 
   case 403:
 
 /* Line 1464 of yacc.c  */
-#line 1253 "type.y"
+#line 1254 "type.y"
     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
     break;
 
   case 404:
 
 /* Line 1464 of yacc.c  */
-#line 1254 "type.y"
+#line 1255 "type.y"
     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
     break;
 
   case 405:
 
 /* Line 1464 of yacc.c  */
-#line 1255 "type.y"
+#line 1256 "type.y"
     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
     break;
 
   case 407:
 
 /* Line 1464 of yacc.c  */
-#line 1260 "type.y"
+#line 1261 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
     break;
 
   case 408:
 
 /* Line 1464 of yacc.c  */
-#line 1264 "type.y"
+#line 1265 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
     break;
 
   case 409:
 
 /* Line 1464 of yacc.c  */
-#line 1265 "type.y"
+#line 1266 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
     break;
 
   case 410:
 
 /* Line 1464 of yacc.c  */
-#line 1269 "type.y"
+#line 1270 "type.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 411:
 
 /* Line 1464 of yacc.c  */
-#line 1270 "type.y"
+#line 1271 "type.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 412:
 
 /* Line 1464 of yacc.c  */
-#line 1271 "type.y"
+#line 1272 "type.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
     break;
 
   case 413:
 
 /* Line 1464 of yacc.c  */
-#line 1272 "type.y"
+#line 1273 "type.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
     break;
 
   case 414:
 
 /* Line 1464 of yacc.c  */
-#line 1273 "type.y"
+#line 1274 "type.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 415:
 
 /* Line 1464 of yacc.c  */
-#line 1285 "type.y"
+#line 1286 "type.y"
     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
     break;
 
   case 416:
 
 /* Line 1464 of yacc.c  */
-#line 1309 "type.y"
+#line 1310 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
     break;
 
   case 417:
 
 /* Line 1464 of yacc.c  */
-#line 1310 "type.y"
+#line 1311 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
     break;
 
   case 418:
 
 /* Line 1464 of yacc.c  */
-#line 1314 "type.y"
+#line 1315 "type.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 419:
 
 /* Line 1464 of yacc.c  */
-#line 1315 "type.y"
+#line 1316 "type.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 420:
 
 /* Line 1464 of yacc.c  */
-#line 1319 "type.y"
+#line 1320 "type.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 421:
 
 /* Line 1464 of yacc.c  */
-#line 1320 "type.y"
+#line 1321 "type.y"
     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
     break;
 
   case 422:
 
 /* Line 1464 of yacc.c  */
-#line 1325 "type.y"
+#line 1326 "type.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 423:
 
 /* Line 1464 of yacc.c  */
-#line 1327 "type.y"
+#line 1328 "type.y"
     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 424:
 
 /* Line 1464 of yacc.c  */
-#line 1329 "type.y"
+#line 1330 "type.y"
     {
          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list));
          (yyval.initializer).loc = (yyloc);
@@ -7928,119 +7929,119 @@ yyreduce:
   case 425:
 
 /* Line 1464 of yacc.c  */
-#line 1345 "type.y"
+#line 1346 "type.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 426:
 
 /* Line 1464 of yacc.c  */
-#line 1347 "type.y"
+#line 1348 "type.y"
     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
     break;
 
   case 427:
 
 /* Line 1464 of yacc.c  */
-#line 1369 "type.y"
+#line 1370 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
     break;
 
   case 428:
 
 /* Line 1464 of yacc.c  */
-#line 1371 "type.y"
+#line 1372 "type.y"
     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
     break;
 
   case 435:
 
 /* Line 1464 of yacc.c  */
-#line 1385 "type.y"
+#line 1386 "type.y"
     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 436:
 
 /* Line 1464 of yacc.c  */
-#line 1387 "type.y"
+#line 1388 "type.y"
     { (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
     break;
 
   case 437:
 
 /* Line 1464 of yacc.c  */
-#line 1389 "type.y"
+#line 1390 "type.y"
     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 438:
 
 /* Line 1464 of yacc.c  */
-#line 1393 "type.y"
+#line 1394 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
     break;
 
   case 439:
 
 /* Line 1464 of yacc.c  */
-#line 1394 "type.y"
+#line 1395 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
     break;
 
   case 440:
 
 /* Line 1464 of yacc.c  */
-#line 1398 "type.y"
+#line 1399 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
     break;
 
   case 441:
 
 /* Line 1464 of yacc.c  */
-#line 1399 "type.y"
+#line 1400 "type.y"
     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
     break;
 
   case 442:
 
 /* Line 1464 of yacc.c  */
-#line 1402 "type.y"
+#line 1403 "type.y"
     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); /*yyerror(); */ ListAdd((yyvsp[(1) - (2)].list), stmt); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 443:
 
 /* Line 1464 of yacc.c  */
-#line 1406 "type.y"
+#line 1407 "type.y"
     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
     break;
 
   case 444:
 
 /* Line 1464 of yacc.c  */
-#line 1407 "type.y"
+#line 1408 "type.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
     break;
 
   case 445:
 
 /* Line 1464 of yacc.c  */
-#line 1408 "type.y"
+#line 1409 "type.y"
     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
     break;
 
   case 446:
 
 /* Line 1464 of yacc.c  */
-#line 1412 "type.y"
+#line 1413 "type.y"
     { (yyval.context) = PushContext(); ;}
     break;
 
   case 447:
 
 /* Line 1464 of yacc.c  */
-#line 1417 "type.y"
+#line 1418 "type.y"
     {
       (yyval.stmt) = MkCompoundStmt(null, null);
       (yyval.stmt).compound.context = PushContext();
@@ -8052,371 +8053,371 @@ yyreduce:
   case 448:
 
 /* Line 1464 of yacc.c  */
-#line 1425 "type.y"
+#line 1426 "type.y"
     { (yyval.stmt) = (yyvsp[(2) - (3)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (3)].context); PopContext((yyvsp[(1) - (3)].context)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 449:
 
 /* Line 1464 of yacc.c  */
-#line 1429 "type.y"
+#line 1430 "type.y"
     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 450:
 
 /* Line 1464 of yacc.c  */
-#line 1430 "type.y"
+#line 1431 "type.y"
     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 451:
 
 /* Line 1464 of yacc.c  */
-#line 1434 "type.y"
+#line 1435 "type.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 452:
 
 /* Line 1464 of yacc.c  */
-#line 1435 "type.y"
+#line 1436 "type.y"
     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 453:
 
 /* Line 1464 of yacc.c  */
-#line 1436 "type.y"
+#line 1437 "type.y"
     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 454:
 
 /* Line 1464 of yacc.c  */
-#line 1440 "type.y"
+#line 1441 "type.y"
     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 455:
 
 /* Line 1464 of yacc.c  */
-#line 1441 "type.y"
+#line 1442 "type.y"
     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 456:
 
 /* Line 1464 of yacc.c  */
-#line 1442 "type.y"
+#line 1443 "type.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 457:
 
 /* Line 1464 of yacc.c  */
-#line 1443 "type.y"
+#line 1444 "type.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 458:
 
 /* Line 1464 of yacc.c  */
-#line 1445 "type.y"
+#line 1446 "type.y"
     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 459:
 
 /* Line 1464 of yacc.c  */
-#line 1446 "type.y"
+#line 1447 "type.y"
     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 460:
 
 /* Line 1464 of yacc.c  */
-#line 1447 "type.y"
+#line 1448 "type.y"
     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 461:
 
 /* Line 1464 of yacc.c  */
-#line 1451 "type.y"
+#line 1452 "type.y"
     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 462:
 
 /* Line 1464 of yacc.c  */
-#line 1452 "type.y"
+#line 1453 "type.y"
     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 463:
 
 /* Line 1464 of yacc.c  */
-#line 1453 "type.y"
+#line 1454 "type.y"
     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 464:
 
 /* Line 1464 of yacc.c  */
-#line 1454 "type.y"
+#line 1455 "type.y"
     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
     break;
 
   case 465:
 
 /* Line 1464 of yacc.c  */
-#line 1455 "type.y"
+#line 1456 "type.y"
     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
     break;
 
   case 466:
 
 /* Line 1464 of yacc.c  */
-#line 1459 "type.y"
+#line 1460 "type.y"
     { (yyval.string) = CopyString(yytext); ;}
     break;
 
   case 467:
 
 /* Line 1464 of yacc.c  */
-#line 1464 "type.y"
+#line 1465 "type.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(5) - (5)]).start;;}
     break;
 
   case 468:
 
 /* Line 1464 of yacc.c  */
-#line 1466 "type.y"
+#line 1467 "type.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start;;}
     break;
 
   case 469:
 
 /* Line 1464 of yacc.c  */
-#line 1471 "type.y"
+#line 1472 "type.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(5) - (5)]).start;;}
     break;
 
   case 470:
 
 /* Line 1464 of yacc.c  */
-#line 1473 "type.y"
+#line 1474 "type.y"
     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start;;}
     break;
 
   case 471:
 
 /* Line 1464 of yacc.c  */
-#line 1498 "type.y"
+#line 1499 "type.y"
     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (4)].specifier), null, (yyvsp[(3) - (4)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start; ;}
     break;
 
   case 472:
 
 /* Line 1464 of yacc.c  */
-#line 1500 "type.y"
+#line 1501 "type.y"
     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (3)].specifier), null, MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).start;;}
     break;
 
   case 473:
 
 /* Line 1464 of yacc.c  */
-#line 1502 "type.y"
+#line 1503 "type.y"
     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (4)]); yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (4)].id).string), null, (yyvsp[(3) - (4)].list));(yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start; FreeIdentifier((yyvsp[(1) - (4)].id)); ;}
     break;
 
   case 474:
 
 /* Line 1464 of yacc.c  */
-#line 1504 "type.y"
+#line 1505 "type.y"
     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (3)]); yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (3)].id).string), null, MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).start; FreeIdentifier((yyvsp[(1) - (3)].id)); ;}
     break;
 
   case 475:
 
 /* Line 1464 of yacc.c  */
-#line 1509 "type.y"
+#line 1510 "type.y"
     { (yyval.instance) = MkInstantiation(null, null, (yyvsp[(2) - (3)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).start; ;}
     break;
 
   case 476:
 
 /* Line 1464 of yacc.c  */
-#line 1511 "type.y"
+#line 1512 "type.y"
     { (yyval.instance) = MkInstantiation(null, null, MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start;;}
     break;
 
   case 477:
 
 /* Line 1464 of yacc.c  */
-#line 1515 "type.y"
+#line 1516 "type.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 478:
 
 /* Line 1464 of yacc.c  */
-#line 1517 "type.y"
+#line 1518 "type.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 479:
 
 /* Line 1464 of yacc.c  */
-#line 1519 "type.y"
+#line 1520 "type.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 480:
 
 /* Line 1464 of yacc.c  */
-#line 1521 "type.y"
+#line 1522 "type.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 481:
 
 /* Line 1464 of yacc.c  */
-#line 1523 "type.y"
+#line 1524 "type.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 482:
 
 /* Line 1464 of yacc.c  */
-#line 1529 "type.y"
+#line 1530 "type.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 483:
 
 /* Line 1464 of yacc.c  */
-#line 1531 "type.y"
+#line 1532 "type.y"
     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 484:
 
 /* Line 1464 of yacc.c  */
-#line 1536 "type.y"
+#line 1537 "type.y"
     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
     break;
 
   case 485:
 
 /* Line 1464 of yacc.c  */
-#line 1540 "type.y"
+#line 1541 "type.y"
     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end;;}
     break;
 
   case 486:
 
 /* Line 1464 of yacc.c  */
-#line 1541 "type.y"
+#line 1542 "type.y"
     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
     break;
 
   case 487:
 
 /* Line 1464 of yacc.c  */
-#line 1546 "type.y"
+#line 1547 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
     break;
 
   case 488:
 
 /* Line 1464 of yacc.c  */
-#line 1548 "type.y"
+#line 1549 "type.y"
     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
     break;
 
   case 489:
 
 /* Line 1464 of yacc.c  */
-#line 1553 "type.y"
+#line 1554 "type.y"
     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 490:
 
 /* Line 1464 of yacc.c  */
-#line 1557 "type.y"
+#line 1558 "type.y"
     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 491:
 
 /* Line 1464 of yacc.c  */
-#line 1558 "type.y"
+#line 1559 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 492:
 
 /* Line 1464 of yacc.c  */
-#line 1559 "type.y"
+#line 1560 "type.y"
     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list);  ;}
     break;
 
   case 493:
 
 /* Line 1464 of yacc.c  */
-#line 1560 "type.y"
+#line 1561 "type.y"
     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]);(yyval.list) = (yyvsp[(1) - (2)].list);  ;}
     break;
 
   case 494:
 
 /* Line 1464 of yacc.c  */
-#line 1561 "type.y"
+#line 1562 "type.y"
     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
     break;
 
   case 495:
 
 /* Line 1464 of yacc.c  */
-#line 1562 "type.y"
+#line 1563 "type.y"
     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
     break;
 
   case 497:
 
 /* Line 1464 of yacc.c  */
-#line 1567 "type.y"
+#line 1568 "type.y"
     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
     break;
 
   case 498:
 
 /* Line 1464 of yacc.c  */
-#line 1568 "type.y"
+#line 1569 "type.y"
     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
     break;
 
   case 499:
 
 /* Line 1464 of yacc.c  */
-#line 1572 "type.y"
+#line 1573 "type.y"
     { parsedType = (yyvsp[(1) - (1)].typeName); ;}
     break;
 
   case 500:
 
 /* Line 1464 of yacc.c  */
-#line 1573 "type.y"
+#line 1574 "type.y"
     { parsedType = (yyvsp[(1) - (3)].typeName); parsedType.bitCount = (yyvsp[(3) - (3)].exp); ;}
     break;
 
 
 
 /* Line 1464 of yacc.c  */
-#line 8420 "type.ec"
+#line 8421 "type.ec"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -8635,6 +8636,6 @@ yyreturn:
 
 
 /* Line 1684 of yacc.c  */
-#line 1576 "type.y"
+#line 1577 "type.y"
 
 
index 4e1339c..a96f27c 100644 (file)
@@ -2,6 +2,7 @@
 
 import "ecdefs"
 
+#define YYSIZE_T size_t
 #define YYLTYPE Location
 #include "grammar.h"
 
diff --git a/ecere/Makefile.bootstrap b/ecere/Makefile.bootstrap
new file mode 100644 (file)
index 0000000..6b105f4
--- /dev/null
@@ -0,0 +1,279 @@
+.PHONY: all objdir cleantarget clean realclean distclean
+
+# CORE VARIABLES
+
+MODULE := ecere
+VERSION := 0.44
+CONFIG := bootstrap
+ifndef COMPILER
+COMPILER := default
+endif
+
+TARGET_TYPE = staticlib
+
+# FLAGS
+
+ECFLAGS =
+ifndef DEBIAN_PACKAGE
+CFLAGS =
+LDFLAGS =
+endif
+PRJ_CFLAGS =
+CECFLAGS =
+OFLAGS =
+LIBS =
+
+ifdef DEBUG
+NOSTRIP := y
+endif
+
+CONSOLE = -mwindows
+
+# INCLUDES
+
+_CF_DIR = .configs/
+
+include $(_CF_DIR)crossplatform.mk
+include $(_CF_DIR)$(TARGET_PLATFORM)-$(COMPILER).cf
+
+# POST-INCLUDES VARIABLES
+
+OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
+
+RES = res/
+
+_ECSOURCES = \
+       src/sys/BufferedFile.ec \
+       src/sys/DualPipe.ec \
+       src/sys/File.ec \
+       src/sys/memory.ec \
+       src/sys/System.ec \
+       src/sys/TempFile.ec \
+       src/sys/i18n.ec \
+       src/com/containers/Array.ec \
+       src/com/containers/AVLTree.ec \
+       src/com/containers/BuiltInContainer.ec \
+       src/com/containers/Container.ec \
+       src/com/containers/CustomAVLTree.ec \
+       src/com/containers/LinkList.ec \
+       src/com/containers/List.ec \
+       src/com/containers/Map.ec \
+       src/com/BinaryTree.ec \
+       src/com/BTNode.ec \
+       src/com/dataTypes.ec \
+       src/com/instance.ec \
+       src/com/String.ec \
+       src/com/OldList.ec
+
+ECSOURCES = $(call shwspace,$(_ECSOURCES))
+
+_COBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(C),$(notdir $(_ECSOURCES))))
+
+_SYMBOLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(S),$(notdir $(_ECSOURCES))))
+
+_IMPORTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(I),$(notdir $(_ECSOURCES))))
+
+_ECOBJECTS = $(addprefix $(OBJ),$(patsubst %.ec,%$(O),$(notdir $(_ECSOURCES))))
+
+_BOWLS = $(addprefix $(OBJ),$(patsubst %.ec,%$(B),$(notdir $(_ECSOURCES))))
+
+COBJECTS = $(call shwspace,$(_COBJECTS))
+
+SYMBOLS = $(call shwspace,$(_SYMBOLS))
+
+IMPORTS = $(call shwspace,$(_IMPORTS))
+
+ECOBJECTS = $(call shwspace,$(_ECOBJECTS))
+
+BOWLS = $(call shwspace,$(_BOWLS))
+
+SOURCES = $(ECSOURCES)
+
+RESOURCES =
+
+PRJ_CFLAGS += \
+        $(if $(DEBUG),-g) $(FPIC) -Wall -DREPOSITORY_VERSION="\"$(REPOSITORY_VER)\"" \
+                        -DBUILDING_ECERE_COM \
+                        -DECERE_BOOTSTRAP \
+                        -DECERE_STATIC \
+                        -I../compiler/bootstrap/include
+
+CUSTOM1_PRJ_CFLAGS = \
+                        -DECERE_COM_MODULE \
+        $(PRJ_CFLAGS)
+
+ECFLAGS += -module $(MODULE)
+ECFLAGS += \
+        -nolinenumbers -defaultns ecere
+
+CECFLAGS += -cpp $(_CPP)
+
+# TARGETS
+
+all: objdir $(COBJECTS) $(OBJ)$(MODULE).main.c
+
+objdir:
+       $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
+       $(if $(ECERE_SDK_SRC),$(if $(wildcard $(call escspace,$(ECERE_SDK_SRC)/crossplatform.mk)),,@$(call echo,Ecere SDK Source Warning: The value of ECERE_SDK_SRC is pointing to an incorrect ($(ECERE_SDK_SRC)) location.)),)
+       $(if $(ECERE_SDK_SRC),,$(if $(ECP_DEBUG)$(ECC_DEBUG)$(ECS_DEBUG),@$(call echo,ECC Debug Warning: Please define ECERE_SDK_SRC before using ECP_DEBUG, ECC_DEBUG or ECS_DEBUG),))
+
+$(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
+       @$(call rmq,$(OBJ)symbols.lst)
+       @$(call touch,$(OBJ)symbols.lst)
+       @$(call echo,$(SYMBOLS)) >> $(OBJ)symbols.lst
+       @$(call echo,$(IMPORTS)) >> $(OBJ)symbols.lst
+       $(ECS) $(ARCH_FLAGS) $(ECSLIBOPT) @$(OBJ)symbols.lst -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(call quote_path,$@)
+
+$(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.ec -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(SYMBOLS): | objdir
+
+# SYMBOL RULES
+
+$(OBJ)BufferedFile.sym: src/sys/BufferedFile.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/BufferedFile.ec) -o $(call quote_path,$@)
+
+$(OBJ)DualPipe.sym: src/sys/DualPipe.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/DualPipe.ec) -o $(call quote_path,$@)
+
+$(OBJ)File.sym: src/sys/File.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/File.ec) -o $(call quote_path,$@)
+
+$(OBJ)memory.sym: src/sys/memory.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/memory.ec) -o $(call quote_path,$@)
+
+$(OBJ)System.sym: src/sys/System.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/System.ec) -o $(call quote_path,$@)
+
+$(OBJ)TempFile.sym: src/sys/TempFile.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(call quote_path,src/sys/TempFile.ec) -o $(call quote_path,$@)
+
+$(OBJ)i18n.sym: src/sys/i18n.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/sys/i18n.ec) -o $(call quote_path,$@)
+
+$(OBJ)Array.sym: src/com/containers/Array.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/Array.ec) -o $(call quote_path,$@)
+
+$(OBJ)AVLTree.sym: src/com/containers/AVLTree.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/AVLTree.ec) -o $(call quote_path,$@)
+
+$(OBJ)BuiltInContainer.sym: src/com/containers/BuiltInContainer.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/BuiltInContainer.ec) -o $(call quote_path,$@)
+
+$(OBJ)Container.sym: src/com/containers/Container.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/Container.ec) -o $(call quote_path,$@)
+
+$(OBJ)CustomAVLTree.sym: src/com/containers/CustomAVLTree.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/CustomAVLTree.ec) -o $(call quote_path,$@)
+
+$(OBJ)LinkList.sym: src/com/containers/LinkList.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/LinkList.ec) -o $(call quote_path,$@)
+
+$(OBJ)List.sym: src/com/containers/List.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/List.ec) -o $(call quote_path,$@)
+
+$(OBJ)Map.sym: src/com/containers/Map.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/containers/Map.ec) -o $(call quote_path,$@)
+
+$(OBJ)BinaryTree.sym: src/com/BinaryTree.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/BinaryTree.ec) -o $(call quote_path,$@)
+
+$(OBJ)BTNode.sym: src/com/BTNode.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/BTNode.ec) -o $(call quote_path,$@)
+
+$(OBJ)dataTypes.sym: src/com/dataTypes.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/dataTypes.ec) -o $(call quote_path,$@)
+
+$(OBJ)instance.sym: src/com/instance.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/instance.ec) -o $(call quote_path,$@)
+
+$(OBJ)String.sym: src/com/String.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/String.ec) -o $(call quote_path,$@)
+
+$(OBJ)OldList.sym: src/com/OldList.ec
+       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) -c $(call quote_path,src/com/OldList.ec) -o $(call quote_path,$@)
+
+# C OBJECT RULES
+
+$(OBJ)BufferedFile.c: src/sys/BufferedFile.ec $(OBJ)BufferedFile.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/BufferedFile.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)DualPipe.c: src/sys/DualPipe.ec $(OBJ)DualPipe.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/DualPipe.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)File.c: src/sys/File.ec $(OBJ)File.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/File.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)memory.c: src/sys/memory.ec $(OBJ)memory.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/memory.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)System.c: src/sys/System.ec $(OBJ)System.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/System.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)TempFile.c: src/sys/TempFile.ec $(OBJ)TempFile.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/TempFile.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)i18n.c: src/sys/i18n.ec $(OBJ)i18n.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/sys/i18n.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)Array.c: src/com/containers/Array.ec $(OBJ)Array.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/Array.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)AVLTree.c: src/com/containers/AVLTree.ec $(OBJ)AVLTree.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/AVLTree.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)BuiltInContainer.c: src/com/containers/BuiltInContainer.ec $(OBJ)BuiltInContainer.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/BuiltInContainer.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)Container.c: src/com/containers/Container.ec $(OBJ)Container.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/Container.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)CustomAVLTree.c: src/com/containers/CustomAVLTree.ec $(OBJ)CustomAVLTree.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/CustomAVLTree.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)LinkList.c: src/com/containers/LinkList.ec $(OBJ)LinkList.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/LinkList.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)List.c: src/com/containers/List.ec $(OBJ)List.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/List.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)Map.c: src/com/containers/Map.ec $(OBJ)Map.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/containers/Map.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)BinaryTree.c: src/com/BinaryTree.ec $(OBJ)BinaryTree.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/BinaryTree.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)BTNode.c: src/com/BTNode.ec $(OBJ)BTNode.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/BTNode.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)dataTypes.c: src/com/dataTypes.ec $(OBJ)dataTypes.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/dataTypes.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)instance.c: src/com/instance.ec $(OBJ)instance.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/instance.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)String.c: src/com/String.ec $(OBJ)String.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/String.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+$(OBJ)OldList.c: src/com/OldList.ec $(OBJ)OldList.sym | $(SYMBOLS)
+       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(CUSTOM1_PRJ_CFLAGS) $(FVISIBILITY) -c $(call quote_path,src/com/OldList.ec) -o $(call quote_path,$@) -symbols $(OBJ)
+
+cleantarget: objdir
+       $(call rmq,$(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
+       $(call rmq,$(OBJ)symbols.lst)
+       $(call rmq,$(OBJ)objects.lst)
+
+clean: cleantarget
+       $(call rmq,$(_ECOBJECTS))
+       $(call rmq,$(_COBJECTS))
+       $(call rmq,$(_BOWLS))
+       $(call rmq,$(_IMPORTS))
+       $(call rmq,$(_SYMBOLS))
+
+realclean: cleantarget
+       $(call rmrq,$(OBJ))
+
+distclean: cleantarget
+       $(call rmrq,obj/)
index 4f18b2c..cf9460c 100644 (file)
@@ -1485,6 +1485,12 @@ from wherever you obtained them.
                                        "Options" : {
                                           "ExcludeFromBuild" : true
                                        }
+                                    },
+                                    {
+                                       "Name" : "apple",
+                                       "Options" : {
+                                          "ExcludeFromBuild" : true
+                                       }
                                     }
                                  ]
                               },
index bf95c0f..c486597 100644 (file)
@@ -6103,6 +6103,36 @@ public bool LocateModule(const char * name, const char * fileName)
    return Instance_LocateModule(name, fileName);
 }
 
+/*
+#if (defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
+#define _64BIT 1
+#else
+#define _64BIT 0
+#endif
+
+#define arch_PointerSize                  sizeof(void *)
+#define structSize_Instance               (_64BIT ? 24 : 12)
+#define structSize_Module                 (_64BIT ? 560 : 300)
+#define structSize_BinaryTree             (_64BIT ? 32 : 16)
+#define structSize_OldList                (_64BIT ? 32 : 20)
+#define structSize_NamedLink64            (_64BIT ? 32 : 24)
+#define structSize_ClassTemplateArgument  (_64BIT ? 16 : 8)
+#define structSize_ClassTemplateParameter (_64BIT ? 64 : 40)
+#define structSize_OldLink                (_64BIT ? 24 : 12)
+#define structSize_BTNamedLink            (_64BIT ? 48 : 24)
+#define structSize_Application            (_64BIT ? 800 : 428)
+#define structSize_Watcher                (_64BIT ? 32 : 16)
+#define structSize_SelfWatcher            (_64BIT ? 32 : 16)
+#define structSize_GlobalFunction         (_64BIT ? 72 : 36)
+#define structSize_DefinedExpression      (_64BIT ? 40 : 20)
+#define structSize_BitMember              (_64BIT ? 96 : 64)
+#define structSize_DataMember             (_64BIT ? 160 : 96)
+#define structSize_ClassProperty          (_64BIT ? 80 : 40)
+#define structSize_Method                 (_64BIT ? 96 : 52)
+#define structSize_Property               (_64BIT ? 152 : 88)
+#define structSize_Class                  (_64BIT ? 624 : 376)
+*/
+
 static void LoadCOM(Module module)
 {
    bool force64Bits = (module.application.isGUIApp & 2) ? true : false;