Index: src/Parser/lex.cc
===================================================================
--- src/Parser/lex.cc	(revision faddbd88e10faf4096d269d1ac28b46bfa0f57aa)
+++ src/Parser/lex.cc	(revision 315f6345fd4468ec768bbc8c18e049cf434bc841)
@@ -1469,6 +1469,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Wed Aug 24 13:27:04 2016
- * Update Count     : 487
+ * Last Modified On : Tue Oct 18 22:19:37 2016
+ * Update Count     : 488
  */
 #line 20 "lex.ll"
@@ -1517,5 +1517,4 @@
 
 // identifier, GCC: $ in identifier
-// quoted identifier
 // attribute identifier, GCC: $ in identifier
 // numeric constants, CFA: '_' in constant
@@ -1532,5 +1531,5 @@
 
 
-#line 1535 "Parser/lex.cc"
+#line 1534 "Parser/lex.cc"
 
 #define INITIAL 0
@@ -1724,8 +1723,8 @@
 	register int yy_act;
     
-#line 139 "lex.ll"
+#line 136 "lex.ll"
 
 				   /* line directives */
-#line 1730 "Parser/lex.cc"
+#line 1729 "Parser/lex.cc"
 
 	if ( !(yy_init) )
@@ -1824,5 +1823,5 @@
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 141 "lex.ll"
+#line 138 "lex.ll"
 {
 	/* " stop highlighting */
@@ -1850,5 +1849,5 @@
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 163 "lex.ll"
+#line 160 "lex.ll"
 ;
 	YY_BREAK
@@ -1856,5 +1855,5 @@
 case 3:
 YY_RULE_SETUP
-#line 166 "lex.ll"
+#line 163 "lex.ll"
 { BEGIN COMMENT; }
 	YY_BREAK
@@ -1862,10 +1861,10 @@
 /* rule 4 can match eol */
 YY_RULE_SETUP
-#line 167 "lex.ll"
+#line 164 "lex.ll"
 ;
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 168 "lex.ll"
+#line 165 "lex.ll"
 { BEGIN 0; }
 	YY_BREAK
@@ -1874,5 +1873,5 @@
 /* rule 6 can match eol */
 YY_RULE_SETUP
-#line 171 "lex.ll"
+#line 168 "lex.ll"
 ;
 	YY_BREAK
@@ -1880,10 +1879,10 @@
 case 7:
 YY_RULE_SETUP
-#line 174 "lex.ll"
+#line 171 "lex.ll"
 { WHITE_RETURN(' '); }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 175 "lex.ll"
+#line 172 "lex.ll"
 { WHITE_RETURN(' '); }
 	YY_BREAK
@@ -1891,5 +1890,5 @@
 /* rule 9 can match eol */
 YY_RULE_SETUP
-#line 176 "lex.ll"
+#line 173 "lex.ll"
 { NEWLINE_RETURN(); }
 	YY_BREAK
@@ -1897,465 +1896,465 @@
 case 10:
 YY_RULE_SETUP
+#line 176 "lex.ll"
+{ KEYWORD_RETURN(ALIGNAS); }			// C11
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 177 "lex.ll"
+{ KEYWORD_RETURN(ALIGNOF); }			// C11
+	YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 178 "lex.ll"
+{ KEYWORD_RETURN(ALIGNOF); }			// GCC
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
 #line 179 "lex.ll"
-{ KEYWORD_RETURN(ALIGNAS); }			// C11
-	YY_BREAK
-case 11:
+{ KEYWORD_RETURN(ALIGNOF); }			// GCC
+	YY_BREAK
+case 14:
 YY_RULE_SETUP
 #line 180 "lex.ll"
-{ KEYWORD_RETURN(ALIGNOF); }			// C11
-	YY_BREAK
-case 12:
+{ KEYWORD_RETURN(ASM); }
+	YY_BREAK
+case 15:
 YY_RULE_SETUP
 #line 181 "lex.ll"
-{ KEYWORD_RETURN(ALIGNOF); }			// GCC
-	YY_BREAK
-case 13:
+{ KEYWORD_RETURN(ASM); }				// GCC
+	YY_BREAK
+case 16:
 YY_RULE_SETUP
 #line 182 "lex.ll"
-{ KEYWORD_RETURN(ALIGNOF); }			// GCC
-	YY_BREAK
-case 14:
+{ KEYWORD_RETURN(ASM); }				// GCC
+	YY_BREAK
+case 17:
 YY_RULE_SETUP
 #line 183 "lex.ll"
-{ KEYWORD_RETURN(ASM); }
-	YY_BREAK
-case 15:
+{ KEYWORD_RETURN(AT); }					// CFA
+	YY_BREAK
+case 18:
 YY_RULE_SETUP
 #line 184 "lex.ll"
-{ KEYWORD_RETURN(ASM); }				// GCC
-	YY_BREAK
-case 16:
+{ KEYWORD_RETURN(ATOMIC); }				// C11
+	YY_BREAK
+case 19:
 YY_RULE_SETUP
 #line 185 "lex.ll"
-{ KEYWORD_RETURN(ASM); }				// GCC
-	YY_BREAK
-case 17:
+{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
+	YY_BREAK
+case 20:
 YY_RULE_SETUP
 #line 186 "lex.ll"
-{ KEYWORD_RETURN(AT); }					// CFA
-	YY_BREAK
-case 18:
+{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
+	YY_BREAK
+case 21:
 YY_RULE_SETUP
 #line 187 "lex.ll"
-{ KEYWORD_RETURN(ATOMIC); }				// C11
-	YY_BREAK
-case 19:
+{ KEYWORD_RETURN(AUTO); }
+	YY_BREAK
+case 22:
 YY_RULE_SETUP
 #line 188 "lex.ll"
-{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
-	YY_BREAK
-case 20:
+{ KEYWORD_RETURN(BOOL); }				// C99
+	YY_BREAK
+case 23:
 YY_RULE_SETUP
 #line 189 "lex.ll"
-{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
-	YY_BREAK
-case 21:
+{ KEYWORD_RETURN(BREAK); }
+	YY_BREAK
+case 24:
 YY_RULE_SETUP
 #line 190 "lex.ll"
-{ KEYWORD_RETURN(AUTO); }
-	YY_BREAK
-case 22:
+{ KEYWORD_RETURN(CASE); }
+	YY_BREAK
+case 25:
 YY_RULE_SETUP
 #line 191 "lex.ll"
-{ KEYWORD_RETURN(BOOL); }				// C99
-	YY_BREAK
-case 23:
+{ KEYWORD_RETURN(CATCH); }				// CFA
+	YY_BREAK
+case 26:
 YY_RULE_SETUP
 #line 192 "lex.ll"
-{ KEYWORD_RETURN(BREAK); }
-	YY_BREAK
-case 24:
+{ KEYWORD_RETURN(CATCHRESUME); }		// CFA
+	YY_BREAK
+case 27:
 YY_RULE_SETUP
 #line 193 "lex.ll"
-{ KEYWORD_RETURN(CASE); }
-	YY_BREAK
-case 25:
+{ KEYWORD_RETURN(CHAR); }
+	YY_BREAK
+case 28:
 YY_RULE_SETUP
 #line 194 "lex.ll"
-{ KEYWORD_RETURN(CATCH); }				// CFA
-	YY_BREAK
-case 26:
+{ KEYWORD_RETURN(CHOOSE); }				// CFA
+	YY_BREAK
+case 29:
 YY_RULE_SETUP
 #line 195 "lex.ll"
-{ KEYWORD_RETURN(CATCHRESUME); }		// CFA
-	YY_BREAK
-case 27:
+{ KEYWORD_RETURN(COMPLEX); }			// C99
+	YY_BREAK
+case 30:
 YY_RULE_SETUP
 #line 196 "lex.ll"
-{ KEYWORD_RETURN(CHAR); }
-	YY_BREAK
-case 28:
+{ KEYWORD_RETURN(COMPLEX); }			// GCC
+	YY_BREAK
+case 31:
 YY_RULE_SETUP
 #line 197 "lex.ll"
-{ KEYWORD_RETURN(CHOOSE); }				// CFA
-	YY_BREAK
-case 29:
+{ KEYWORD_RETURN(COMPLEX); }			// GCC
+	YY_BREAK
+case 32:
 YY_RULE_SETUP
 #line 198 "lex.ll"
-{ KEYWORD_RETURN(COMPLEX); }			// C99
-	YY_BREAK
-case 30:
+{ KEYWORD_RETURN(CONST); }
+	YY_BREAK
+case 33:
 YY_RULE_SETUP
 #line 199 "lex.ll"
-{ KEYWORD_RETURN(COMPLEX); }			// GCC
-	YY_BREAK
-case 31:
+{ KEYWORD_RETURN(CONST); }				// GCC
+	YY_BREAK
+case 34:
 YY_RULE_SETUP
 #line 200 "lex.ll"
-{ KEYWORD_RETURN(COMPLEX); }			// GCC
-	YY_BREAK
-case 32:
+{ KEYWORD_RETURN(CONST); }				// GCC
+	YY_BREAK
+case 35:
 YY_RULE_SETUP
 #line 201 "lex.ll"
-{ KEYWORD_RETURN(CONST); }
-	YY_BREAK
-case 33:
+{ KEYWORD_RETURN(CONTINUE); }
+	YY_BREAK
+case 36:
 YY_RULE_SETUP
 #line 202 "lex.ll"
-{ KEYWORD_RETURN(CONST); }				// GCC
-	YY_BREAK
-case 34:
+{ KEYWORD_RETURN(DEFAULT); }
+	YY_BREAK
+case 37:
 YY_RULE_SETUP
 #line 203 "lex.ll"
-{ KEYWORD_RETURN(CONST); }				// GCC
-	YY_BREAK
-case 35:
+{ KEYWORD_RETURN(DISABLE); }			// CFA
+	YY_BREAK
+case 38:
 YY_RULE_SETUP
 #line 204 "lex.ll"
-{ KEYWORD_RETURN(CONTINUE); }
-	YY_BREAK
-case 36:
+{ KEYWORD_RETURN(DO); }
+	YY_BREAK
+case 39:
 YY_RULE_SETUP
 #line 205 "lex.ll"
-{ KEYWORD_RETURN(DEFAULT); }
-	YY_BREAK
-case 37:
+{ KEYWORD_RETURN(DOUBLE); }
+	YY_BREAK
+case 40:
 YY_RULE_SETUP
 #line 206 "lex.ll"
-{ KEYWORD_RETURN(DISABLE); }			// CFA
-	YY_BREAK
-case 38:
+{ KEYWORD_RETURN(DTYPE); }				// CFA
+	YY_BREAK
+case 41:
 YY_RULE_SETUP
 #line 207 "lex.ll"
-{ KEYWORD_RETURN(DO); }
-	YY_BREAK
-case 39:
+{ KEYWORD_RETURN(ELSE); }
+	YY_BREAK
+case 42:
 YY_RULE_SETUP
 #line 208 "lex.ll"
-{ KEYWORD_RETURN(DOUBLE); }
-	YY_BREAK
-case 40:
+{ KEYWORD_RETURN(ENABLE); }				// CFA
+	YY_BREAK
+case 43:
 YY_RULE_SETUP
 #line 209 "lex.ll"
-{ KEYWORD_RETURN(DTYPE); }				// CFA
-	YY_BREAK
-case 41:
+{ KEYWORD_RETURN(ENUM); }
+	YY_BREAK
+case 44:
 YY_RULE_SETUP
 #line 210 "lex.ll"
-{ KEYWORD_RETURN(ELSE); }
-	YY_BREAK
-case 42:
+{ KEYWORD_RETURN(EXTENSION); }			// GCC
+	YY_BREAK
+case 45:
 YY_RULE_SETUP
 #line 211 "lex.ll"
-{ KEYWORD_RETURN(ENABLE); }				// CFA
-	YY_BREAK
-case 43:
+{ KEYWORD_RETURN(EXTERN); }
+	YY_BREAK
+case 46:
 YY_RULE_SETUP
 #line 212 "lex.ll"
-{ KEYWORD_RETURN(ENUM); }
-	YY_BREAK
-case 44:
+{ KEYWORD_RETURN(FALLTHRU); }			// CFA
+	YY_BREAK
+case 47:
 YY_RULE_SETUP
 #line 213 "lex.ll"
-{ KEYWORD_RETURN(EXTENSION); }			// GCC
-	YY_BREAK
-case 45:
+{ KEYWORD_RETURN(FALLTHRU); }			// CFA
+	YY_BREAK
+case 48:
 YY_RULE_SETUP
 #line 214 "lex.ll"
-{ KEYWORD_RETURN(EXTERN); }
-	YY_BREAK
-case 46:
+{ KEYWORD_RETURN(FINALLY); }			// CFA
+	YY_BREAK
+case 49:
 YY_RULE_SETUP
 #line 215 "lex.ll"
-{ KEYWORD_RETURN(FALLTHRU); }			// CFA
-	YY_BREAK
-case 47:
+{ KEYWORD_RETURN(FLOAT); }
+	YY_BREAK
+case 50:
 YY_RULE_SETUP
 #line 216 "lex.ll"
-{ KEYWORD_RETURN(FALLTHRU); }			// CFA
-	YY_BREAK
-case 48:
+{ KEYWORD_RETURN(FLOAT); }				// GCC
+	YY_BREAK
+case 51:
 YY_RULE_SETUP
 #line 217 "lex.ll"
-{ KEYWORD_RETURN(FINALLY); }			// CFA
-	YY_BREAK
-case 49:
+{ KEYWORD_RETURN(FOR); }
+	YY_BREAK
+case 52:
 YY_RULE_SETUP
 #line 218 "lex.ll"
-{ KEYWORD_RETURN(FLOAT); }
-	YY_BREAK
-case 50:
+{ KEYWORD_RETURN(FORALL); }				// CFA
+	YY_BREAK
+case 53:
 YY_RULE_SETUP
 #line 219 "lex.ll"
-{ KEYWORD_RETURN(FLOAT); }				// GCC
-	YY_BREAK
-case 51:
+{ KEYWORD_RETURN(FORTRAN); }
+	YY_BREAK
+case 54:
 YY_RULE_SETUP
 #line 220 "lex.ll"
-{ KEYWORD_RETURN(FOR); }
-	YY_BREAK
-case 52:
+{ KEYWORD_RETURN(FTYPE); }				// CFA
+	YY_BREAK
+case 55:
 YY_RULE_SETUP
 #line 221 "lex.ll"
-{ KEYWORD_RETURN(FORALL); }				// CFA
-	YY_BREAK
-case 53:
+{ KEYWORD_RETURN(GENERIC); }			// C11
+	YY_BREAK
+case 56:
 YY_RULE_SETUP
 #line 222 "lex.ll"
-{ KEYWORD_RETURN(FORTRAN); }
-	YY_BREAK
-case 54:
+{ KEYWORD_RETURN(GOTO); }
+	YY_BREAK
+case 57:
 YY_RULE_SETUP
 #line 223 "lex.ll"
-{ KEYWORD_RETURN(FTYPE); }				// CFA
-	YY_BREAK
-case 55:
+{ KEYWORD_RETURN(IF); }
+	YY_BREAK
+case 58:
 YY_RULE_SETUP
 #line 224 "lex.ll"
-{ KEYWORD_RETURN(GENERIC); }			// C11
-	YY_BREAK
-case 56:
+{ KEYWORD_RETURN(IMAGINARY); }			// C99
+	YY_BREAK
+case 59:
 YY_RULE_SETUP
 #line 225 "lex.ll"
-{ KEYWORD_RETURN(GOTO); }
-	YY_BREAK
-case 57:
+{ KEYWORD_RETURN(IMAGINARY); }			// GCC
+	YY_BREAK
+case 60:
 YY_RULE_SETUP
 #line 226 "lex.ll"
-{ KEYWORD_RETURN(IF); }
-	YY_BREAK
-case 58:
+{ KEYWORD_RETURN(IMAGINARY); }			// GCC
+	YY_BREAK
+case 61:
 YY_RULE_SETUP
 #line 227 "lex.ll"
-{ KEYWORD_RETURN(IMAGINARY); }			// C99
-	YY_BREAK
-case 59:
+{ KEYWORD_RETURN(INLINE); }				// C99
+	YY_BREAK
+case 62:
 YY_RULE_SETUP
 #line 228 "lex.ll"
-{ KEYWORD_RETURN(IMAGINARY); }			// GCC
-	YY_BREAK
-case 60:
+{ KEYWORD_RETURN(INLINE); }				// GCC
+	YY_BREAK
+case 63:
 YY_RULE_SETUP
 #line 229 "lex.ll"
-{ KEYWORD_RETURN(IMAGINARY); }			// GCC
-	YY_BREAK
-case 61:
+{ KEYWORD_RETURN(INLINE); }				// GCC
+	YY_BREAK
+case 64:
 YY_RULE_SETUP
 #line 230 "lex.ll"
-{ KEYWORD_RETURN(INLINE); }				// C99
-	YY_BREAK
-case 62:
+{ KEYWORD_RETURN(INT); }
+	YY_BREAK
+case 65:
 YY_RULE_SETUP
 #line 231 "lex.ll"
-{ KEYWORD_RETURN(INLINE); }				// GCC
-	YY_BREAK
-case 63:
+{ KEYWORD_RETURN(INT); }				// GCC
+	YY_BREAK
+case 66:
 YY_RULE_SETUP
 #line 232 "lex.ll"
-{ KEYWORD_RETURN(INLINE); }				// GCC
-	YY_BREAK
-case 64:
+{ KEYWORD_RETURN(LABEL); }				// GCC
+	YY_BREAK
+case 67:
 YY_RULE_SETUP
 #line 233 "lex.ll"
-{ KEYWORD_RETURN(INT); }
-	YY_BREAK
-case 65:
+{ KEYWORD_RETURN(LONG); }
+	YY_BREAK
+case 68:
 YY_RULE_SETUP
 #line 234 "lex.ll"
-{ KEYWORD_RETURN(INT); }				// GCC
-	YY_BREAK
-case 66:
+{ KEYWORD_RETURN(LVALUE); }				// CFA
+	YY_BREAK
+case 69:
 YY_RULE_SETUP
 #line 235 "lex.ll"
-{ KEYWORD_RETURN(LABEL); }				// GCC
-	YY_BREAK
-case 67:
+{ KEYWORD_RETURN(NORETURN); }			// C11
+	YY_BREAK
+case 70:
 YY_RULE_SETUP
 #line 236 "lex.ll"
-{ KEYWORD_RETURN(LONG); }
-	YY_BREAK
-case 68:
+{ KEYWORD_RETURN(OFFSETOF); }		// GCC
+	YY_BREAK
+case 71:
 YY_RULE_SETUP
 #line 237 "lex.ll"
-{ KEYWORD_RETURN(LVALUE); }				// CFA
-	YY_BREAK
-case 69:
+{ KEYWORD_RETURN(OTYPE); }				// CFA
+	YY_BREAK
+case 72:
 YY_RULE_SETUP
 #line 238 "lex.ll"
-{ KEYWORD_RETURN(NORETURN); }			// C11
-	YY_BREAK
-case 70:
+{ KEYWORD_RETURN(REGISTER); }
+	YY_BREAK
+case 73:
 YY_RULE_SETUP
 #line 239 "lex.ll"
-{ KEYWORD_RETURN(OFFSETOF); }		// GCC
-	YY_BREAK
-case 71:
+{ KEYWORD_RETURN(RESTRICT); }			// C99
+	YY_BREAK
+case 74:
 YY_RULE_SETUP
 #line 240 "lex.ll"
-{ KEYWORD_RETURN(OTYPE); }				// CFA
-	YY_BREAK
-case 72:
+{ KEYWORD_RETURN(RESTRICT); }			// GCC
+	YY_BREAK
+case 75:
 YY_RULE_SETUP
 #line 241 "lex.ll"
-{ KEYWORD_RETURN(REGISTER); }
-	YY_BREAK
-case 73:
+{ KEYWORD_RETURN(RESTRICT); }			// GCC
+	YY_BREAK
+case 76:
 YY_RULE_SETUP
 #line 242 "lex.ll"
-{ KEYWORD_RETURN(RESTRICT); }			// C99
-	YY_BREAK
-case 74:
+{ KEYWORD_RETURN(RETURN); }
+	YY_BREAK
+case 77:
 YY_RULE_SETUP
 #line 243 "lex.ll"
-{ KEYWORD_RETURN(RESTRICT); }			// GCC
-	YY_BREAK
-case 75:
+{ KEYWORD_RETURN(SHORT); }
+	YY_BREAK
+case 78:
 YY_RULE_SETUP
 #line 244 "lex.ll"
-{ KEYWORD_RETURN(RESTRICT); }			// GCC
-	YY_BREAK
-case 76:
+{ KEYWORD_RETURN(SIGNED); }
+	YY_BREAK
+case 79:
 YY_RULE_SETUP
 #line 245 "lex.ll"
-{ KEYWORD_RETURN(RETURN); }
-	YY_BREAK
-case 77:
+{ KEYWORD_RETURN(SIGNED); }				// GCC
+	YY_BREAK
+case 80:
 YY_RULE_SETUP
 #line 246 "lex.ll"
-{ KEYWORD_RETURN(SHORT); }
-	YY_BREAK
-case 78:
+{ KEYWORD_RETURN(SIGNED); }				// GCC
+	YY_BREAK
+case 81:
 YY_RULE_SETUP
 #line 247 "lex.ll"
-{ KEYWORD_RETURN(SIGNED); }
-	YY_BREAK
-case 79:
+{ KEYWORD_RETURN(SIZEOF); }
+	YY_BREAK
+case 82:
 YY_RULE_SETUP
 #line 248 "lex.ll"
-{ KEYWORD_RETURN(SIGNED); }				// GCC
-	YY_BREAK
-case 80:
+{ KEYWORD_RETURN(STATIC); }
+	YY_BREAK
+case 83:
 YY_RULE_SETUP
 #line 249 "lex.ll"
-{ KEYWORD_RETURN(SIGNED); }				// GCC
-	YY_BREAK
-case 81:
+{ KEYWORD_RETURN(STATICASSERT); }		// C11
+	YY_BREAK
+case 84:
 YY_RULE_SETUP
 #line 250 "lex.ll"
-{ KEYWORD_RETURN(SIZEOF); }
-	YY_BREAK
-case 82:
+{ KEYWORD_RETURN(STRUCT); }
+	YY_BREAK
+case 85:
 YY_RULE_SETUP
 #line 251 "lex.ll"
-{ KEYWORD_RETURN(STATIC); }
-	YY_BREAK
-case 83:
+{ KEYWORD_RETURN(SWITCH); }
+	YY_BREAK
+case 86:
 YY_RULE_SETUP
 #line 252 "lex.ll"
-{ KEYWORD_RETURN(STATICASSERT); }		// C11
-	YY_BREAK
-case 84:
+{ KEYWORD_RETURN(THREADLOCAL); }		// C11
+	YY_BREAK
+case 87:
 YY_RULE_SETUP
 #line 253 "lex.ll"
-{ KEYWORD_RETURN(STRUCT); }
-	YY_BREAK
-case 85:
+{ KEYWORD_RETURN(THROW); }				// CFA
+	YY_BREAK
+case 88:
 YY_RULE_SETUP
 #line 254 "lex.ll"
-{ KEYWORD_RETURN(SWITCH); }
-	YY_BREAK
-case 86:
+{ KEYWORD_RETURN(THROWRESUME); }		// CFA
+	YY_BREAK
+case 89:
 YY_RULE_SETUP
 #line 255 "lex.ll"
-{ KEYWORD_RETURN(THREADLOCAL); }		// C11
-	YY_BREAK
-case 87:
+{ KEYWORD_RETURN(TRAIT); }				// CFA
+	YY_BREAK
+case 90:
 YY_RULE_SETUP
 #line 256 "lex.ll"
-{ KEYWORD_RETURN(THROW); }				// CFA
-	YY_BREAK
-case 88:
+{ KEYWORD_RETURN(TRY); }				// CFA
+	YY_BREAK
+case 91:
 YY_RULE_SETUP
 #line 257 "lex.ll"
-{ KEYWORD_RETURN(THROWRESUME); }		// CFA
-	YY_BREAK
-case 89:
+{ KEYWORD_RETURN(TYPEDEF); }
+	YY_BREAK
+case 92:
 YY_RULE_SETUP
 #line 258 "lex.ll"
-{ KEYWORD_RETURN(TRAIT); }				// CFA
-	YY_BREAK
-case 90:
+{ KEYWORD_RETURN(TYPEOF); }				// GCC
+	YY_BREAK
+case 93:
 YY_RULE_SETUP
 #line 259 "lex.ll"
-{ KEYWORD_RETURN(TRY); }				// CFA
-	YY_BREAK
-case 91:
+{ KEYWORD_RETURN(TYPEOF); }				// GCC
+	YY_BREAK
+case 94:
 YY_RULE_SETUP
 #line 260 "lex.ll"
-{ KEYWORD_RETURN(TYPEDEF); }
-	YY_BREAK
-case 92:
+{ KEYWORD_RETURN(TYPEOF); }				// GCC
+	YY_BREAK
+case 95:
 YY_RULE_SETUP
 #line 261 "lex.ll"
-{ KEYWORD_RETURN(TYPEOF); }				// GCC
-	YY_BREAK
-case 93:
+{ KEYWORD_RETURN(UNION); }
+	YY_BREAK
+case 96:
 YY_RULE_SETUP
 #line 262 "lex.ll"
-{ KEYWORD_RETURN(TYPEOF); }				// GCC
-	YY_BREAK
-case 94:
+{ KEYWORD_RETURN(UNSIGNED); }
+	YY_BREAK
+case 97:
 YY_RULE_SETUP
 #line 263 "lex.ll"
-{ KEYWORD_RETURN(TYPEOF); }				// GCC
-	YY_BREAK
-case 95:
+{ KEYWORD_RETURN(VALIST); }			// GCC
+	YY_BREAK
+case 98:
 YY_RULE_SETUP
 #line 264 "lex.ll"
-{ KEYWORD_RETURN(UNION); }
-	YY_BREAK
-case 96:
+{ KEYWORD_RETURN(VOID); }
+	YY_BREAK
+case 99:
 YY_RULE_SETUP
 #line 265 "lex.ll"
-{ KEYWORD_RETURN(UNSIGNED); }
-	YY_BREAK
-case 97:
+{ KEYWORD_RETURN(VOLATILE); }
+	YY_BREAK
+case 100:
 YY_RULE_SETUP
 #line 266 "lex.ll"
-{ KEYWORD_RETURN(VALIST); }			// GCC
-	YY_BREAK
-case 98:
+{ KEYWORD_RETURN(VOLATILE); }			// GCC
+	YY_BREAK
+case 101:
 YY_RULE_SETUP
 #line 267 "lex.ll"
-{ KEYWORD_RETURN(VOID); }
-	YY_BREAK
-case 99:
+{ KEYWORD_RETURN(VOLATILE); }			// GCC
+	YY_BREAK
+case 102:
 YY_RULE_SETUP
 #line 268 "lex.ll"
-{ KEYWORD_RETURN(VOLATILE); }
-	YY_BREAK
-case 100:
-YY_RULE_SETUP
-#line 269 "lex.ll"
-{ KEYWORD_RETURN(VOLATILE); }			// GCC
-	YY_BREAK
-case 101:
-YY_RULE_SETUP
-#line 270 "lex.ll"
-{ KEYWORD_RETURN(VOLATILE); }			// GCC
-	YY_BREAK
-case 102:
-YY_RULE_SETUP
-#line 271 "lex.ll"
 { KEYWORD_RETURN(WHILE); }
 	YY_BREAK
@@ -2363,25 +2362,25 @@
 case 103:
 YY_RULE_SETUP
+#line 271 "lex.ll"
+{ IDENTIFIER_RETURN(); }
+	YY_BREAK
+case 104:
+YY_RULE_SETUP
+#line 272 "lex.ll"
+{ ATTRIBUTE_RETURN(); }
+	YY_BREAK
+case 105:
+YY_RULE_SETUP
+#line 273 "lex.ll"
+{ BEGIN BKQUOTE; }
+	YY_BREAK
+case 106:
+YY_RULE_SETUP
 #line 274 "lex.ll"
 { IDENTIFIER_RETURN(); }
 	YY_BREAK
-case 104:
+case 107:
 YY_RULE_SETUP
 #line 275 "lex.ll"
-{ ATTRIBUTE_RETURN(); }
-	YY_BREAK
-case 105:
-YY_RULE_SETUP
-#line 276 "lex.ll"
-{ BEGIN BKQUOTE; }
-	YY_BREAK
-case 106:
-YY_RULE_SETUP
-#line 277 "lex.ll"
-{ IDENTIFIER_RETURN(); }
-	YY_BREAK
-case 107:
-YY_RULE_SETUP
-#line 278 "lex.ll"
 { BEGIN 0; }
 	YY_BREAK
@@ -2389,35 +2388,35 @@
 case 108:
 YY_RULE_SETUP
+#line 278 "lex.ll"
+{ NUMERIC_RETURN(ZERO); }				// CFA
+	YY_BREAK
+case 109:
+YY_RULE_SETUP
+#line 279 "lex.ll"
+{ NUMERIC_RETURN(ONE); }				// CFA
+	YY_BREAK
+case 110:
+YY_RULE_SETUP
+#line 280 "lex.ll"
+{ NUMERIC_RETURN(INTEGERconstant); }
+	YY_BREAK
+case 111:
+YY_RULE_SETUP
 #line 281 "lex.ll"
-{ NUMERIC_RETURN(ZERO); }				// CFA
-	YY_BREAK
-case 109:
+{ NUMERIC_RETURN(INTEGERconstant); }
+	YY_BREAK
+case 112:
 YY_RULE_SETUP
 #line 282 "lex.ll"
-{ NUMERIC_RETURN(ONE); }				// CFA
-	YY_BREAK
-case 110:
+{ NUMERIC_RETURN(INTEGERconstant); }
+	YY_BREAK
+case 113:
 YY_RULE_SETUP
 #line 283 "lex.ll"
-{ NUMERIC_RETURN(INTEGERconstant); }
-	YY_BREAK
-case 111:
+{ NUMERIC_RETURN(FLOATINGconstant); }
+	YY_BREAK
+case 114:
 YY_RULE_SETUP
 #line 284 "lex.ll"
-{ NUMERIC_RETURN(INTEGERconstant); }
-	YY_BREAK
-case 112:
-YY_RULE_SETUP
-#line 285 "lex.ll"
-{ NUMERIC_RETURN(INTEGERconstant); }
-	YY_BREAK
-case 113:
-YY_RULE_SETUP
-#line 286 "lex.ll"
-{ NUMERIC_RETURN(FLOATINGconstant); }
-	YY_BREAK
-case 114:
-YY_RULE_SETUP
-#line 287 "lex.ll"
 { NUMERIC_RETURN(FLOATINGconstant); }
 	YY_BREAK
@@ -2425,10 +2424,10 @@
 case 115:
 YY_RULE_SETUP
-#line 290 "lex.ll"
+#line 287 "lex.ll"
 { BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 291 "lex.ll"
+#line 288 "lex.ll"
 { strtext->append( yytext, yyleng ); }
 	YY_BREAK
@@ -2436,5 +2435,5 @@
 /* rule 117 can match eol */
 YY_RULE_SETUP
-#line 292 "lex.ll"
+#line 289 "lex.ll"
 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
 	YY_BREAK
@@ -2443,10 +2442,10 @@
 case 118:
 YY_RULE_SETUP
-#line 296 "lex.ll"
+#line 293 "lex.ll"
 { BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 297 "lex.ll"
+#line 294 "lex.ll"
 { strtext->append( yytext, yyleng ); }
 	YY_BREAK
@@ -2454,5 +2453,5 @@
 /* rule 120 can match eol */
 YY_RULE_SETUP
-#line 298 "lex.ll"
+#line 295 "lex.ll"
 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
 	YY_BREAK
@@ -2461,5 +2460,5 @@
 case 121:
 YY_RULE_SETUP
-#line 302 "lex.ll"
+#line 299 "lex.ll"
 { rm_underscore(); strtext->append( yytext, yyleng ); }
 	YY_BREAK
@@ -2467,10 +2466,10 @@
 /* rule 122 can match eol */
 YY_RULE_SETUP
-#line 303 "lex.ll"
+#line 300 "lex.ll"
 {}						// continuation (ALSO HANDLED BY CPP)
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 304 "lex.ll"
+#line 301 "lex.ll"
 { strtext->append( yytext, yyleng ); } // unknown escape character
 	YY_BREAK
@@ -2478,55 +2477,55 @@
 case 124:
 YY_RULE_SETUP
+#line 304 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 125:
+YY_RULE_SETUP
+#line 305 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 126:
+YY_RULE_SETUP
+#line 306 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 127:
+YY_RULE_SETUP
 #line 307 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 125:
+case 128:
 YY_RULE_SETUP
 #line 308 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 126:
+case 129:
 YY_RULE_SETUP
 #line 309 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 127:
+case 130:
 YY_RULE_SETUP
 #line 310 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 128:
+{ ASCIIOP_RETURN(); }					// also operator
+	YY_BREAK
+case 131:
 YY_RULE_SETUP
 #line 311 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 129:
+case 132:
 YY_RULE_SETUP
 #line 312 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 130:
+case 133:
 YY_RULE_SETUP
 #line 313 "lex.ll"
 { ASCIIOP_RETURN(); }					// also operator
 	YY_BREAK
-case 131:
+case 134:
 YY_RULE_SETUP
 #line 314 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 132:
-YY_RULE_SETUP
-#line 315 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 133:
-YY_RULE_SETUP
-#line 316 "lex.ll"
-{ ASCIIOP_RETURN(); }					// also operator
-	YY_BREAK
-case 134:
-YY_RULE_SETUP
-#line 317 "lex.ll"
 { NAMEDOP_RETURN(ELLIPSIS); }
 	YY_BREAK
@@ -2534,20 +2533,20 @@
 case 135:
 YY_RULE_SETUP
+#line 317 "lex.ll"
+{ RETURN_VAL('['); }
+	YY_BREAK
+case 136:
+YY_RULE_SETUP
+#line 318 "lex.ll"
+{ RETURN_VAL(']'); }
+	YY_BREAK
+case 137:
+YY_RULE_SETUP
+#line 319 "lex.ll"
+{ RETURN_VAL('{'); }
+	YY_BREAK
+case 138:
+YY_RULE_SETUP
 #line 320 "lex.ll"
-{ RETURN_VAL('['); }
-	YY_BREAK
-case 136:
-YY_RULE_SETUP
-#line 321 "lex.ll"
-{ RETURN_VAL(']'); }
-	YY_BREAK
-case 137:
-YY_RULE_SETUP
-#line 322 "lex.ll"
-{ RETURN_VAL('{'); }
-	YY_BREAK
-case 138:
-YY_RULE_SETUP
-#line 323 "lex.ll"
 { RETURN_VAL('}'); }
 	YY_BREAK
@@ -2555,180 +2554,180 @@
 case 139:
 YY_RULE_SETUP
+#line 323 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 140:
+YY_RULE_SETUP
+#line 324 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 141:
+YY_RULE_SETUP
+#line 325 "lex.ll"
+{ ASCIIOP_RETURN(); }
+	YY_BREAK
+case 142:
+YY_RULE_SETUP
 #line 326 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 140:
+case 143:
 YY_RULE_SETUP
 #line 327 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 141:
+case 144:
 YY_RULE_SETUP
 #line 328 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 142:
+case 145:
 YY_RULE_SETUP
 #line 329 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 143:
+case 146:
 YY_RULE_SETUP
 #line 330 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 144:
+case 147:
 YY_RULE_SETUP
 #line 331 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 145:
+case 148:
 YY_RULE_SETUP
 #line 332 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 146:
+case 149:
 YY_RULE_SETUP
 #line 333 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 147:
+case 150:
 YY_RULE_SETUP
 #line 334 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 148:
+case 151:
 YY_RULE_SETUP
 #line 335 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 149:
+case 152:
 YY_RULE_SETUP
 #line 336 "lex.ll"
 { ASCIIOP_RETURN(); }
 	YY_BREAK
-case 150:
-YY_RULE_SETUP
-#line 337 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 151:
+case 153:
 YY_RULE_SETUP
 #line 338 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 152:
+{ NAMEDOP_RETURN(ICR); }
+	YY_BREAK
+case 154:
 YY_RULE_SETUP
 #line 339 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 153:
+{ NAMEDOP_RETURN(DECR); }
+	YY_BREAK
+case 155:
+YY_RULE_SETUP
+#line 340 "lex.ll"
+{ NAMEDOP_RETURN(EQ); }
+	YY_BREAK
+case 156:
 YY_RULE_SETUP
 #line 341 "lex.ll"
-{ NAMEDOP_RETURN(ICR); }
-	YY_BREAK
-case 154:
+{ NAMEDOP_RETURN(NE); }
+	YY_BREAK
+case 157:
 YY_RULE_SETUP
 #line 342 "lex.ll"
-{ NAMEDOP_RETURN(DECR); }
-	YY_BREAK
-case 155:
+{ NAMEDOP_RETURN(LS); }
+	YY_BREAK
+case 158:
 YY_RULE_SETUP
 #line 343 "lex.ll"
-{ NAMEDOP_RETURN(EQ); }
-	YY_BREAK
-case 156:
+{ NAMEDOP_RETURN(RS); }
+	YY_BREAK
+case 159:
 YY_RULE_SETUP
 #line 344 "lex.ll"
-{ NAMEDOP_RETURN(NE); }
-	YY_BREAK
-case 157:
+{ NAMEDOP_RETURN(LE); }
+	YY_BREAK
+case 160:
 YY_RULE_SETUP
 #line 345 "lex.ll"
-{ NAMEDOP_RETURN(LS); }
-	YY_BREAK
-case 158:
+{ NAMEDOP_RETURN(GE); }
+	YY_BREAK
+case 161:
 YY_RULE_SETUP
 #line 346 "lex.ll"
-{ NAMEDOP_RETURN(RS); }
-	YY_BREAK
-case 159:
+{ NAMEDOP_RETURN(ANDAND); }
+	YY_BREAK
+case 162:
 YY_RULE_SETUP
 #line 347 "lex.ll"
-{ NAMEDOP_RETURN(LE); }
-	YY_BREAK
-case 160:
+{ NAMEDOP_RETURN(OROR); }
+	YY_BREAK
+case 163:
 YY_RULE_SETUP
 #line 348 "lex.ll"
-{ NAMEDOP_RETURN(GE); }
-	YY_BREAK
-case 161:
+{ NAMEDOP_RETURN(ARROW); }
+	YY_BREAK
+case 164:
 YY_RULE_SETUP
 #line 349 "lex.ll"
-{ NAMEDOP_RETURN(ANDAND); }
-	YY_BREAK
-case 162:
+{ NAMEDOP_RETURN(PLUSassign); }
+	YY_BREAK
+case 165:
 YY_RULE_SETUP
 #line 350 "lex.ll"
-{ NAMEDOP_RETURN(OROR); }
-	YY_BREAK
-case 163:
+{ NAMEDOP_RETURN(MINUSassign); }
+	YY_BREAK
+case 166:
 YY_RULE_SETUP
 #line 351 "lex.ll"
-{ NAMEDOP_RETURN(ARROW); }
-	YY_BREAK
-case 164:
+{ NAMEDOP_RETURN(MULTassign); }
+	YY_BREAK
+case 167:
 YY_RULE_SETUP
 #line 352 "lex.ll"
-{ NAMEDOP_RETURN(PLUSassign); }
-	YY_BREAK
-case 165:
+{ NAMEDOP_RETURN(DIVassign); }
+	YY_BREAK
+case 168:
 YY_RULE_SETUP
 #line 353 "lex.ll"
-{ NAMEDOP_RETURN(MINUSassign); }
-	YY_BREAK
-case 166:
+{ NAMEDOP_RETURN(MODassign); }
+	YY_BREAK
+case 169:
 YY_RULE_SETUP
 #line 354 "lex.ll"
-{ NAMEDOP_RETURN(MULTassign); }
-	YY_BREAK
-case 167:
+{ NAMEDOP_RETURN(ANDassign); }
+	YY_BREAK
+case 170:
 YY_RULE_SETUP
 #line 355 "lex.ll"
-{ NAMEDOP_RETURN(DIVassign); }
-	YY_BREAK
-case 168:
+{ NAMEDOP_RETURN(ORassign); }
+	YY_BREAK
+case 171:
 YY_RULE_SETUP
 #line 356 "lex.ll"
-{ NAMEDOP_RETURN(MODassign); }
-	YY_BREAK
-case 169:
+{ NAMEDOP_RETURN(ERassign); }
+	YY_BREAK
+case 172:
 YY_RULE_SETUP
 #line 357 "lex.ll"
-{ NAMEDOP_RETURN(ANDassign); }
-	YY_BREAK
-case 170:
+{ NAMEDOP_RETURN(LSassign); }
+	YY_BREAK
+case 173:
 YY_RULE_SETUP
 #line 358 "lex.ll"
-{ NAMEDOP_RETURN(ORassign); }
-	YY_BREAK
-case 171:
-YY_RULE_SETUP
-#line 359 "lex.ll"
-{ NAMEDOP_RETURN(ERassign); }
-	YY_BREAK
-case 172:
+{ NAMEDOP_RETURN(RSassign); }
+	YY_BREAK
+case 174:
 YY_RULE_SETUP
 #line 360 "lex.ll"
-{ NAMEDOP_RETURN(LSassign); }
-	YY_BREAK
-case 173:
-YY_RULE_SETUP
-#line 361 "lex.ll"
-{ NAMEDOP_RETURN(RSassign); }
-	YY_BREAK
-case 174:
-YY_RULE_SETUP
-#line 363 "lex.ll"
 { NAMEDOP_RETURN(ATassign); }			// CFA
 	YY_BREAK
@@ -2736,20 +2735,20 @@
 case 175:
 YY_RULE_SETUP
+#line 363 "lex.ll"
+{ IDENTIFIER_RETURN(); }				// unary
+	YY_BREAK
+case 176:
+YY_RULE_SETUP
+#line 364 "lex.ll"
+{ IDENTIFIER_RETURN(); }
+	YY_BREAK
+case 177:
+YY_RULE_SETUP
+#line 365 "lex.ll"
+{ IDENTIFIER_RETURN(); }
+	YY_BREAK
+case 178:
+YY_RULE_SETUP
 #line 366 "lex.ll"
-{ IDENTIFIER_RETURN(); }				// unary
-	YY_BREAK
-case 176:
-YY_RULE_SETUP
-#line 367 "lex.ll"
-{ IDENTIFIER_RETURN(); }
-	YY_BREAK
-case 177:
-YY_RULE_SETUP
-#line 368 "lex.ll"
-{ IDENTIFIER_RETURN(); }
-	YY_BREAK
-case 178:
-YY_RULE_SETUP
-#line 369 "lex.ll"
 { IDENTIFIER_RETURN(); }		// binary
 	YY_BREAK
@@ -2782,5 +2781,5 @@
 case 179:
 YY_RULE_SETUP
-#line 396 "lex.ll"
+#line 393 "lex.ll"
 {
 	// 1 or 2 character unary operator ?
@@ -2797,13 +2796,13 @@
 case 180:
 YY_RULE_SETUP
-#line 408 "lex.ll"
+#line 405 "lex.ll"
 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
 	YY_BREAK
 case 181:
 YY_RULE_SETUP
-#line 410 "lex.ll"
+#line 407 "lex.ll"
 ECHO;
 	YY_BREAK
-#line 2808 "Parser/lex.cc"
+#line 2807 "Parser/lex.cc"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(COMMENT):
@@ -3780,5 +3779,5 @@
 #define YYTABLES_NAME "yytables"
 
-#line 410 "lex.ll"
+#line 407 "lex.ll"
 
 
Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision faddbd88e10faf4096d269d1ac28b46bfa0f57aa)
+++ src/Parser/lex.ll	(revision 315f6345fd4468ec768bbc8c18e049cf434bc841)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Wed Aug 24 13:27:04 2016
- * Update Count     : 487
+ * Last Modified On : Tue Oct 18 22:19:37 2016
+ * Update Count     : 488
  */
 
@@ -71,7 +71,4 @@
 				// identifier, GCC: $ in identifier
 identifier ([a-zA-Z_$]|{universal_char})([0-9a-zA-Z_$]|{universal_char})*
-
-				// quoted identifier
-quoted_identifier "`"{identifier}"`"
 
 				// attribute identifier, GCC: $ in identifier
Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision faddbd88e10faf4096d269d1ac28b46bfa0f57aa)
+++ src/Parser/parser.cc	(revision 315f6345fd4468ec768bbc8c18e049cf434bc841)
@@ -1027,76 +1027,76 @@
      358,   360,   362,   367,   368,   374,   378,   380,   381,   382,
      384,   385,   387,   389,   391,   400,   401,   407,   408,   412,
-     413,   417,   421,   423,   425,   427,   432,   433,   437,   440,
-     442,   444,   449,   462,   464,   466,   468,   470,   472,   474,
-     476,   478,   480,   482,   489,   490,   496,   497,   498,   499,
-     503,   504,   506,   511,   512,   514,   516,   521,   522,   524,
-     529,   530,   532,   537,   538,   540,   542,   544,   549,   550,
-     552,   557,   558,   563,   564,   569,   570,   575,   576,   581,
-     582,   587,   588,   591,   593,   598,   603,   604,   606,   612,
-     613,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-     626,   627,   628,   634,   636,   638,   640,   645,   646,   651,
-     652,   658,   659,   665,   666,   667,   668,   669,   670,   671,
-     672,   673,   683,   690,   692,   702,   703,   708,   710,   716,
-     718,   722,   723,   728,   733,   736,   738,   740,   750,   752,
-     763,   764,   766,   770,   772,   776,   777,   782,   783,   787,
-     792,   793,   797,   799,   805,   806,   810,   812,   814,   816,
-     822,   823,   827,   829,   834,   836,   838,   843,   845,   850,
-     852,   856,   859,   863,   866,   870,   872,   874,   876,   881,
-     883,   885,   890,   892,   894,   896,   898,   903,   905,   907,
-     909,   914,   926,   927,   932,   934,   939,   943,   945,   947,
-     949,   951,   957,   958,   964,   965,   969,   970,   975,   977,
-     983,   984,   986,   991,   996,  1006,  1008,  1012,  1013,  1018,
-    1020,  1024,  1025,  1029,  1031,  1035,  1036,  1040,  1041,  1045,
-    1046,  1061,  1062,  1063,  1064,  1065,  1069,  1074,  1081,  1091,
-    1096,  1101,  1109,  1114,  1119,  1124,  1129,  1137,  1159,  1164,
-    1171,  1173,  1180,  1185,  1190,  1201,  1206,  1211,  1216,  1221,
-    1230,  1235,  1243,  1244,  1245,  1246,  1252,  1257,  1265,  1266,
-    1267,  1268,  1272,  1273,  1274,  1275,  1280,  1281,  1290,  1291,
-    1296,  1297,  1302,  1304,  1306,  1308,  1310,  1313,  1312,  1324,
-    1325,  1327,  1337,  1338,  1343,  1345,  1347,  1349,  1351,  1354,
-    1356,  1359,  1364,  1366,  1368,  1370,  1372,  1374,  1376,  1378,
-    1380,  1382,  1384,  1386,  1388,  1394,  1395,  1397,  1399,  1401,
-    1406,  1407,  1413,  1414,  1416,  1418,  1423,  1425,  1427,  1429,
-    1434,  1435,  1437,  1439,  1444,  1445,  1447,  1452,  1453,  1455,
-    1457,  1462,  1464,  1466,  1471,  1472,  1476,  1478,  1484,  1483,
-    1487,  1489,  1494,  1496,  1502,  1503,  1508,  1509,  1511,  1512,
-    1521,  1522,  1524,  1526,  1531,  1533,  1539,  1540,  1542,  1545,
-    1548,  1553,  1554,  1559,  1564,  1568,  1570,  1576,  1575,  1582,
-    1584,  1590,  1591,  1599,  1600,  1604,  1605,  1606,  1608,  1610,
-    1617,  1618,  1620,  1622,  1627,  1628,  1634,  1635,  1639,  1640,
-    1645,  1646,  1647,  1649,  1657,  1658,  1660,  1663,  1665,  1669,
-    1670,  1671,  1673,  1675,  1679,  1684,  1692,  1693,  1702,  1704,
-    1709,  1710,  1711,  1715,  1716,  1717,  1721,  1722,  1723,  1727,
-    1728,  1729,  1734,  1735,  1736,  1737,  1743,  1744,  1746,  1751,
-    1752,  1757,  1758,  1759,  1760,  1761,  1776,  1777,  1782,  1783,
-    1789,  1791,  1794,  1796,  1798,  1821,  1822,  1824,  1826,  1831,
-    1832,  1834,  1839,  1844,  1845,  1851,  1850,  1854,  1858,  1860,
-    1862,  1868,  1869,  1874,  1879,  1881,  1886,  1888,  1889,  1891,
-    1896,  1898,  1900,  1905,  1907,  1912,  1917,  1925,  1931,  1930,
-    1944,  1945,  1950,  1951,  1955,  1960,  1965,  1973,  1978,  1989,
-    1990,  1995,  1996,  2002,  2003,  2007,  2008,  2009,  2012,  2011,
-    2022,  2031,  2037,  2043,  2052,  2058,  2064,  2070,  2076,  2084,
-    2090,  2098,  2104,  2113,  2114,  2115,  2119,  2123,  2125,  2130,
-    2131,  2135,  2136,  2141,  2147,  2148,  2151,  2153,  2154,  2158,
-    2159,  2160,  2161,  2195,  2197,  2198,  2200,  2205,  2210,  2215,
-    2217,  2219,  2224,  2226,  2228,  2230,  2235,  2237,  2246,  2248,
-    2249,  2254,  2256,  2258,  2263,  2265,  2267,  2272,  2274,  2276,
-    2285,  2286,  2287,  2291,  2293,  2295,  2300,  2302,  2304,  2309,
-    2311,  2313,  2328,  2330,  2331,  2333,  2338,  2339,  2344,  2346,
-    2348,  2353,  2355,  2357,  2359,  2364,  2366,  2368,  2378,  2380,
-    2381,  2383,  2388,  2390,  2392,  2397,  2399,  2401,  2403,  2408,
-    2410,  2412,  2443,  2445,  2446,  2448,  2453,  2458,  2466,  2468,
-    2470,  2475,  2477,  2482,  2484,  2498,  2499,  2501,  2506,  2508,
-    2510,  2512,  2514,  2519,  2520,  2522,  2524,  2529,  2531,  2533,
-    2539,  2541,  2543,  2547,  2549,  2551,  2553,  2567,  2568,  2570,
-    2575,  2577,  2579,  2581,  2583,  2588,  2589,  2591,  2593,  2598,
-    2600,  2602,  2608,  2609,  2611,  2620,  2623,  2625,  2628,  2630,
-    2632,  2645,  2646,  2648,  2653,  2655,  2657,  2659,  2661,  2666,
-    2667,  2669,  2671,  2676,  2678,  2686,  2687,  2688,  2693,  2694,
-    2698,  2700,  2702,  2704,  2706,  2708,  2715,  2717,  2719,  2721,
-    2723,  2725,  2727,  2729,  2731,  2733,  2738,  2740,  2742,  2747,
-    2773,  2774,  2776,  2780,  2781,  2785,  2787,  2789,  2791,  2793,
-    2795,  2802,  2804,  2806,  2808,  2810,  2812,  2817,  2822,  2824,
-    2826,  2844,  2846,  2851,  2852
+     413,   417,   421,   423,   425,   427,   432,   434,   438,   441,
+     443,   445,   450,   463,   465,   467,   469,   471,   473,   475,
+     477,   479,   481,   483,   490,   491,   497,   498,   499,   500,
+     504,   505,   507,   512,   513,   515,   517,   522,   523,   525,
+     530,   531,   533,   538,   539,   541,   543,   545,   550,   551,
+     553,   558,   559,   564,   565,   570,   571,   576,   577,   582,
+     583,   588,   589,   592,   594,   599,   604,   605,   607,   613,
+     614,   618,   619,   620,   621,   622,   623,   624,   625,   626,
+     627,   628,   629,   635,   637,   639,   641,   646,   647,   652,
+     653,   659,   660,   666,   667,   668,   669,   670,   671,   672,
+     673,   674,   684,   691,   693,   703,   704,   709,   711,   717,
+     719,   723,   724,   729,   734,   737,   739,   741,   751,   753,
+     764,   765,   767,   771,   773,   777,   778,   783,   784,   788,
+     793,   794,   798,   800,   806,   807,   811,   813,   815,   817,
+     823,   824,   828,   830,   835,   837,   839,   844,   846,   851,
+     853,   857,   860,   864,   867,   871,   873,   875,   877,   882,
+     884,   886,   891,   893,   895,   897,   899,   904,   906,   908,
+     910,   915,   927,   928,   933,   935,   940,   944,   946,   948,
+     950,   952,   958,   959,   965,   966,   970,   971,   976,   978,
+     984,   985,   987,   992,   997,  1007,  1009,  1013,  1014,  1019,
+    1021,  1025,  1026,  1030,  1032,  1036,  1037,  1041,  1042,  1046,
+    1047,  1062,  1063,  1064,  1065,  1066,  1070,  1075,  1082,  1092,
+    1097,  1102,  1110,  1115,  1120,  1125,  1130,  1138,  1160,  1165,
+    1172,  1174,  1181,  1186,  1191,  1202,  1207,  1212,  1217,  1222,
+    1231,  1236,  1244,  1245,  1246,  1247,  1253,  1258,  1266,  1267,
+    1268,  1269,  1273,  1274,  1275,  1276,  1281,  1282,  1291,  1292,
+    1297,  1298,  1303,  1305,  1307,  1309,  1311,  1314,  1313,  1325,
+    1326,  1328,  1338,  1339,  1344,  1346,  1348,  1350,  1352,  1355,
+    1357,  1360,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
+    1381,  1383,  1385,  1387,  1389,  1395,  1396,  1398,  1400,  1402,
+    1407,  1408,  1414,  1415,  1417,  1419,  1424,  1426,  1428,  1430,
+    1435,  1436,  1438,  1440,  1445,  1446,  1448,  1453,  1454,  1456,
+    1458,  1463,  1465,  1467,  1472,  1473,  1477,  1479,  1485,  1484,
+    1488,  1490,  1495,  1497,  1503,  1504,  1509,  1510,  1512,  1513,
+    1522,  1523,  1525,  1527,  1532,  1534,  1540,  1541,  1543,  1546,
+    1549,  1554,  1555,  1560,  1565,  1569,  1571,  1577,  1576,  1583,
+    1585,  1591,  1592,  1600,  1601,  1605,  1606,  1607,  1609,  1611,
+    1618,  1619,  1621,  1623,  1628,  1629,  1635,  1636,  1640,  1641,
+    1646,  1647,  1648,  1650,  1658,  1659,  1661,  1664,  1666,  1670,
+    1671,  1672,  1674,  1676,  1680,  1685,  1693,  1694,  1703,  1705,
+    1710,  1711,  1712,  1716,  1717,  1718,  1722,  1723,  1724,  1728,
+    1729,  1730,  1735,  1736,  1737,  1738,  1744,  1745,  1747,  1752,
+    1753,  1758,  1759,  1760,  1761,  1762,  1777,  1778,  1783,  1784,
+    1790,  1792,  1795,  1797,  1799,  1822,  1823,  1825,  1827,  1832,
+    1833,  1835,  1840,  1845,  1846,  1852,  1851,  1855,  1859,  1861,
+    1863,  1869,  1870,  1875,  1880,  1882,  1887,  1889,  1890,  1892,
+    1897,  1899,  1901,  1906,  1908,  1913,  1918,  1926,  1932,  1931,
+    1945,  1946,  1951,  1952,  1956,  1961,  1966,  1974,  1979,  1990,
+    1991,  1996,  1997,  2003,  2004,  2008,  2009,  2010,  2013,  2012,
+    2023,  2032,  2038,  2044,  2053,  2059,  2065,  2071,  2077,  2085,
+    2091,  2099,  2105,  2114,  2115,  2116,  2120,  2124,  2126,  2131,
+    2132,  2136,  2137,  2142,  2148,  2149,  2152,  2154,  2155,  2159,
+    2160,  2161,  2162,  2196,  2198,  2199,  2201,  2206,  2211,  2216,
+    2218,  2220,  2225,  2227,  2229,  2231,  2236,  2238,  2247,  2249,
+    2250,  2255,  2257,  2259,  2264,  2266,  2268,  2273,  2275,  2277,
+    2286,  2287,  2288,  2292,  2294,  2296,  2301,  2303,  2305,  2310,
+    2312,  2314,  2329,  2331,  2332,  2334,  2339,  2340,  2345,  2347,
+    2349,  2354,  2356,  2358,  2360,  2365,  2367,  2369,  2379,  2381,
+    2382,  2384,  2389,  2391,  2393,  2398,  2400,  2402,  2404,  2409,
+    2411,  2413,  2444,  2446,  2447,  2449,  2454,  2459,  2467,  2469,
+    2471,  2476,  2478,  2483,  2485,  2499,  2500,  2502,  2507,  2509,
+    2511,  2513,  2515,  2520,  2521,  2523,  2525,  2530,  2532,  2534,
+    2540,  2542,  2544,  2548,  2550,  2552,  2554,  2568,  2569,  2571,
+    2576,  2578,  2580,  2582,  2584,  2589,  2590,  2592,  2594,  2599,
+    2601,  2603,  2609,  2610,  2612,  2621,  2624,  2626,  2629,  2631,
+    2633,  2646,  2647,  2649,  2654,  2656,  2658,  2660,  2662,  2667,
+    2668,  2670,  2672,  2677,  2679,  2687,  2688,  2689,  2694,  2695,
+    2699,  2701,  2703,  2705,  2707,  2709,  2716,  2718,  2720,  2722,
+    2724,  2727,  2729,  2731,  2733,  2735,  2740,  2742,  2744,  2749,
+    2775,  2776,  2778,  2782,  2783,  2787,  2789,  2791,  2793,  2795,
+    2797,  2804,  2806,  2808,  2810,  2812,  2814,  2819,  2824,  2826,
+    2828,  2846,  2848,  2853,  2854
 };
 #endif
@@ -5181,5 +5181,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 441 "parser.yy"
+#line 442 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -5188,5 +5188,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 443 "parser.yy"
+#line 444 "parser.yy"
     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     break;
@@ -5195,5 +5195,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 445 "parser.yy"
+#line 446 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     break;
@@ -5202,5 +5202,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 450 "parser.yy"
+#line 451 "parser.yy"
     {
 			switch ( (yyvsp[(1) - (2)].op) ) {
@@ -5220,5 +5220,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 463 "parser.yy"
+#line 464 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5227,5 +5227,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 465 "parser.yy"
+#line 466 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5234,5 +5234,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 467 "parser.yy"
+#line 468 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5241,5 +5241,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 469 "parser.yy"
+#line 470 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5248,5 +5248,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 471 "parser.yy"
+#line 472 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     break;
@@ -5255,5 +5255,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 473 "parser.yy"
+#line 474 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5262,5 +5262,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 475 "parser.yy"
+#line 476 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     break;
@@ -5269,5 +5269,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 477 "parser.yy"
+#line 478 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     break;
@@ -5276,5 +5276,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 479 "parser.yy"
+#line 480 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
     break;
@@ -5283,5 +5283,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 481 "parser.yy"
+#line 482 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     break;
@@ -5290,5 +5290,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 483 "parser.yy"
+#line 484 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     break;
@@ -5297,5 +5297,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 489 "parser.yy"
+#line 490 "parser.yy"
     { (yyval.op) = OperKinds::PointTo; }
     break;
@@ -5304,5 +5304,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 490 "parser.yy"
+#line 491 "parser.yy"
     { (yyval.op) = OperKinds::AddressOf; }
     break;
@@ -5311,5 +5311,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 496 "parser.yy"
+#line 497 "parser.yy"
     { (yyval.op) = OperKinds::UnPlus; }
     break;
@@ -5318,5 +5318,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 497 "parser.yy"
+#line 498 "parser.yy"
     { (yyval.op) = OperKinds::UnMinus; }
     break;
@@ -5325,5 +5325,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 498 "parser.yy"
+#line 499 "parser.yy"
     { (yyval.op) = OperKinds::Neg; }
     break;
@@ -5332,5 +5332,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 499 "parser.yy"
+#line 500 "parser.yy"
     { (yyval.op) = OperKinds::BitNeg; }
     break;
@@ -5339,5 +5339,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 505 "parser.yy"
+#line 506 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -5346,5 +5346,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 507 "parser.yy"
+#line 508 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -5353,5 +5353,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 513 "parser.yy"
+#line 514 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5360,5 +5360,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 515 "parser.yy"
+#line 516 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5367,5 +5367,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 517 "parser.yy"
+#line 518 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5374,5 +5374,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 523 "parser.yy"
+#line 524 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5381,5 +5381,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 525 "parser.yy"
+#line 526 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5388,5 +5388,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 531 "parser.yy"
+#line 532 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5395,5 +5395,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 533 "parser.yy"
+#line 534 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5402,5 +5402,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 539 "parser.yy"
+#line 540 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5409,5 +5409,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 541 "parser.yy"
+#line 542 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5416,5 +5416,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 543 "parser.yy"
+#line 544 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5423,5 +5423,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 545 "parser.yy"
+#line 546 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5430,5 +5430,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 551 "parser.yy"
+#line 552 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5437,5 +5437,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 553 "parser.yy"
+#line 554 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5444,5 +5444,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 559 "parser.yy"
+#line 560 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5451,5 +5451,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 565 "parser.yy"
+#line 566 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5458,5 +5458,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 571 "parser.yy"
+#line 572 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5465,5 +5465,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 577 "parser.yy"
+#line 578 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     break;
@@ -5472,5 +5472,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 583 "parser.yy"
+#line 584 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     break;
@@ -5479,5 +5479,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 589 "parser.yy"
+#line 590 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     break;
@@ -5486,5 +5486,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 592 "parser.yy"
+#line 593 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -5493,5 +5493,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 594 "parser.yy"
+#line 595 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     break;
@@ -5500,5 +5500,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 605 "parser.yy"
+#line 606 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5507,5 +5507,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 607 "parser.yy"
+#line 608 "parser.yy"
     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5514,5 +5514,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 612 "parser.yy"
+#line 613 "parser.yy"
     { (yyval.en) = nullptr; }
     break;
@@ -5521,5 +5521,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 617 "parser.yy"
+#line 618 "parser.yy"
     { (yyval.op) = OperKinds::Assign; }
     break;
@@ -5528,5 +5528,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 618 "parser.yy"
+#line 619 "parser.yy"
     { (yyval.op) = OperKinds::AtAssn; }
     break;
@@ -5535,5 +5535,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 619 "parser.yy"
+#line 620 "parser.yy"
     { (yyval.op) = OperKinds::MulAssn; }
     break;
@@ -5542,5 +5542,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 620 "parser.yy"
+#line 621 "parser.yy"
     { (yyval.op) = OperKinds::DivAssn; }
     break;
@@ -5549,5 +5549,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 621 "parser.yy"
+#line 622 "parser.yy"
     { (yyval.op) = OperKinds::ModAssn; }
     break;
@@ -5556,5 +5556,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 622 "parser.yy"
+#line 623 "parser.yy"
     { (yyval.op) = OperKinds::PlusAssn; }
     break;
@@ -5563,5 +5563,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 623 "parser.yy"
+#line 624 "parser.yy"
     { (yyval.op) = OperKinds::MinusAssn; }
     break;
@@ -5570,5 +5570,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 624 "parser.yy"
+#line 625 "parser.yy"
     { (yyval.op) = OperKinds::LSAssn; }
     break;
@@ -5577,5 +5577,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 625 "parser.yy"
+#line 626 "parser.yy"
     { (yyval.op) = OperKinds::RSAssn; }
     break;
@@ -5584,5 +5584,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 626 "parser.yy"
+#line 627 "parser.yy"
     { (yyval.op) = OperKinds::AndAssn; }
     break;
@@ -5591,5 +5591,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 627 "parser.yy"
+#line 628 "parser.yy"
     { (yyval.op) = OperKinds::ERAssn; }
     break;
@@ -5598,5 +5598,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 628 "parser.yy"
+#line 629 "parser.yy"
     { (yyval.op) = OperKinds::OrAssn; }
     break;
@@ -5605,5 +5605,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 635 "parser.yy"
+#line 636 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_tuple() ); }
     break;
@@ -5612,5 +5612,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 637 "parser.yy"
+#line 638 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     break;
@@ -5619,5 +5619,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 639 "parser.yy"
+#line 640 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     break;
@@ -5626,5 +5626,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 641 "parser.yy"
+#line 642 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     break;
@@ -5633,5 +5633,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 647 "parser.yy"
+#line 648 "parser.yy"
     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     break;
@@ -5640,5 +5640,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 653 "parser.yy"
+#line 654 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5647,5 +5647,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 658 "parser.yy"
+#line 659 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -5654,5 +5654,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 667 "parser.yy"
+#line 668 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     break;
@@ -5661,5 +5661,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 674 "parser.yy"
+#line 675 "parser.yy"
     {
 			Token fn;
@@ -5672,5 +5672,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 684 "parser.yy"
+#line 685 "parser.yy"
     {
 			(yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
@@ -5681,5 +5681,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 691 "parser.yy"
+#line 692 "parser.yy"
     { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     break;
@@ -5688,5 +5688,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 698 "parser.yy"
+#line 699 "parser.yy"
     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     break;
@@ -5695,5 +5695,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 704 "parser.yy"
+#line 705 "parser.yy"
     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     break;
@@ -5702,5 +5702,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 709 "parser.yy"
+#line 710 "parser.yy"
     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     break;
@@ -5709,5 +5709,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 711 "parser.yy"
+#line 712 "parser.yy"
     {	// mark all fields in list
 			for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
@@ -5720,5 +5720,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 717 "parser.yy"
+#line 718 "parser.yy"
     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     break;
@@ -5727,5 +5727,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 724 "parser.yy"
+#line 725 "parser.yy"
     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     break;
@@ -5734,5 +5734,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 729 "parser.yy"
+#line 730 "parser.yy"
     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     break;
@@ -5741,5 +5741,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 735 "parser.yy"
+#line 736 "parser.yy"
     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     break;
@@ -5748,5 +5748,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 737 "parser.yy"
+#line 738 "parser.yy"
     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
     break;
@@ -5755,5 +5755,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 739 "parser.yy"
+#line 740 "parser.yy"
     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     break;
@@ -5762,5 +5762,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 741 "parser.yy"
+#line 742 "parser.yy"
     {
 			StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
@@ -5777,5 +5777,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 751 "parser.yy"
+#line 752 "parser.yy"
     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     break;
@@ -5784,5 +5784,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 753 "parser.yy"
+#line 754 "parser.yy"
     {
 			StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
@@ -5794,5 +5794,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 763 "parser.yy"
+#line 764 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -5801,5 +5801,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 765 "parser.yy"
+#line 766 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5808,5 +5808,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 770 "parser.yy"
+#line 771 "parser.yy"
     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     break;
@@ -5815,5 +5815,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 772 "parser.yy"
+#line 773 "parser.yy"
     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     break;
@@ -5822,5 +5822,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 776 "parser.yy"
+#line 777 "parser.yy"
     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     break;
@@ -5829,5 +5829,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 777 "parser.yy"
+#line 778 "parser.yy"
     { (yyval.sn) = new StatementNode( build_default() ); }
     break;
@@ -5836,5 +5836,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 783 "parser.yy"
+#line 784 "parser.yy"
     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     break;
@@ -5843,5 +5843,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 787 "parser.yy"
+#line 788 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     break;
@@ -5850,5 +5850,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 792 "parser.yy"
+#line 793 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -5857,5 +5857,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 798 "parser.yy"
+#line 799 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     break;
@@ -5864,5 +5864,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 800 "parser.yy"
+#line 801 "parser.yy"
     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     break;
@@ -5871,5 +5871,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 805 "parser.yy"
+#line 806 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -5878,5 +5878,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 811 "parser.yy"
+#line 812 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     break;
@@ -5885,5 +5885,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 813 "parser.yy"
+#line 814 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     break;
@@ -5892,5 +5892,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 815 "parser.yy"
+#line 816 "parser.yy"
     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     break;
@@ -5899,5 +5899,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 817 "parser.yy"
+#line 818 "parser.yy"
     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
     break;
@@ -5906,5 +5906,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 822 "parser.yy"
+#line 823 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     break;
@@ -5913,5 +5913,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 828 "parser.yy"
+#line 829 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -5920,5 +5920,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 830 "parser.yy"
+#line 831 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -5927,5 +5927,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 835 "parser.yy"
+#line 836 "parser.yy"
     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     break;
@@ -5934,5 +5934,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 837 "parser.yy"
+#line 838 "parser.yy"
     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
     break;
@@ -5941,5 +5941,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 839 "parser.yy"
+#line 840 "parser.yy"
     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     break;
@@ -5948,5 +5948,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 844 "parser.yy"
+#line 845 "parser.yy"
     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     break;
@@ -5955,5 +5955,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 846 "parser.yy"
+#line 847 "parser.yy"
     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     break;
@@ -5962,5 +5962,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 851 "parser.yy"
+#line 852 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     break;
@@ -5969,5 +5969,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 855 "parser.yy"
+#line 856 "parser.yy"
     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     break;
@@ -5976,5 +5976,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 858 "parser.yy"
+#line 859 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     break;
@@ -5983,5 +5983,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 862 "parser.yy"
+#line 863 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     break;
@@ -5990,5 +5990,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 865 "parser.yy"
+#line 866 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     break;
@@ -5997,5 +5997,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 869 "parser.yy"
+#line 870 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     break;
@@ -6004,5 +6004,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 871 "parser.yy"
+#line 872 "parser.yy"
     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     break;
@@ -6011,5 +6011,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 873 "parser.yy"
+#line 874 "parser.yy"
     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     break;
@@ -6018,5 +6018,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 875 "parser.yy"
+#line 876 "parser.yy"
     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     break;
@@ -6025,5 +6025,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 877 "parser.yy"
+#line 878 "parser.yy"
     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     break;
@@ -6032,5 +6032,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 882 "parser.yy"
+#line 883 "parser.yy"
     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     break;
@@ -6039,5 +6039,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 884 "parser.yy"
+#line 885 "parser.yy"
     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     break;
@@ -6046,5 +6046,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 886 "parser.yy"
+#line 887 "parser.yy"
     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     break;
@@ -6053,5 +6053,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 893 "parser.yy"
+#line 894 "parser.yy"
     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     break;
@@ -6060,5 +6060,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 895 "parser.yy"
+#line 896 "parser.yy"
     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     break;
@@ -6067,5 +6067,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 897 "parser.yy"
+#line 898 "parser.yy"
     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     break;
@@ -6074,5 +6074,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 899 "parser.yy"
+#line 900 "parser.yy"
     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     break;
@@ -6081,5 +6081,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 904 "parser.yy"
+#line 905 "parser.yy"
     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     break;
@@ -6088,5 +6088,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 906 "parser.yy"
+#line 907 "parser.yy"
     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     break;
@@ -6095,5 +6095,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 908 "parser.yy"
+#line 909 "parser.yy"
     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     break;
@@ -6102,5 +6102,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 910 "parser.yy"
+#line 911 "parser.yy"
     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     break;
@@ -6109,5 +6109,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 915 "parser.yy"
+#line 916 "parser.yy"
     {
 			(yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
@@ -6118,5 +6118,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 928 "parser.yy"
+#line 929 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6128,5 +6128,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 933 "parser.yy"
+#line 934 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6135,5 +6135,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 935 "parser.yy"
+#line 936 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6145,5 +6145,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 944 "parser.yy"
+#line 945 "parser.yy"
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     break;
@@ -6152,5 +6152,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 946 "parser.yy"
+#line 947 "parser.yy"
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     break;
@@ -6159,5 +6159,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 948 "parser.yy"
+#line 949 "parser.yy"
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     break;
@@ -6166,5 +6166,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 950 "parser.yy"
+#line 951 "parser.yy"
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
     break;
@@ -6173,5 +6173,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 952 "parser.yy"
+#line 953 "parser.yy"
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
     break;
@@ -6180,5 +6180,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 957 "parser.yy"
+#line 958 "parser.yy"
     { (yyval.flag) = false; }
     break;
@@ -6187,5 +6187,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 959 "parser.yy"
+#line 960 "parser.yy"
     { (yyval.flag) = true; }
     break;
@@ -6194,5 +6194,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 964 "parser.yy"
+#line 965 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -6201,5 +6201,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 971 "parser.yy"
+#line 972 "parser.yy"
     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     break;
@@ -6208,5 +6208,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 976 "parser.yy"
+#line 977 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     break;
@@ -6215,5 +6215,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 978 "parser.yy"
+#line 979 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     break;
@@ -6222,5 +6222,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 983 "parser.yy"
+#line 984 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -6229,5 +6229,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 985 "parser.yy"
+#line 986 "parser.yy"
     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     break;
@@ -6236,5 +6236,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 987 "parser.yy"
+#line 988 "parser.yy"
     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
     break;
@@ -6243,5 +6243,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 992 "parser.yy"
+#line 993 "parser.yy"
     {
 			(yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
@@ -6253,5 +6253,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 997 "parser.yy"
+#line 998 "parser.yy"
     {
 			(yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
@@ -6263,5 +6263,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1007 "parser.yy"
+#line 1008 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -6270,5 +6270,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1014 "parser.yy"
+#line 1015 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6277,5 +6277,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1019 "parser.yy"
+#line 1020 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -6284,16 +6284,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 1026 "parser.yy"
+#line 1027 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
 
   case 247:
-
-/* Line 1806 of yacc.c  */
-#line 1040 "parser.yy"
-    {}
-    break;
-
-  case 248:
 
 /* Line 1806 of yacc.c  */
@@ -6302,8 +6295,15 @@
     break;
 
+  case 248:
+
+/* Line 1806 of yacc.c  */
+#line 1042 "parser.yy"
+    {}
+    break;
+
   case 256:
 
 /* Line 1806 of yacc.c  */
-#line 1070 "parser.yy"
+#line 1071 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6315,5 +6315,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1077 "parser.yy"
+#line 1078 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6325,5 +6325,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1082 "parser.yy"
+#line 1083 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
@@ -6335,5 +6335,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1092 "parser.yy"
+#line 1093 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
@@ -6345,5 +6345,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1097 "parser.yy"
+#line 1098 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
@@ -6355,5 +6355,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1102 "parser.yy"
+#line 1103 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
@@ -6365,5 +6365,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1110 "parser.yy"
+#line 1111 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6375,5 +6375,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1115 "parser.yy"
+#line 1116 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6385,5 +6385,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1120 "parser.yy"
+#line 1121 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6395,5 +6395,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1125 "parser.yy"
+#line 1126 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6405,5 +6405,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1130 "parser.yy"
+#line 1131 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
@@ -6415,5 +6415,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1138 "parser.yy"
+#line 1139 "parser.yy"
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
@@ -6424,5 +6424,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1161 "parser.yy"
+#line 1162 "parser.yy"
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
@@ -6433,5 +6433,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1165 "parser.yy"
+#line 1166 "parser.yy"
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
@@ -6442,5 +6442,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1172 "parser.yy"
+#line 1173 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -6449,5 +6449,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1176 "parser.yy"
+#line 1177 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     break;
@@ -6456,5 +6456,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1181 "parser.yy"
+#line 1182 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6466,5 +6466,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1186 "parser.yy"
+#line 1187 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6476,5 +6476,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1191 "parser.yy"
+#line 1192 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
@@ -6486,5 +6486,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1202 "parser.yy"
+#line 1203 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6496,5 +6496,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1207 "parser.yy"
+#line 1208 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6506,5 +6506,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1212 "parser.yy"
+#line 1213 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6516,5 +6516,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1217 "parser.yy"
+#line 1218 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6526,5 +6526,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1222 "parser.yy"
+#line 1223 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6536,5 +6536,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1231 "parser.yy"
+#line 1232 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
@@ -6546,5 +6546,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1236 "parser.yy"
+#line 1237 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
@@ -6556,5 +6556,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1253 "parser.yy"
+#line 1254 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6566,5 +6566,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1258 "parser.yy"
+#line 1259 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6576,5 +6576,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1280 "parser.yy"
+#line 1281 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -6583,5 +6583,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1292 "parser.yy"
+#line 1293 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6590,5 +6590,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1303 "parser.yy"
+#line 1304 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     break;
@@ -6597,5 +6597,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1305 "parser.yy"
+#line 1306 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     break;
@@ -6604,5 +6604,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1307 "parser.yy"
+#line 1308 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     break;
@@ -6611,5 +6611,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1309 "parser.yy"
+#line 1310 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     break;
@@ -6618,5 +6618,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1311 "parser.yy"
+#line 1312 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     break;
@@ -6625,5 +6625,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1313 "parser.yy"
+#line 1314 "parser.yy"
     {
 			typedefTable.enterScope();
@@ -6634,5 +6634,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1317 "parser.yy"
+#line 1318 "parser.yy"
     {
 			typedefTable.leaveScope();
@@ -6644,5 +6644,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1326 "parser.yy"
+#line 1327 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6651,5 +6651,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1328 "parser.yy"
+#line 1329 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6658,5 +6658,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1339 "parser.yy"
+#line 1340 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6665,5 +6665,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1344 "parser.yy"
+#line 1345 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     break;
@@ -6672,5 +6672,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1346 "parser.yy"
+#line 1347 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     break;
@@ -6679,5 +6679,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1348 "parser.yy"
+#line 1349 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     break;
@@ -6686,5 +6686,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1350 "parser.yy"
+#line 1351 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     break;
@@ -6693,5 +6693,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1353 "parser.yy"
+#line 1354 "parser.yy"
     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     break;
@@ -6700,5 +6700,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1355 "parser.yy"
+#line 1356 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     break;
@@ -6707,5 +6707,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1358 "parser.yy"
+#line 1359 "parser.yy"
     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     break;
@@ -6714,5 +6714,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1360 "parser.yy"
+#line 1361 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     break;
@@ -6721,5 +6721,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1365 "parser.yy"
+#line 1366 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     break;
@@ -6728,5 +6728,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1367 "parser.yy"
+#line 1368 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     break;
@@ -6735,5 +6735,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1369 "parser.yy"
+#line 1370 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     break;
@@ -6742,5 +6742,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1371 "parser.yy"
+#line 1372 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     break;
@@ -6749,5 +6749,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1373 "parser.yy"
+#line 1374 "parser.yy"
     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     break;
@@ -6756,5 +6756,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1375 "parser.yy"
+#line 1376 "parser.yy"
     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     break;
@@ -6763,5 +6763,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1377 "parser.yy"
+#line 1378 "parser.yy"
     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     break;
@@ -6770,5 +6770,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1379 "parser.yy"
+#line 1380 "parser.yy"
     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     break;
@@ -6777,5 +6777,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1381 "parser.yy"
+#line 1382 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     break;
@@ -6784,5 +6784,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1383 "parser.yy"
+#line 1384 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     break;
@@ -6791,5 +6791,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1385 "parser.yy"
+#line 1386 "parser.yy"
     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     break;
@@ -6798,5 +6798,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1387 "parser.yy"
+#line 1388 "parser.yy"
     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     break;
@@ -6805,5 +6805,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1389 "parser.yy"
+#line 1390 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     break;
@@ -6812,5 +6812,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1396 "parser.yy"
+#line 1397 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6819,5 +6819,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1398 "parser.yy"
+#line 1399 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6826,5 +6826,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1400 "parser.yy"
+#line 1401 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6833,5 +6833,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1402 "parser.yy"
+#line 1403 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -6840,5 +6840,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1408 "parser.yy"
+#line 1409 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6847,5 +6847,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1415 "parser.yy"
+#line 1416 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6854,5 +6854,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1417 "parser.yy"
+#line 1418 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6861,5 +6861,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1419 "parser.yy"
+#line 1420 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6868,5 +6868,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1424 "parser.yy"
+#line 1425 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     break;
@@ -6875,5 +6875,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1426 "parser.yy"
+#line 1427 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     break;
@@ -6882,5 +6882,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1428 "parser.yy"
+#line 1429 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -6889,5 +6889,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1430 "parser.yy"
+#line 1431 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     break;
@@ -6896,5 +6896,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1436 "parser.yy"
+#line 1437 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6903,5 +6903,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1438 "parser.yy"
+#line 1439 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6910,5 +6910,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1440 "parser.yy"
+#line 1441 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6917,5 +6917,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1446 "parser.yy"
+#line 1447 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6924,5 +6924,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1448 "parser.yy"
+#line 1449 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6931,5 +6931,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1454 "parser.yy"
+#line 1455 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6938,5 +6938,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1456 "parser.yy"
+#line 1457 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6945,5 +6945,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1458 "parser.yy"
+#line 1459 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6952,5 +6952,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1463 "parser.yy"
+#line 1464 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -6959,5 +6959,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1465 "parser.yy"
+#line 1466 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6966,5 +6966,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1467 "parser.yy"
+#line 1468 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6973,5 +6973,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1477 "parser.yy"
+#line 1478 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
     break;
@@ -6980,5 +6980,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1479 "parser.yy"
+#line 1480 "parser.yy"
     {
 			typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
@@ -6990,5 +6990,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1484 "parser.yy"
+#line 1485 "parser.yy"
     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     break;
@@ -6997,5 +6997,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1486 "parser.yy"
+#line 1487 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     break;
@@ -7004,5 +7004,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1488 "parser.yy"
+#line 1489 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     break;
@@ -7011,5 +7011,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1490 "parser.yy"
+#line 1491 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     break;
@@ -7018,5 +7018,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1495 "parser.yy"
+#line 1496 "parser.yy"
     { (yyval.aggKey) = DeclarationNode::Struct; }
     break;
@@ -7025,5 +7025,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1497 "parser.yy"
+#line 1498 "parser.yy"
     { (yyval.aggKey) = DeclarationNode::Union; }
     break;
@@ -7032,5 +7032,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1502 "parser.yy"
+#line 1503 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7039,5 +7039,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1504 "parser.yy"
+#line 1505 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     break;
@@ -7046,5 +7046,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1510 "parser.yy"
+#line 1511 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     break;
@@ -7053,5 +7053,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1513 "parser.yy"
+#line 1514 "parser.yy"
     {	// mark all fields in list
 			for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
@@ -7064,5 +7064,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1523 "parser.yy"
+#line 1524 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     break;
@@ -7071,5 +7071,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1525 "parser.yy"
+#line 1526 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     break;
@@ -7078,5 +7078,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1527 "parser.yy"
+#line 1528 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     break;
@@ -7085,5 +7085,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1532 "parser.yy"
+#line 1533 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7092,5 +7092,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1534 "parser.yy"
+#line 1535 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     break;
@@ -7099,5 +7099,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1539 "parser.yy"
+#line 1540 "parser.yy"
     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     break;
@@ -7106,5 +7106,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1541 "parser.yy"
+#line 1542 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     break;
@@ -7113,5 +7113,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1544 "parser.yy"
+#line 1545 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7120,5 +7120,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1547 "parser.yy"
+#line 1548 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7127,5 +7127,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1553 "parser.yy"
+#line 1554 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -7134,5 +7134,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1555 "parser.yy"
+#line 1556 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -7141,5 +7141,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1560 "parser.yy"
+#line 1561 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -7148,5 +7148,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1569 "parser.yy"
+#line 1570 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -7155,5 +7155,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1571 "parser.yy"
+#line 1572 "parser.yy"
     {
 			typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
@@ -7165,5 +7165,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1576 "parser.yy"
+#line 1577 "parser.yy"
     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     break;
@@ -7172,5 +7172,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1578 "parser.yy"
+#line 1579 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     break;
@@ -7179,5 +7179,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1583 "parser.yy"
+#line 1584 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7186,5 +7186,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1585 "parser.yy"
+#line 1586 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -7193,5 +7193,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1590 "parser.yy"
+#line 1591 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -7200,5 +7200,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1592 "parser.yy"
+#line 1593 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -7207,5 +7207,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1599 "parser.yy"
+#line 1600 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7214,5 +7214,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1607 "parser.yy"
+#line 1608 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7221,5 +7221,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1609 "parser.yy"
+#line 1610 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7228,5 +7228,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1611 "parser.yy"
+#line 1612 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7235,5 +7235,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1619 "parser.yy"
+#line 1620 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7242,5 +7242,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1621 "parser.yy"
+#line 1622 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7249,5 +7249,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1623 "parser.yy"
+#line 1624 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     break;
@@ -7256,5 +7256,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1629 "parser.yy"
+#line 1630 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7263,5 +7263,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1634 "parser.yy"
+#line 1635 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7270,5 +7270,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1641 "parser.yy"
+#line 1642 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7277,5 +7277,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1648 "parser.yy"
+#line 1649 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7284,5 +7284,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1650 "parser.yy"
+#line 1651 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7291,5 +7291,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1659 "parser.yy"
+#line 1660 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     break;
@@ -7298,5 +7298,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1662 "parser.yy"
+#line 1663 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     break;
@@ -7305,5 +7305,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1664 "parser.yy"
+#line 1665 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     break;
@@ -7312,5 +7312,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1674 "parser.yy"
+#line 1675 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7319,5 +7319,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1680 "parser.yy"
+#line 1681 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7329,5 +7329,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1685 "parser.yy"
+#line 1686 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7339,5 +7339,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1694 "parser.yy"
+#line 1695 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7346,5 +7346,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1703 "parser.yy"
+#line 1704 "parser.yy"
     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -7353,5 +7353,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1705 "parser.yy"
+#line 1706 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     break;
@@ -7360,5 +7360,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1730 "parser.yy"
+#line 1731 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7367,5 +7367,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1738 "parser.yy"
+#line 1739 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7374,5 +7374,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1743 "parser.yy"
+#line 1744 "parser.yy"
     { (yyval.in) = 0; }
     break;
@@ -7381,5 +7381,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1745 "parser.yy"
+#line 1746 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in); }
     break;
@@ -7388,5 +7388,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1747 "parser.yy"
+#line 1748 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     break;
@@ -7395,5 +7395,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1751 "parser.yy"
+#line 1752 "parser.yy"
     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     break;
@@ -7402,5 +7402,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1752 "parser.yy"
+#line 1753 "parser.yy"
     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     break;
@@ -7409,5 +7409,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1757 "parser.yy"
+#line 1758 "parser.yy"
     { (yyval.in) = 0; }
     break;
@@ -7416,5 +7416,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1759 "parser.yy"
+#line 1760 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     break;
@@ -7423,5 +7423,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1760 "parser.yy"
+#line 1761 "parser.yy"
     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     break;
@@ -7430,5 +7430,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1762 "parser.yy"
+#line 1763 "parser.yy"
     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     break;
@@ -7437,5 +7437,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1778 "parser.yy"
+#line 1779 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     break;
@@ -7444,5 +7444,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1784 "parser.yy"
+#line 1785 "parser.yy"
     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -7451,5 +7451,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1790 "parser.yy"
+#line 1791 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     break;
@@ -7458,5 +7458,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1793 "parser.yy"
+#line 1794 "parser.yy"
     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     break;
@@ -7465,5 +7465,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1795 "parser.yy"
+#line 1796 "parser.yy"
     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     break;
@@ -7472,5 +7472,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1797 "parser.yy"
+#line 1798 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     break;
@@ -7479,5 +7479,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1799 "parser.yy"
+#line 1800 "parser.yy"
     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     break;
@@ -7486,5 +7486,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1823 "parser.yy"
+#line 1824 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7493,5 +7493,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1825 "parser.yy"
+#line 1826 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7500,5 +7500,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1827 "parser.yy"
+#line 1828 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7507,5 +7507,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1833 "parser.yy"
+#line 1834 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7514,5 +7514,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1835 "parser.yy"
+#line 1836 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7521,5 +7521,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1840 "parser.yy"
+#line 1841 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     break;
@@ -7528,5 +7528,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1846 "parser.yy"
+#line 1847 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -7535,5 +7535,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1851 "parser.yy"
+#line 1852 "parser.yy"
     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     break;
@@ -7542,5 +7542,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1853 "parser.yy"
+#line 1854 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -7549,5 +7549,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1859 "parser.yy"
+#line 1860 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Otype; }
     break;
@@ -7556,5 +7556,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1861 "parser.yy"
+#line 1862 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Ftype; }
     break;
@@ -7563,5 +7563,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1863 "parser.yy"
+#line 1864 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Dtype; }
     break;
@@ -7570,5 +7570,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1868 "parser.yy"
+#line 1869 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7577,5 +7577,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1870 "parser.yy"
+#line 1871 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     break;
@@ -7584,5 +7584,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1875 "parser.yy"
+#line 1876 "parser.yy"
     {
 			typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
@@ -7594,5 +7594,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1880 "parser.yy"
+#line 1881 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     break;
@@ -7601,5 +7601,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1882 "parser.yy"
+#line 1883 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7608,5 +7608,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1887 "parser.yy"
+#line 1888 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     break;
@@ -7615,5 +7615,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1890 "parser.yy"
+#line 1891 "parser.yy"
     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     break;
@@ -7622,5 +7622,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1892 "parser.yy"
+#line 1893 "parser.yy"
     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     break;
@@ -7629,5 +7629,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1897 "parser.yy"
+#line 1898 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     break;
@@ -7636,5 +7636,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1899 "parser.yy"
+#line 1900 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -7643,5 +7643,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1901 "parser.yy"
+#line 1902 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -7650,5 +7650,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1906 "parser.yy"
+#line 1907 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7657,5 +7657,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1908 "parser.yy"
+#line 1909 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -7664,5 +7664,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1913 "parser.yy"
+#line 1914 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
@@ -7674,5 +7674,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1918 "parser.yy"
+#line 1919 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
@@ -7684,5 +7684,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1926 "parser.yy"
+#line 1927 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
@@ -7694,5 +7694,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1931 "parser.yy"
+#line 1932 "parser.yy"
     {
 			typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
@@ -7704,5 +7704,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1936 "parser.yy"
+#line 1937 "parser.yy"
     {
 			typedefTable.leaveTrait();
@@ -7715,5 +7715,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1946 "parser.yy"
+#line 1947 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7722,5 +7722,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1956 "parser.yy"
+#line 1957 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7732,5 +7732,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1961 "parser.yy"
+#line 1962 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7742,5 +7742,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1966 "parser.yy"
+#line 1967 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
@@ -7752,5 +7752,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1974 "parser.yy"
+#line 1975 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7762,5 +7762,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1979 "parser.yy"
+#line 1980 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7772,5 +7772,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1989 "parser.yy"
+#line 1990 "parser.yy"
     {}
     break;
@@ -7779,5 +7779,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1991 "parser.yy"
+#line 1992 "parser.yy"
     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);	}
     break;
@@ -7786,5 +7786,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1997 "parser.yy"
+#line 1998 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     break;
@@ -7793,5 +7793,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2002 "parser.yy"
+#line 2003 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7800,5 +7800,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2010 "parser.yy"
+#line 2011 "parser.yy"
     {}
     break;
@@ -7807,5 +7807,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2012 "parser.yy"
+#line 2013 "parser.yy"
     {
 			linkageStack.push( linkage );				// handle nested extern "C"/"Cforall"
@@ -7817,5 +7817,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2017 "parser.yy"
+#line 2018 "parser.yy"
     {
 			linkage = linkageStack.top();
@@ -7828,5 +7828,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2023 "parser.yy"
+#line 2024 "parser.yy"
     {	// mark all fields in list
 			for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
@@ -7839,5 +7839,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2038 "parser.yy"
+#line 2039 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7850,5 +7850,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2044 "parser.yy"
+#line 2045 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7861,5 +7861,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2053 "parser.yy"
+#line 2054 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7872,5 +7872,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2059 "parser.yy"
+#line 2060 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7883,5 +7883,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2065 "parser.yy"
+#line 2066 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7894,5 +7894,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2071 "parser.yy"
+#line 2072 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7905,5 +7905,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2077 "parser.yy"
+#line 2078 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7916,5 +7916,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2085 "parser.yy"
+#line 2086 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7927,5 +7927,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2091 "parser.yy"
+#line 2092 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7938,5 +7938,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2099 "parser.yy"
+#line 2100 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7949,5 +7949,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2105 "parser.yy"
+#line 2106 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7960,5 +7960,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2120 "parser.yy"
+#line 2121 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -7967,5 +7967,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2125 "parser.yy"
+#line 2126 "parser.yy"
     { delete (yyvsp[(3) - (5)].str); }
     break;
@@ -7974,5 +7974,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2130 "parser.yy"
+#line 2131 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7981,5 +7981,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2137 "parser.yy"
+#line 2138 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7988,5 +7988,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2143 "parser.yy"
+#line 2144 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7995,5 +7995,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2154 "parser.yy"
+#line 2155 "parser.yy"
     { delete (yyvsp[(3) - (4)].en); }
     break;
@@ -8002,16 +8002,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2158 "parser.yy"
+#line 2159 "parser.yy"
     { delete (yyvsp[(1) - (1)].tok); }
     break;
 
   case 560:
-
-/* Line 1806 of yacc.c  */
-#line 2159 "parser.yy"
-    { delete (yyvsp[(1) - (1)].decl); }
-    break;
-
-  case 561:
 
 /* Line 1806 of yacc.c  */
@@ -8020,5 +8013,5 @@
     break;
 
-  case 562:
+  case 561:
 
 /* Line 1806 of yacc.c  */
@@ -8027,8 +8020,15 @@
     break;
 
+  case 562:
+
+/* Line 1806 of yacc.c  */
+#line 2162 "parser.yy"
+    { delete (yyvsp[(1) - (1)].decl); }
+    break;
+
   case 563:
 
 /* Line 1806 of yacc.c  */
-#line 2196 "parser.yy"
+#line 2197 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8037,5 +8037,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2199 "parser.yy"
+#line 2200 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8044,5 +8044,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2201 "parser.yy"
+#line 2202 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8051,5 +8051,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2206 "parser.yy"
+#line 2207 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8061,5 +8061,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2211 "parser.yy"
+#line 2212 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8068,5 +8068,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2216 "parser.yy"
+#line 2217 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8075,5 +8075,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2218 "parser.yy"
+#line 2219 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8082,5 +8082,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2220 "parser.yy"
+#line 2221 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8089,5 +8089,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2225 "parser.yy"
+#line 2226 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8096,5 +8096,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2227 "parser.yy"
+#line 2228 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8103,5 +8103,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2229 "parser.yy"
+#line 2230 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8110,5 +8110,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2231 "parser.yy"
+#line 2232 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8117,5 +8117,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2236 "parser.yy"
+#line 2237 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8124,5 +8124,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2238 "parser.yy"
+#line 2239 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8131,5 +8131,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2247 "parser.yy"
+#line 2248 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8138,5 +8138,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2250 "parser.yy"
+#line 2251 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8145,5 +8145,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2255 "parser.yy"
+#line 2256 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8152,5 +8152,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2257 "parser.yy"
+#line 2258 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8159,5 +8159,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2259 "parser.yy"
+#line 2260 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8166,5 +8166,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2264 "parser.yy"
+#line 2265 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8173,5 +8173,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2266 "parser.yy"
+#line 2267 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8180,5 +8180,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2268 "parser.yy"
+#line 2269 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8187,5 +8187,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2273 "parser.yy"
+#line 2274 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8194,5 +8194,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2275 "parser.yy"
+#line 2276 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8201,5 +8201,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2277 "parser.yy"
+#line 2278 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8208,5 +8208,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2292 "parser.yy"
+#line 2293 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -8215,5 +8215,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2294 "parser.yy"
+#line 2295 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     break;
@@ -8222,5 +8222,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2296 "parser.yy"
+#line 2297 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8229,5 +8229,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2301 "parser.yy"
+#line 2302 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8236,5 +8236,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2303 "parser.yy"
+#line 2304 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8243,5 +8243,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2305 "parser.yy"
+#line 2306 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8250,5 +8250,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2310 "parser.yy"
+#line 2311 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8257,5 +8257,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2312 "parser.yy"
+#line 2313 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8264,5 +8264,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2314 "parser.yy"
+#line 2315 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8271,5 +8271,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2329 "parser.yy"
+#line 2330 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8278,5 +8278,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2332 "parser.yy"
+#line 2333 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8285,5 +8285,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2334 "parser.yy"
+#line 2335 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8292,5 +8292,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2340 "parser.yy"
+#line 2341 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8299,5 +8299,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2345 "parser.yy"
+#line 2346 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8306,5 +8306,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2347 "parser.yy"
+#line 2348 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8313,5 +8313,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2349 "parser.yy"
+#line 2350 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8320,5 +8320,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2354 "parser.yy"
+#line 2355 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8327,5 +8327,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2356 "parser.yy"
+#line 2357 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8334,5 +8334,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2358 "parser.yy"
+#line 2359 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8341,5 +8341,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2360 "parser.yy"
+#line 2361 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8348,5 +8348,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2365 "parser.yy"
+#line 2366 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8355,5 +8355,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2367 "parser.yy"
+#line 2368 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8362,5 +8362,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2369 "parser.yy"
+#line 2370 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8369,5 +8369,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2379 "parser.yy"
+#line 2380 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8376,5 +8376,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2382 "parser.yy"
+#line 2383 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8383,5 +8383,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2384 "parser.yy"
+#line 2385 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8390,5 +8390,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2389 "parser.yy"
+#line 2390 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8397,5 +8397,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2391 "parser.yy"
+#line 2392 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8404,5 +8404,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2393 "parser.yy"
+#line 2394 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8411,5 +8411,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2398 "parser.yy"
+#line 2399 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8418,5 +8418,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2400 "parser.yy"
+#line 2401 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8425,5 +8425,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2402 "parser.yy"
+#line 2403 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8432,5 +8432,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2404 "parser.yy"
+#line 2405 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8439,5 +8439,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2409 "parser.yy"
+#line 2410 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8446,5 +8446,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2411 "parser.yy"
+#line 2412 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8453,5 +8453,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2413 "parser.yy"
+#line 2414 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8460,5 +8460,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2444 "parser.yy"
+#line 2445 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8467,5 +8467,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2447 "parser.yy"
+#line 2448 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8474,5 +8474,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2449 "parser.yy"
+#line 2450 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8481,5 +8481,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2454 "parser.yy"
+#line 2455 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8491,5 +8491,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2459 "parser.yy"
+#line 2460 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8501,5 +8501,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2467 "parser.yy"
+#line 2468 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8508,5 +8508,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2469 "parser.yy"
+#line 2470 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8515,5 +8515,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2471 "parser.yy"
+#line 2472 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8522,5 +8522,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2476 "parser.yy"
+#line 2477 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8529,5 +8529,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2478 "parser.yy"
+#line 2479 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8536,5 +8536,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2483 "parser.yy"
+#line 2484 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8543,5 +8543,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2485 "parser.yy"
+#line 2486 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8550,5 +8550,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2500 "parser.yy"
+#line 2501 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8557,5 +8557,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2502 "parser.yy"
+#line 2503 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8564,5 +8564,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2507 "parser.yy"
+#line 2508 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8571,5 +8571,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2509 "parser.yy"
+#line 2510 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8578,5 +8578,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2511 "parser.yy"
+#line 2512 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8585,5 +8585,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2513 "parser.yy"
+#line 2514 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8592,5 +8592,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2515 "parser.yy"
+#line 2516 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8599,5 +8599,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2521 "parser.yy"
+#line 2522 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8606,5 +8606,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2523 "parser.yy"
+#line 2524 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8613,5 +8613,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2525 "parser.yy"
+#line 2526 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8620,5 +8620,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2530 "parser.yy"
+#line 2531 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     break;
@@ -8627,5 +8627,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2532 "parser.yy"
+#line 2533 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8634,5 +8634,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2534 "parser.yy"
+#line 2535 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8641,5 +8641,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2540 "parser.yy"
+#line 2541 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -8648,5 +8648,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2542 "parser.yy"
+#line 2543 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -8655,5 +8655,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2548 "parser.yy"
+#line 2549 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     break;
@@ -8662,5 +8662,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2550 "parser.yy"
+#line 2551 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     break;
@@ -8669,5 +8669,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2552 "parser.yy"
+#line 2553 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     break;
@@ -8676,5 +8676,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2554 "parser.yy"
+#line 2555 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     break;
@@ -8683,5 +8683,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2569 "parser.yy"
+#line 2570 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8690,5 +8690,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2571 "parser.yy"
+#line 2572 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8697,5 +8697,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2576 "parser.yy"
+#line 2577 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8704,5 +8704,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2578 "parser.yy"
+#line 2579 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8711,5 +8711,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2580 "parser.yy"
+#line 2581 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8718,5 +8718,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2582 "parser.yy"
+#line 2583 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8725,5 +8725,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2584 "parser.yy"
+#line 2585 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8732,5 +8732,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2590 "parser.yy"
+#line 2591 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8739,5 +8739,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2592 "parser.yy"
+#line 2593 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8746,5 +8746,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2594 "parser.yy"
+#line 2595 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8753,5 +8753,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2599 "parser.yy"
+#line 2600 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     break;
@@ -8760,5 +8760,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2601 "parser.yy"
+#line 2602 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8767,5 +8767,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2603 "parser.yy"
+#line 2604 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8774,5 +8774,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2610 "parser.yy"
+#line 2611 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8781,5 +8781,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2621 "parser.yy"
+#line 2622 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -8788,5 +8788,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2624 "parser.yy"
+#line 2625 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -8795,5 +8795,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2626 "parser.yy"
+#line 2627 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     break;
@@ -8802,5 +8802,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2629 "parser.yy"
+#line 2630 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -8809,5 +8809,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2631 "parser.yy"
+#line 2632 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     break;
@@ -8816,5 +8816,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2633 "parser.yy"
+#line 2634 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     break;
@@ -8823,5 +8823,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2647 "parser.yy"
+#line 2648 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8830,5 +8830,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2649 "parser.yy"
+#line 2650 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8837,5 +8837,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2654 "parser.yy"
+#line 2655 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8844,5 +8844,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2656 "parser.yy"
+#line 2657 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8851,5 +8851,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2658 "parser.yy"
+#line 2659 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8858,5 +8858,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2660 "parser.yy"
+#line 2661 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8865,5 +8865,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2662 "parser.yy"
+#line 2663 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8872,5 +8872,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2668 "parser.yy"
+#line 2669 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8879,5 +8879,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2670 "parser.yy"
+#line 2671 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8886,5 +8886,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2672 "parser.yy"
+#line 2673 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8893,5 +8893,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2677 "parser.yy"
+#line 2678 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8900,5 +8900,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2679 "parser.yy"
+#line 2680 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8907,5 +8907,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2689 "parser.yy"
+#line 2690 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8914,5 +8914,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2699 "parser.yy"
+#line 2700 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8921,5 +8921,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2701 "parser.yy"
+#line 2702 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8928,5 +8928,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2703 "parser.yy"
+#line 2704 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8935,5 +8935,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2705 "parser.yy"
+#line 2706 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8942,5 +8942,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2707 "parser.yy"
+#line 2708 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8949,5 +8949,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2709 "parser.yy"
+#line 2710 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8956,5 +8956,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2716 "parser.yy"
+#line 2717 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8963,5 +8963,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2718 "parser.yy"
+#line 2719 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8970,5 +8970,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2720 "parser.yy"
+#line 2721 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8977,5 +8977,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2722 "parser.yy"
+#line 2723 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -8984,5 +8984,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2724 "parser.yy"
+#line 2725 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8991,5 +8991,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2726 "parser.yy"
+#line 2728 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8998,5 +8998,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2728 "parser.yy"
+#line 2730 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9005,5 +9005,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2730 "parser.yy"
+#line 2732 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9012,5 +9012,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2732 "parser.yy"
+#line 2734 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -9019,5 +9019,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2734 "parser.yy"
+#line 2736 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9026,5 +9026,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2739 "parser.yy"
+#line 2741 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -9033,5 +9033,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2741 "parser.yy"
+#line 2743 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -9040,5 +9040,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2746 "parser.yy"
+#line 2748 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     break;
@@ -9047,5 +9047,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2748 "parser.yy"
+#line 2750 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     break;
@@ -9054,5 +9054,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2775 "parser.yy"
+#line 2777 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9061,5 +9061,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2786 "parser.yy"
+#line 2788 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9068,5 +9068,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2788 "parser.yy"
+#line 2790 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9075,5 +9075,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2790 "parser.yy"
+#line 2792 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9082,5 +9082,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2792 "parser.yy"
+#line 2794 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9089,5 +9089,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2794 "parser.yy"
+#line 2796 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9096,5 +9096,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2796 "parser.yy"
+#line 2798 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9103,5 +9103,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2803 "parser.yy"
+#line 2805 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9110,5 +9110,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2805 "parser.yy"
+#line 2807 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9117,5 +9117,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2807 "parser.yy"
+#line 2809 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9124,5 +9124,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2809 "parser.yy"
+#line 2811 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9131,5 +9131,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2811 "parser.yy"
+#line 2813 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9138,5 +9138,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2813 "parser.yy"
+#line 2815 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9145,5 +9145,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2818 "parser.yy"
+#line 2820 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -9152,16 +9152,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2823 "parser.yy"
+#line 2825 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
     break;
 
   case 749:
-
-/* Line 1806 of yacc.c  */
-#line 2825 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
-    break;
-
-  case 750:
 
 /* Line 1806 of yacc.c  */
@@ -9170,8 +9163,15 @@
     break;
 
+  case 750:
+
+/* Line 1806 of yacc.c  */
+#line 2829 "parser.yy"
+    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
+    break;
+
   case 753:
 
 /* Line 1806 of yacc.c  */
-#line 2851 "parser.yy"
+#line 2853 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -9180,5 +9180,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2853 "parser.yy"
+#line 2855 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -9418,5 +9418,5 @@
 
 /* Line 2067 of yacc.c  */
-#line 2856 "parser.yy"
+#line 2858 "parser.yy"
 
 // ----end of grammar----
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision faddbd88e10faf4096d269d1ac28b46bfa0f57aa)
+++ src/Parser/parser.yy	(revision 315f6345fd4468ec768bbc8c18e049cf434bc841)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Oct  5 14:10:46 2016
-// Update Count     : 2002
+// Last Modified On : Wed Oct 19 22:19:33 2016
+// Update Count     : 2003
 //
 
@@ -278,10 +278,10 @@
 //
 // Cforall compounds this problem by introducing type names local to the scope of a declaration (for instance, those
-// introduced through "forall" qualifiers), and by introducing "type generators" -- parametrized types.  This latter
+// introduced through "forall" qualifiers), and by introducing "type generators" -- parameterized types.  This latter
 // type name creates a third class of identifiers that must be distinguished by the scanner.
 //
 // Since the scanner cannot distinguish among the different classes of identifiers without some context information, it
-// accesses a data structure (the TypedefTable) to allow classification of an identifier that it has just read.
-// Semantic actions during the parser update this data structure when the class of identifiers change.
+// accesses a data structure (TypedefTable) to allow classification of an identifier that it has just read.  Semantic
+// actions during the parser update this data structure when the class of identifiers change.
 //
 // Because the Cforall language is block-scoped, there is the possibility that an identifier can change its class in a
@@ -289,5 +289,5 @@
 // particular declaration, each declaration is itself a scope.  This requires distinguishing between type names that are
 // local to the current declaration scope and those that persist past the end of the declaration (i.e., names defined in
-// "typedef" or "type" declarations).
+// "typedef" or "otype" declarations).
 //
 // The non-terminals "push" and "pop" derive the empty string; their only use is to denote the opening and closing of
@@ -431,4 +431,5 @@
 field_name:
 	no_attr_identifier
+		// x.1, x.[0, 0.0]
 	| INTEGERconstant
 	;
@@ -2723,4 +2724,5 @@
 	| multi_array_dimension type_specifier
 		{ $$ = $2->addNewArray( $1 ); }
+
 	| '[' ']' new_identifier_parameter_ptr
 		{ $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
