Index: src/Parser/lex.cc
===================================================================
--- src/Parser/lex.cc	(revision f0121d7b1fdcae6c3362d9920d387c2a83a180d7)
+++ src/Parser/lex.cc	(revision a1e67ddc023331e04cc5481931be1d0923efc441)
@@ -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 f0121d7b1fdcae6c3362d9920d387c2a83a180d7)
+++ src/Parser/lex.ll	(revision a1e67ddc023331e04cc5481931be1d0923efc441)
@@ -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 f0121d7b1fdcae6c3362d9920d387c2a83a180d7)
+++ src/Parser/parser.cc	(revision a1e67ddc023331e04cc5481931be1d0923efc441)
@@ -1027,76 +1027,76 @@
      357,   359,   361,   366,   367,   373,   377,   379,   381,   383,
      385,   387,   389,   391,   393,   402,   403,   409,   410,   414,
-     415,   419,   422,   424,   426,   428,   433,   435,   440,   443,
-     445,   447,   452,   465,   467,   469,   471,   473,   475,   477,
-     479,   481,   483,   485,   492,   493,   499,   500,   501,   502,
-     506,   507,   509,   514,   515,   517,   519,   524,   525,   527,
-     532,   533,   535,   540,   541,   543,   545,   547,   552,   553,
-     555,   560,   561,   566,   567,   572,   573,   578,   579,   584,
-     585,   590,   591,   594,   596,   601,   606,   607,   609,   615,
-     616,   620,   621,   622,   623,   624,   625,   626,   627,   628,
-     629,   630,   631,   637,   639,   641,   643,   648,   649,   654,
-     655,   661,   662,   668,   669,   670,   671,   672,   673,   674,
-     675,   676,   686,   693,   695,   705,   706,   711,   713,   719,
-     721,   725,   726,   731,   736,   739,   741,   743,   753,   755,
-     766,   767,   769,   773,   775,   779,   780,   785,   786,   790,
-     795,   796,   800,   802,   808,   809,   813,   815,   817,   819,
-     825,   826,   830,   832,   837,   839,   841,   846,   848,   853,
-     855,   859,   862,   866,   869,   873,   875,   877,   879,   884,
-     886,   888,   893,   895,   897,   899,   901,   906,   908,   910,
-     912,   917,   929,   930,   935,   937,   942,   946,   948,   950,
-     952,   954,   960,   961,   967,   968,   972,   973,   978,   980,
-     986,   987,   989,   994,   999,  1009,  1011,  1015,  1016,  1021,
-    1023,  1027,  1028,  1032,  1034,  1038,  1039,  1043,  1044,  1048,
-    1049,  1064,  1065,  1066,  1067,  1068,  1072,  1077,  1084,  1094,
-    1099,  1104,  1112,  1117,  1122,  1127,  1132,  1140,  1162,  1167,
-    1174,  1176,  1183,  1188,  1193,  1204,  1209,  1214,  1219,  1224,
-    1233,  1238,  1246,  1247,  1248,  1249,  1255,  1260,  1268,  1269,
-    1270,  1271,  1275,  1276,  1277,  1278,  1283,  1284,  1293,  1294,
-    1299,  1300,  1305,  1307,  1309,  1311,  1313,  1316,  1315,  1327,
-    1328,  1330,  1340,  1341,  1346,  1348,  1350,  1352,  1354,  1357,
-    1359,  1362,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
-    1383,  1385,  1387,  1389,  1391,  1397,  1398,  1400,  1402,  1404,
-    1409,  1410,  1416,  1417,  1419,  1421,  1426,  1428,  1430,  1432,
-    1437,  1438,  1440,  1442,  1447,  1448,  1450,  1455,  1456,  1458,
-    1460,  1465,  1467,  1469,  1474,  1475,  1479,  1481,  1487,  1486,
-    1490,  1492,  1497,  1499,  1505,  1506,  1511,  1512,  1514,  1515,
-    1524,  1525,  1527,  1529,  1534,  1536,  1542,  1543,  1545,  1548,
-    1551,  1556,  1557,  1562,  1567,  1571,  1573,  1579,  1578,  1585,
-    1587,  1593,  1594,  1602,  1603,  1607,  1608,  1609,  1611,  1613,
-    1620,  1621,  1623,  1625,  1630,  1631,  1637,  1638,  1642,  1643,
-    1648,  1649,  1650,  1652,  1660,  1661,  1663,  1666,  1668,  1672,
-    1673,  1674,  1676,  1678,  1682,  1687,  1695,  1696,  1705,  1707,
-    1712,  1713,  1714,  1718,  1719,  1720,  1724,  1725,  1726,  1730,
-    1731,  1732,  1737,  1738,  1739,  1740,  1746,  1747,  1749,  1754,
-    1755,  1760,  1761,  1762,  1763,  1764,  1779,  1780,  1785,  1786,
-    1792,  1794,  1797,  1799,  1801,  1824,  1825,  1827,  1829,  1834,
-    1835,  1837,  1842,  1847,  1848,  1854,  1853,  1857,  1861,  1863,
-    1865,  1871,  1872,  1877,  1882,  1884,  1889,  1891,  1892,  1894,
-    1899,  1901,  1903,  1908,  1910,  1915,  1920,  1928,  1934,  1933,
-    1947,  1948,  1953,  1954,  1958,  1963,  1968,  1976,  1981,  1992,
-    1993,  1998,  1999,  2005,  2006,  2010,  2011,  2012,  2015,  2014,
-    2025,  2034,  2040,  2046,  2055,  2061,  2067,  2073,  2079,  2087,
-    2093,  2101,  2107,  2116,  2117,  2118,  2122,  2126,  2128,  2133,
-    2134,  2138,  2139,  2144,  2150,  2151,  2154,  2156,  2157,  2161,
-    2162,  2163,  2164,  2198,  2200,  2201,  2203,  2208,  2213,  2218,
-    2220,  2222,  2227,  2229,  2231,  2233,  2238,  2240,  2249,  2251,
-    2252,  2257,  2259,  2261,  2266,  2268,  2270,  2275,  2277,  2279,
-    2288,  2289,  2290,  2294,  2296,  2298,  2303,  2305,  2307,  2312,
-    2314,  2316,  2331,  2333,  2334,  2336,  2341,  2342,  2347,  2349,
-    2351,  2356,  2358,  2360,  2362,  2367,  2369,  2371,  2381,  2383,
-    2384,  2386,  2391,  2393,  2395,  2400,  2402,  2404,  2406,  2411,
-    2413,  2415,  2446,  2448,  2449,  2451,  2456,  2461,  2469,  2471,
-    2473,  2478,  2480,  2485,  2487,  2501,  2502,  2504,  2509,  2511,
-    2513,  2515,  2517,  2522,  2523,  2525,  2527,  2532,  2534,  2536,
-    2542,  2544,  2546,  2550,  2552,  2554,  2556,  2570,  2571,  2573,
-    2578,  2580,  2582,  2584,  2586,  2591,  2592,  2594,  2596,  2601,
-    2603,  2605,  2611,  2612,  2614,  2623,  2626,  2628,  2631,  2633,
-    2635,  2648,  2649,  2651,  2656,  2658,  2660,  2662,  2664,  2669,
-    2670,  2672,  2674,  2679,  2681,  2689,  2690,  2691,  2696,  2697,
-    2701,  2703,  2705,  2707,  2709,  2711,  2718,  2720,  2722,  2724,
-    2726,  2728,  2730,  2732,  2734,  2736,  2741,  2743,  2745,  2750,
-    2776,  2777,  2779,  2783,  2784,  2788,  2790,  2792,  2794,  2796,
-    2798,  2805,  2807,  2809,  2811,  2813,  2815,  2820,  2825,  2827,
-    2829,  2847,  2849,  2854,  2855
+     415,   419,   422,   424,   426,   428,   433,   436,   441,   444,
+     446,   448,   453,   466,   468,   470,   472,   474,   476,   478,
+     480,   482,   484,   486,   493,   494,   500,   501,   502,   503,
+     507,   508,   510,   515,   516,   518,   520,   525,   526,   528,
+     533,   534,   536,   541,   542,   544,   546,   548,   553,   554,
+     556,   561,   562,   567,   568,   573,   574,   579,   580,   585,
+     586,   591,   592,   595,   597,   602,   607,   608,   610,   616,
+     617,   621,   622,   623,   624,   625,   626,   627,   628,   629,
+     630,   631,   632,   638,   640,   642,   644,   649,   650,   655,
+     656,   662,   663,   669,   670,   671,   672,   673,   674,   675,
+     676,   677,   687,   694,   696,   706,   707,   712,   714,   720,
+     722,   726,   727,   732,   737,   740,   742,   744,   754,   756,
+     767,   768,   770,   774,   776,   780,   781,   786,   787,   791,
+     796,   797,   801,   803,   809,   810,   814,   816,   818,   820,
+     826,   827,   831,   833,   838,   840,   842,   847,   849,   854,
+     856,   860,   863,   867,   870,   874,   876,   878,   880,   885,
+     887,   889,   894,   896,   898,   900,   902,   907,   909,   911,
+     913,   918,   930,   931,   936,   938,   943,   947,   949,   951,
+     953,   955,   961,   962,   968,   969,   973,   974,   979,   981,
+     987,   988,   990,   995,  1000,  1010,  1012,  1016,  1017,  1022,
+    1024,  1028,  1029,  1033,  1035,  1039,  1040,  1044,  1045,  1049,
+    1050,  1065,  1066,  1067,  1068,  1069,  1073,  1078,  1085,  1095,
+    1100,  1105,  1113,  1118,  1123,  1128,  1133,  1141,  1163,  1168,
+    1175,  1177,  1184,  1189,  1194,  1205,  1210,  1215,  1220,  1225,
+    1234,  1239,  1247,  1248,  1249,  1250,  1256,  1261,  1269,  1270,
+    1271,  1272,  1276,  1277,  1278,  1279,  1284,  1285,  1294,  1295,
+    1300,  1301,  1306,  1308,  1310,  1312,  1314,  1317,  1316,  1328,
+    1329,  1331,  1341,  1342,  1347,  1349,  1351,  1353,  1355,  1358,
+    1360,  1363,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,
+    1384,  1386,  1388,  1390,  1392,  1398,  1399,  1401,  1403,  1405,
+    1410,  1411,  1417,  1418,  1420,  1422,  1427,  1429,  1431,  1433,
+    1438,  1439,  1441,  1443,  1448,  1449,  1451,  1456,  1457,  1459,
+    1461,  1466,  1468,  1470,  1475,  1476,  1480,  1482,  1488,  1487,
+    1491,  1493,  1498,  1500,  1506,  1507,  1512,  1513,  1515,  1516,
+    1525,  1526,  1528,  1530,  1535,  1537,  1543,  1544,  1546,  1549,
+    1552,  1557,  1558,  1563,  1568,  1572,  1574,  1580,  1579,  1586,
+    1588,  1594,  1595,  1603,  1604,  1608,  1609,  1610,  1612,  1614,
+    1621,  1622,  1624,  1626,  1631,  1632,  1638,  1639,  1643,  1644,
+    1649,  1650,  1651,  1653,  1661,  1662,  1664,  1667,  1669,  1673,
+    1674,  1675,  1677,  1679,  1683,  1688,  1696,  1697,  1706,  1708,
+    1713,  1714,  1715,  1719,  1720,  1721,  1725,  1726,  1727,  1731,
+    1732,  1733,  1738,  1739,  1740,  1741,  1747,  1748,  1750,  1755,
+    1756,  1761,  1762,  1763,  1764,  1765,  1780,  1781,  1786,  1787,
+    1793,  1795,  1798,  1800,  1802,  1825,  1826,  1828,  1830,  1835,
+    1836,  1838,  1843,  1848,  1849,  1855,  1854,  1858,  1862,  1864,
+    1866,  1872,  1873,  1878,  1883,  1885,  1890,  1892,  1893,  1895,
+    1900,  1902,  1904,  1909,  1911,  1916,  1921,  1929,  1935,  1934,
+    1948,  1949,  1954,  1955,  1959,  1964,  1969,  1977,  1982,  1993,
+    1994,  1999,  2000,  2006,  2007,  2011,  2012,  2013,  2016,  2015,
+    2026,  2035,  2041,  2047,  2056,  2062,  2068,  2074,  2080,  2088,
+    2094,  2102,  2108,  2117,  2118,  2119,  2123,  2127,  2129,  2134,
+    2135,  2139,  2140,  2145,  2151,  2152,  2155,  2157,  2158,  2162,
+    2163,  2164,  2165,  2199,  2201,  2202,  2204,  2209,  2214,  2219,
+    2221,  2223,  2228,  2230,  2232,  2234,  2239,  2241,  2250,  2252,
+    2253,  2258,  2260,  2262,  2267,  2269,  2271,  2276,  2278,  2280,
+    2289,  2290,  2291,  2295,  2297,  2299,  2304,  2306,  2308,  2313,
+    2315,  2317,  2332,  2334,  2335,  2337,  2342,  2343,  2348,  2350,
+    2352,  2357,  2359,  2361,  2363,  2368,  2370,  2372,  2382,  2384,
+    2385,  2387,  2392,  2394,  2396,  2401,  2403,  2405,  2407,  2412,
+    2414,  2416,  2447,  2449,  2450,  2452,  2457,  2462,  2470,  2472,
+    2474,  2479,  2481,  2486,  2488,  2502,  2503,  2505,  2510,  2512,
+    2514,  2516,  2518,  2523,  2524,  2526,  2528,  2533,  2535,  2537,
+    2543,  2545,  2547,  2551,  2553,  2555,  2557,  2571,  2572,  2574,
+    2579,  2581,  2583,  2585,  2587,  2592,  2593,  2595,  2597,  2602,
+    2604,  2606,  2612,  2613,  2615,  2624,  2627,  2629,  2632,  2634,
+    2636,  2649,  2650,  2652,  2657,  2659,  2661,  2663,  2665,  2670,
+    2671,  2673,  2675,  2680,  2682,  2690,  2691,  2692,  2697,  2698,
+    2702,  2704,  2706,  2708,  2710,  2712,  2719,  2721,  2723,  2725,
+    2727,  2730,  2732,  2734,  2736,  2738,  2743,  2745,  2747,  2752,
+    2778,  2779,  2781,  2785,  2786,  2790,  2792,  2794,  2796,  2798,
+    2800,  2807,  2809,  2811,  2813,  2815,  2817,  2822,  2827,  2829,
+    2831,  2849,  2851,  2856,  2857
 };
 #endif
@@ -5202,5 +5202,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 436 "parser.yy"
+#line 437 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     break;
@@ -5209,5 +5209,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 444 "parser.yy"
+#line 445 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -5216,5 +5216,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 446 "parser.yy"
+#line 447 "parser.yy"
     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     break;
@@ -5223,5 +5223,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 448 "parser.yy"
+#line 449 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     break;
@@ -5230,5 +5230,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 453 "parser.yy"
+#line 454 "parser.yy"
     {
 			switch ( (yyvsp[(1) - (2)].op) ) {
@@ -5248,5 +5248,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 466 "parser.yy"
+#line 467 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5255,5 +5255,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 468 "parser.yy"
+#line 469 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5262,5 +5262,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 470 "parser.yy"
+#line 471 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5269,5 +5269,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 472 "parser.yy"
+#line 473 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5276,5 +5276,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 474 "parser.yy"
+#line 475 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     break;
@@ -5283,5 +5283,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 476 "parser.yy"
+#line 477 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -5290,5 +5290,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 478 "parser.yy"
+#line 479 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     break;
@@ -5297,5 +5297,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 480 "parser.yy"
+#line 481 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     break;
@@ -5304,5 +5304,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 482 "parser.yy"
+#line 483 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
     break;
@@ -5311,5 +5311,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 484 "parser.yy"
+#line 485 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     break;
@@ -5318,5 +5318,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 486 "parser.yy"
+#line 487 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     break;
@@ -5325,5 +5325,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 492 "parser.yy"
+#line 493 "parser.yy"
     { (yyval.op) = OperKinds::PointTo; }
     break;
@@ -5332,5 +5332,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 493 "parser.yy"
+#line 494 "parser.yy"
     { (yyval.op) = OperKinds::AddressOf; }
     break;
@@ -5339,5 +5339,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 499 "parser.yy"
+#line 500 "parser.yy"
     { (yyval.op) = OperKinds::UnPlus; }
     break;
@@ -5346,5 +5346,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 500 "parser.yy"
+#line 501 "parser.yy"
     { (yyval.op) = OperKinds::UnMinus; }
     break;
@@ -5353,5 +5353,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 501 "parser.yy"
+#line 502 "parser.yy"
     { (yyval.op) = OperKinds::Neg; }
     break;
@@ -5360,5 +5360,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 502 "parser.yy"
+#line 503 "parser.yy"
     { (yyval.op) = OperKinds::BitNeg; }
     break;
@@ -5367,5 +5367,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 508 "parser.yy"
+#line 509 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -5374,5 +5374,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 510 "parser.yy"
+#line 511 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -5381,5 +5381,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 516 "parser.yy"
+#line 517 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5388,5 +5388,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 518 "parser.yy"
+#line 519 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5395,5 +5395,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 520 "parser.yy"
+#line 521 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5402,5 +5402,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 526 "parser.yy"
+#line 527 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5409,5 +5409,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 528 "parser.yy"
+#line 529 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5416,5 +5416,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 534 "parser.yy"
+#line 535 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5423,5 +5423,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 536 "parser.yy"
+#line 537 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5430,5 +5430,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 542 "parser.yy"
+#line 543 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5437,5 +5437,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 544 "parser.yy"
+#line 545 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5444,5 +5444,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 546 "parser.yy"
+#line 547 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5451,5 +5451,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 548 "parser.yy"
+#line 549 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5458,5 +5458,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 554 "parser.yy"
+#line 555 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5465,5 +5465,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 556 "parser.yy"
+#line 557 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5472,5 +5472,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 562 "parser.yy"
+#line 563 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5479,5 +5479,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 568 "parser.yy"
+#line 569 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5486,5 +5486,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 574 "parser.yy"
+#line 575 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5493,5 +5493,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 580 "parser.yy"
+#line 581 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     break;
@@ -5500,5 +5500,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 586 "parser.yy"
+#line 587 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     break;
@@ -5507,5 +5507,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 592 "parser.yy"
+#line 593 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     break;
@@ -5514,5 +5514,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 595 "parser.yy"
+#line 596 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -5521,5 +5521,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 597 "parser.yy"
+#line 598 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     break;
@@ -5528,5 +5528,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 608 "parser.yy"
+#line 609 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5535,5 +5535,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 610 "parser.yy"
+#line 611 "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;
@@ -5542,5 +5542,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 615 "parser.yy"
+#line 616 "parser.yy"
     { (yyval.en) = nullptr; }
     break;
@@ -5549,5 +5549,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 620 "parser.yy"
+#line 621 "parser.yy"
     { (yyval.op) = OperKinds::Assign; }
     break;
@@ -5556,5 +5556,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 621 "parser.yy"
+#line 622 "parser.yy"
     { (yyval.op) = OperKinds::AtAssn; }
     break;
@@ -5563,5 +5563,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 622 "parser.yy"
+#line 623 "parser.yy"
     { (yyval.op) = OperKinds::MulAssn; }
     break;
@@ -5570,5 +5570,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 623 "parser.yy"
+#line 624 "parser.yy"
     { (yyval.op) = OperKinds::DivAssn; }
     break;
@@ -5577,5 +5577,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 624 "parser.yy"
+#line 625 "parser.yy"
     { (yyval.op) = OperKinds::ModAssn; }
     break;
@@ -5584,5 +5584,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 625 "parser.yy"
+#line 626 "parser.yy"
     { (yyval.op) = OperKinds::PlusAssn; }
     break;
@@ -5591,5 +5591,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 626 "parser.yy"
+#line 627 "parser.yy"
     { (yyval.op) = OperKinds::MinusAssn; }
     break;
@@ -5598,5 +5598,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 627 "parser.yy"
+#line 628 "parser.yy"
     { (yyval.op) = OperKinds::LSAssn; }
     break;
@@ -5605,5 +5605,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 628 "parser.yy"
+#line 629 "parser.yy"
     { (yyval.op) = OperKinds::RSAssn; }
     break;
@@ -5612,5 +5612,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 629 "parser.yy"
+#line 630 "parser.yy"
     { (yyval.op) = OperKinds::AndAssn; }
     break;
@@ -5619,5 +5619,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 630 "parser.yy"
+#line 631 "parser.yy"
     { (yyval.op) = OperKinds::ERAssn; }
     break;
@@ -5626,5 +5626,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 631 "parser.yy"
+#line 632 "parser.yy"
     { (yyval.op) = OperKinds::OrAssn; }
     break;
@@ -5633,5 +5633,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 638 "parser.yy"
+#line 639 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_tuple() ); }
     break;
@@ -5640,5 +5640,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 640 "parser.yy"
+#line 641 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     break;
@@ -5647,5 +5647,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 642 "parser.yy"
+#line 643 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     break;
@@ -5654,5 +5654,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 644 "parser.yy"
+#line 645 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     break;
@@ -5661,5 +5661,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 650 "parser.yy"
+#line 651 "parser.yy"
     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     break;
@@ -5668,5 +5668,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 656 "parser.yy"
+#line 657 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5675,5 +5675,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 661 "parser.yy"
+#line 662 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -5682,5 +5682,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 670 "parser.yy"
+#line 671 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     break;
@@ -5689,5 +5689,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 677 "parser.yy"
+#line 678 "parser.yy"
     {
 			Token fn;
@@ -5700,5 +5700,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 687 "parser.yy"
+#line 688 "parser.yy"
     {
 			(yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
@@ -5709,5 +5709,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 694 "parser.yy"
+#line 695 "parser.yy"
     { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     break;
@@ -5716,5 +5716,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 701 "parser.yy"
+#line 702 "parser.yy"
     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     break;
@@ -5723,5 +5723,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 707 "parser.yy"
+#line 708 "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;
@@ -5730,5 +5730,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 712 "parser.yy"
+#line 713 "parser.yy"
     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     break;
@@ -5737,5 +5737,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 714 "parser.yy"
+#line 715 "parser.yy"
     {	// mark all fields in list
 			for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
@@ -5748,5 +5748,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 720 "parser.yy"
+#line 721 "parser.yy"
     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     break;
@@ -5755,5 +5755,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 727 "parser.yy"
+#line 728 "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;
@@ -5762,5 +5762,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 732 "parser.yy"
+#line 733 "parser.yy"
     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     break;
@@ -5769,5 +5769,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 738 "parser.yy"
+#line 739 "parser.yy"
     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     break;
@@ -5776,5 +5776,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 740 "parser.yy"
+#line 741 "parser.yy"
     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
     break;
@@ -5783,5 +5783,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 742 "parser.yy"
+#line 743 "parser.yy"
     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     break;
@@ -5790,5 +5790,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 744 "parser.yy"
+#line 745 "parser.yy"
     {
 			StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
@@ -5805,5 +5805,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 754 "parser.yy"
+#line 755 "parser.yy"
     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     break;
@@ -5812,5 +5812,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 756 "parser.yy"
+#line 757 "parser.yy"
     {
 			StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
@@ -5822,5 +5822,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 766 "parser.yy"
+#line 767 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -5829,5 +5829,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 768 "parser.yy"
+#line 769 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -5836,5 +5836,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 773 "parser.yy"
+#line 774 "parser.yy"
     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     break;
@@ -5843,5 +5843,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 775 "parser.yy"
+#line 776 "parser.yy"
     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     break;
@@ -5850,5 +5850,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 779 "parser.yy"
+#line 780 "parser.yy"
     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     break;
@@ -5857,5 +5857,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 780 "parser.yy"
+#line 781 "parser.yy"
     { (yyval.sn) = new StatementNode( build_default() ); }
     break;
@@ -5864,5 +5864,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 786 "parser.yy"
+#line 787 "parser.yy"
     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     break;
@@ -5871,5 +5871,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 790 "parser.yy"
+#line 791 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     break;
@@ -5878,5 +5878,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 795 "parser.yy"
+#line 796 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -5885,5 +5885,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 801 "parser.yy"
+#line 802 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     break;
@@ -5892,5 +5892,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 803 "parser.yy"
+#line 804 "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;
@@ -5899,5 +5899,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 808 "parser.yy"
+#line 809 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -5906,5 +5906,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 814 "parser.yy"
+#line 815 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     break;
@@ -5913,5 +5913,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 816 "parser.yy"
+#line 817 "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;
@@ -5920,5 +5920,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 818 "parser.yy"
+#line 819 "parser.yy"
     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     break;
@@ -5927,5 +5927,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 820 "parser.yy"
+#line 821 "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;
@@ -5934,5 +5934,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 825 "parser.yy"
+#line 826 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     break;
@@ -5941,5 +5941,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 831 "parser.yy"
+#line 832 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -5948,5 +5948,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 833 "parser.yy"
+#line 834 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -5955,5 +5955,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 838 "parser.yy"
+#line 839 "parser.yy"
     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     break;
@@ -5962,5 +5962,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 840 "parser.yy"
+#line 841 "parser.yy"
     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
     break;
@@ -5969,5 +5969,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 842 "parser.yy"
+#line 843 "parser.yy"
     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     break;
@@ -5976,5 +5976,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 847 "parser.yy"
+#line 848 "parser.yy"
     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     break;
@@ -5983,5 +5983,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 849 "parser.yy"
+#line 850 "parser.yy"
     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     break;
@@ -5990,5 +5990,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 854 "parser.yy"
+#line 855 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     break;
@@ -5997,5 +5997,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 858 "parser.yy"
+#line 859 "parser.yy"
     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     break;
@@ -6004,5 +6004,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 861 "parser.yy"
+#line 862 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     break;
@@ -6011,5 +6011,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 865 "parser.yy"
+#line 866 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     break;
@@ -6018,5 +6018,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 868 "parser.yy"
+#line 869 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     break;
@@ -6025,5 +6025,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 872 "parser.yy"
+#line 873 "parser.yy"
     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     break;
@@ -6032,5 +6032,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 874 "parser.yy"
+#line 875 "parser.yy"
     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     break;
@@ -6039,5 +6039,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 876 "parser.yy"
+#line 877 "parser.yy"
     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     break;
@@ -6046,5 +6046,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 878 "parser.yy"
+#line 879 "parser.yy"
     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     break;
@@ -6053,5 +6053,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 880 "parser.yy"
+#line 881 "parser.yy"
     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     break;
@@ -6060,5 +6060,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 885 "parser.yy"
+#line 886 "parser.yy"
     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     break;
@@ -6067,5 +6067,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 887 "parser.yy"
+#line 888 "parser.yy"
     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     break;
@@ -6074,5 +6074,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 889 "parser.yy"
+#line 890 "parser.yy"
     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     break;
@@ -6081,5 +6081,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 896 "parser.yy"
+#line 897 "parser.yy"
     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     break;
@@ -6088,5 +6088,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 898 "parser.yy"
+#line 899 "parser.yy"
     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     break;
@@ -6095,5 +6095,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 900 "parser.yy"
+#line 901 "parser.yy"
     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     break;
@@ -6102,5 +6102,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 902 "parser.yy"
+#line 903 "parser.yy"
     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     break;
@@ -6109,5 +6109,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 907 "parser.yy"
+#line 908 "parser.yy"
     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     break;
@@ -6116,5 +6116,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 909 "parser.yy"
+#line 910 "parser.yy"
     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     break;
@@ -6123,5 +6123,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 911 "parser.yy"
+#line 912 "parser.yy"
     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     break;
@@ -6130,5 +6130,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 913 "parser.yy"
+#line 914 "parser.yy"
     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     break;
@@ -6137,5 +6137,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 918 "parser.yy"
+#line 919 "parser.yy"
     {
 			(yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
@@ -6146,5 +6146,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 931 "parser.yy"
+#line 932 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6156,5 +6156,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 936 "parser.yy"
+#line 937 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6163,5 +6163,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 938 "parser.yy"
+#line 939 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6173,5 +6173,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 947 "parser.yy"
+#line 948 "parser.yy"
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     break;
@@ -6180,5 +6180,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 949 "parser.yy"
+#line 950 "parser.yy"
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     break;
@@ -6187,5 +6187,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 951 "parser.yy"
+#line 952 "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;
@@ -6194,5 +6194,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 953 "parser.yy"
+#line 954 "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;
@@ -6201,5 +6201,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 955 "parser.yy"
+#line 956 "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;
@@ -6208,5 +6208,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 960 "parser.yy"
+#line 961 "parser.yy"
     { (yyval.flag) = false; }
     break;
@@ -6215,5 +6215,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 962 "parser.yy"
+#line 963 "parser.yy"
     { (yyval.flag) = true; }
     break;
@@ -6222,5 +6222,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 967 "parser.yy"
+#line 968 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -6229,5 +6229,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 974 "parser.yy"
+#line 975 "parser.yy"
     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     break;
@@ -6236,5 +6236,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 979 "parser.yy"
+#line 980 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     break;
@@ -6243,5 +6243,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 981 "parser.yy"
+#line 982 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     break;
@@ -6250,5 +6250,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 986 "parser.yy"
+#line 987 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -6257,5 +6257,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 988 "parser.yy"
+#line 989 "parser.yy"
     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     break;
@@ -6264,5 +6264,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 990 "parser.yy"
+#line 991 "parser.yy"
     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
     break;
@@ -6271,5 +6271,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 995 "parser.yy"
+#line 996 "parser.yy"
     {
 			(yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
@@ -6281,5 +6281,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1000 "parser.yy"
+#line 1001 "parser.yy"
     {
 			(yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
@@ -6291,5 +6291,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1010 "parser.yy"
+#line 1011 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -6298,5 +6298,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1017 "parser.yy"
+#line 1018 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6305,5 +6305,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1022 "parser.yy"
+#line 1023 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -6312,16 +6312,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 1029 "parser.yy"
+#line 1030 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
 
   case 247:
-
-/* Line 1806 of yacc.c  */
-#line 1043 "parser.yy"
-    {}
-    break;
-
-  case 248:
 
 /* Line 1806 of yacc.c  */
@@ -6330,8 +6323,15 @@
     break;
 
+  case 248:
+
+/* Line 1806 of yacc.c  */
+#line 1045 "parser.yy"
+    {}
+    break;
+
   case 256:
 
 /* Line 1806 of yacc.c  */
-#line 1073 "parser.yy"
+#line 1074 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6343,5 +6343,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1080 "parser.yy"
+#line 1081 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6353,5 +6353,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1085 "parser.yy"
+#line 1086 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
@@ -6363,5 +6363,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1095 "parser.yy"
+#line 1096 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
@@ -6373,5 +6373,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1100 "parser.yy"
+#line 1101 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
@@ -6383,5 +6383,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1105 "parser.yy"
+#line 1106 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
@@ -6393,5 +6393,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1113 "parser.yy"
+#line 1114 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6403,5 +6403,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1118 "parser.yy"
+#line 1119 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6413,5 +6413,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1123 "parser.yy"
+#line 1124 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6423,5 +6423,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1128 "parser.yy"
+#line 1129 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6433,5 +6433,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1133 "parser.yy"
+#line 1134 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
@@ -6443,5 +6443,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1141 "parser.yy"
+#line 1142 "parser.yy"
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
@@ -6452,5 +6452,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1164 "parser.yy"
+#line 1165 "parser.yy"
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
@@ -6461,5 +6461,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1168 "parser.yy"
+#line 1169 "parser.yy"
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
@@ -6470,5 +6470,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1175 "parser.yy"
+#line 1176 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -6477,5 +6477,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1179 "parser.yy"
+#line 1180 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     break;
@@ -6484,5 +6484,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1184 "parser.yy"
+#line 1185 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6494,5 +6494,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1189 "parser.yy"
+#line 1190 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6504,5 +6504,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1194 "parser.yy"
+#line 1195 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
@@ -6514,5 +6514,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1205 "parser.yy"
+#line 1206 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6524,5 +6524,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1210 "parser.yy"
+#line 1211 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6534,5 +6534,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1215 "parser.yy"
+#line 1216 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6544,5 +6544,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1220 "parser.yy"
+#line 1221 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6554,5 +6554,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1225 "parser.yy"
+#line 1226 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
@@ -6564,5 +6564,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1234 "parser.yy"
+#line 1235 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
@@ -6574,5 +6574,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1239 "parser.yy"
+#line 1240 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
@@ -6584,5 +6584,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1256 "parser.yy"
+#line 1257 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6594,5 +6594,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1261 "parser.yy"
+#line 1262 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6604,5 +6604,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1283 "parser.yy"
+#line 1284 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -6611,5 +6611,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1295 "parser.yy"
+#line 1296 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6618,5 +6618,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1306 "parser.yy"
+#line 1307 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     break;
@@ -6625,5 +6625,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1308 "parser.yy"
+#line 1309 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     break;
@@ -6632,5 +6632,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1310 "parser.yy"
+#line 1311 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     break;
@@ -6639,5 +6639,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1312 "parser.yy"
+#line 1313 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     break;
@@ -6646,5 +6646,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1314 "parser.yy"
+#line 1315 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     break;
@@ -6653,5 +6653,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1316 "parser.yy"
+#line 1317 "parser.yy"
     {
 			typedefTable.enterScope();
@@ -6662,5 +6662,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1320 "parser.yy"
+#line 1321 "parser.yy"
     {
 			typedefTable.leaveScope();
@@ -6672,5 +6672,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1329 "parser.yy"
+#line 1330 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6679,5 +6679,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1331 "parser.yy"
+#line 1332 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6686,5 +6686,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1342 "parser.yy"
+#line 1343 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6693,5 +6693,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1347 "parser.yy"
+#line 1348 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     break;
@@ -6700,5 +6700,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1349 "parser.yy"
+#line 1350 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     break;
@@ -6707,5 +6707,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1351 "parser.yy"
+#line 1352 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     break;
@@ -6714,5 +6714,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1353 "parser.yy"
+#line 1354 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     break;
@@ -6721,5 +6721,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1356 "parser.yy"
+#line 1357 "parser.yy"
     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     break;
@@ -6728,5 +6728,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1358 "parser.yy"
+#line 1359 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     break;
@@ -6735,5 +6735,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1361 "parser.yy"
+#line 1362 "parser.yy"
     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     break;
@@ -6742,5 +6742,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1363 "parser.yy"
+#line 1364 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     break;
@@ -6749,5 +6749,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1368 "parser.yy"
+#line 1369 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     break;
@@ -6756,5 +6756,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1370 "parser.yy"
+#line 1371 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     break;
@@ -6763,5 +6763,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1372 "parser.yy"
+#line 1373 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     break;
@@ -6770,5 +6770,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1374 "parser.yy"
+#line 1375 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     break;
@@ -6777,5 +6777,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1376 "parser.yy"
+#line 1377 "parser.yy"
     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     break;
@@ -6784,5 +6784,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1378 "parser.yy"
+#line 1379 "parser.yy"
     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     break;
@@ -6791,5 +6791,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1380 "parser.yy"
+#line 1381 "parser.yy"
     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     break;
@@ -6798,5 +6798,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1382 "parser.yy"
+#line 1383 "parser.yy"
     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     break;
@@ -6805,5 +6805,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1384 "parser.yy"
+#line 1385 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     break;
@@ -6812,5 +6812,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1386 "parser.yy"
+#line 1387 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     break;
@@ -6819,5 +6819,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1388 "parser.yy"
+#line 1389 "parser.yy"
     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     break;
@@ -6826,5 +6826,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1390 "parser.yy"
+#line 1391 "parser.yy"
     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     break;
@@ -6833,5 +6833,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1392 "parser.yy"
+#line 1393 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     break;
@@ -6840,5 +6840,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1399 "parser.yy"
+#line 1400 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6847,5 +6847,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1401 "parser.yy"
+#line 1402 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6854,5 +6854,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1403 "parser.yy"
+#line 1404 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6861,5 +6861,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1405 "parser.yy"
+#line 1406 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -6868,5 +6868,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1411 "parser.yy"
+#line 1412 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6875,5 +6875,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1418 "parser.yy"
+#line 1419 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6882,5 +6882,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1420 "parser.yy"
+#line 1421 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6889,5 +6889,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1422 "parser.yy"
+#line 1423 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6896,5 +6896,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1427 "parser.yy"
+#line 1428 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     break;
@@ -6903,5 +6903,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1429 "parser.yy"
+#line 1430 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     break;
@@ -6910,5 +6910,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1431 "parser.yy"
+#line 1432 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -6917,5 +6917,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1433 "parser.yy"
+#line 1434 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     break;
@@ -6924,5 +6924,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1439 "parser.yy"
+#line 1440 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6931,5 +6931,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1441 "parser.yy"
+#line 1442 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6938,5 +6938,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1443 "parser.yy"
+#line 1444 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6945,5 +6945,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1449 "parser.yy"
+#line 1450 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6952,5 +6952,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1451 "parser.yy"
+#line 1452 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6959,5 +6959,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1457 "parser.yy"
+#line 1458 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6966,5 +6966,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1459 "parser.yy"
+#line 1460 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6973,5 +6973,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1461 "parser.yy"
+#line 1462 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6980,5 +6980,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1466 "parser.yy"
+#line 1467 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -6987,5 +6987,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1468 "parser.yy"
+#line 1469 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6994,5 +6994,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1470 "parser.yy"
+#line 1471 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7001,5 +7001,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1480 "parser.yy"
+#line 1481 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
     break;
@@ -7008,5 +7008,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1482 "parser.yy"
+#line 1483 "parser.yy"
     {
 			typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
@@ -7018,5 +7018,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1487 "parser.yy"
+#line 1488 "parser.yy"
     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     break;
@@ -7025,5 +7025,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1489 "parser.yy"
+#line 1490 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     break;
@@ -7032,5 +7032,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1491 "parser.yy"
+#line 1492 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     break;
@@ -7039,5 +7039,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1493 "parser.yy"
+#line 1494 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     break;
@@ -7046,5 +7046,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1498 "parser.yy"
+#line 1499 "parser.yy"
     { (yyval.aggKey) = DeclarationNode::Struct; }
     break;
@@ -7053,5 +7053,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1500 "parser.yy"
+#line 1501 "parser.yy"
     { (yyval.aggKey) = DeclarationNode::Union; }
     break;
@@ -7060,5 +7060,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1505 "parser.yy"
+#line 1506 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7067,5 +7067,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1507 "parser.yy"
+#line 1508 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     break;
@@ -7074,5 +7074,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1513 "parser.yy"
+#line 1514 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     break;
@@ -7081,5 +7081,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1516 "parser.yy"
+#line 1517 "parser.yy"
     {	// mark all fields in list
 			for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
@@ -7092,5 +7092,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1526 "parser.yy"
+#line 1527 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     break;
@@ -7099,5 +7099,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1528 "parser.yy"
+#line 1529 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     break;
@@ -7106,5 +7106,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1530 "parser.yy"
+#line 1531 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     break;
@@ -7113,5 +7113,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1535 "parser.yy"
+#line 1536 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7120,5 +7120,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1537 "parser.yy"
+#line 1538 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     break;
@@ -7127,5 +7127,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1542 "parser.yy"
+#line 1543 "parser.yy"
     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     break;
@@ -7134,5 +7134,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1544 "parser.yy"
+#line 1545 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     break;
@@ -7141,5 +7141,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;
@@ -7148,5 +7148,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1550 "parser.yy"
+#line 1551 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7155,5 +7155,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1556 "parser.yy"
+#line 1557 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -7162,5 +7162,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1558 "parser.yy"
+#line 1559 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -7169,5 +7169,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1563 "parser.yy"
+#line 1564 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -7176,5 +7176,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1572 "parser.yy"
+#line 1573 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -7183,5 +7183,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1574 "parser.yy"
+#line 1575 "parser.yy"
     {
 			typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
@@ -7193,5 +7193,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1579 "parser.yy"
+#line 1580 "parser.yy"
     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     break;
@@ -7200,5 +7200,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1581 "parser.yy"
+#line 1582 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     break;
@@ -7207,5 +7207,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1586 "parser.yy"
+#line 1587 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7214,5 +7214,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1588 "parser.yy"
+#line 1589 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -7221,5 +7221,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1593 "parser.yy"
+#line 1594 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -7228,5 +7228,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1595 "parser.yy"
+#line 1596 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -7235,5 +7235,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1602 "parser.yy"
+#line 1603 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7242,5 +7242,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1610 "parser.yy"
+#line 1611 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7249,5 +7249,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1612 "parser.yy"
+#line 1613 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7256,5 +7256,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1614 "parser.yy"
+#line 1615 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7263,5 +7263,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1622 "parser.yy"
+#line 1623 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7270,5 +7270,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1624 "parser.yy"
+#line 1625 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7277,5 +7277,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1626 "parser.yy"
+#line 1627 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     break;
@@ -7284,5 +7284,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1632 "parser.yy"
+#line 1633 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7291,5 +7291,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1637 "parser.yy"
+#line 1638 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7298,5 +7298,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1644 "parser.yy"
+#line 1645 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7305,5 +7305,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1651 "parser.yy"
+#line 1652 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7312,5 +7312,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1653 "parser.yy"
+#line 1654 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7319,5 +7319,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;
@@ -7326,5 +7326,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1665 "parser.yy"
+#line 1666 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     break;
@@ -7333,5 +7333,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1667 "parser.yy"
+#line 1668 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     break;
@@ -7340,5 +7340,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1677 "parser.yy"
+#line 1678 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7347,5 +7347,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1683 "parser.yy"
+#line 1684 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7357,5 +7357,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1688 "parser.yy"
+#line 1689 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7367,5 +7367,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1697 "parser.yy"
+#line 1698 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7374,5 +7374,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1706 "parser.yy"
+#line 1707 "parser.yy"
     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -7381,5 +7381,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1708 "parser.yy"
+#line 1709 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     break;
@@ -7388,5 +7388,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1733 "parser.yy"
+#line 1734 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7395,5 +7395,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1741 "parser.yy"
+#line 1742 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7402,5 +7402,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1746 "parser.yy"
+#line 1747 "parser.yy"
     { (yyval.in) = 0; }
     break;
@@ -7409,5 +7409,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1748 "parser.yy"
+#line 1749 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in); }
     break;
@@ -7416,5 +7416,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1750 "parser.yy"
+#line 1751 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     break;
@@ -7423,5 +7423,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1754 "parser.yy"
+#line 1755 "parser.yy"
     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     break;
@@ -7430,5 +7430,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1755 "parser.yy"
+#line 1756 "parser.yy"
     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     break;
@@ -7437,5 +7437,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1760 "parser.yy"
+#line 1761 "parser.yy"
     { (yyval.in) = 0; }
     break;
@@ -7444,5 +7444,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1762 "parser.yy"
+#line 1763 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     break;
@@ -7451,5 +7451,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1763 "parser.yy"
+#line 1764 "parser.yy"
     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     break;
@@ -7458,5 +7458,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1765 "parser.yy"
+#line 1766 "parser.yy"
     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     break;
@@ -7465,5 +7465,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1781 "parser.yy"
+#line 1782 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     break;
@@ -7472,5 +7472,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1787 "parser.yy"
+#line 1788 "parser.yy"
     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -7479,5 +7479,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1793 "parser.yy"
+#line 1794 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     break;
@@ -7486,5 +7486,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1796 "parser.yy"
+#line 1797 "parser.yy"
     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     break;
@@ -7493,5 +7493,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1798 "parser.yy"
+#line 1799 "parser.yy"
     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     break;
@@ -7500,5 +7500,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1800 "parser.yy"
+#line 1801 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     break;
@@ -7507,5 +7507,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1802 "parser.yy"
+#line 1803 "parser.yy"
     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     break;
@@ -7514,5 +7514,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1826 "parser.yy"
+#line 1827 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7521,5 +7521,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1828 "parser.yy"
+#line 1829 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7528,5 +7528,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1830 "parser.yy"
+#line 1831 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7535,5 +7535,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1836 "parser.yy"
+#line 1837 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7542,5 +7542,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1838 "parser.yy"
+#line 1839 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7549,5 +7549,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1843 "parser.yy"
+#line 1844 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     break;
@@ -7556,5 +7556,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1849 "parser.yy"
+#line 1850 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -7563,5 +7563,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1854 "parser.yy"
+#line 1855 "parser.yy"
     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     break;
@@ -7570,5 +7570,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1856 "parser.yy"
+#line 1857 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -7577,5 +7577,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1862 "parser.yy"
+#line 1863 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Otype; }
     break;
@@ -7584,5 +7584,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1864 "parser.yy"
+#line 1865 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Ftype; }
     break;
@@ -7591,5 +7591,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1866 "parser.yy"
+#line 1867 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Dtype; }
     break;
@@ -7598,5 +7598,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1871 "parser.yy"
+#line 1872 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7605,5 +7605,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1873 "parser.yy"
+#line 1874 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     break;
@@ -7612,5 +7612,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1878 "parser.yy"
+#line 1879 "parser.yy"
     {
 			typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
@@ -7622,5 +7622,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1883 "parser.yy"
+#line 1884 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     break;
@@ -7629,5 +7629,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1885 "parser.yy"
+#line 1886 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7636,5 +7636,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1890 "parser.yy"
+#line 1891 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     break;
@@ -7643,5 +7643,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1893 "parser.yy"
+#line 1894 "parser.yy"
     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     break;
@@ -7650,5 +7650,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1895 "parser.yy"
+#line 1896 "parser.yy"
     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     break;
@@ -7657,5 +7657,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1900 "parser.yy"
+#line 1901 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     break;
@@ -7664,5 +7664,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1902 "parser.yy"
+#line 1903 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -7671,5 +7671,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1904 "parser.yy"
+#line 1905 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -7678,5 +7678,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1909 "parser.yy"
+#line 1910 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7685,5 +7685,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1911 "parser.yy"
+#line 1912 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -7692,5 +7692,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1916 "parser.yy"
+#line 1917 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
@@ -7702,5 +7702,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1921 "parser.yy"
+#line 1922 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
@@ -7712,5 +7712,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1929 "parser.yy"
+#line 1930 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
@@ -7722,5 +7722,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1934 "parser.yy"
+#line 1935 "parser.yy"
     {
 			typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
@@ -7732,5 +7732,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1939 "parser.yy"
+#line 1940 "parser.yy"
     {
 			typedefTable.leaveTrait();
@@ -7743,5 +7743,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1949 "parser.yy"
+#line 1950 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7750,5 +7750,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1959 "parser.yy"
+#line 1960 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7760,5 +7760,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1964 "parser.yy"
+#line 1965 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7770,5 +7770,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1969 "parser.yy"
+#line 1970 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
@@ -7780,5 +7780,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1977 "parser.yy"
+#line 1978 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7790,5 +7790,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1982 "parser.yy"
+#line 1983 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7800,5 +7800,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1992 "parser.yy"
+#line 1993 "parser.yy"
     {}
     break;
@@ -7807,5 +7807,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1994 "parser.yy"
+#line 1995 "parser.yy"
     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);	}
     break;
@@ -7814,5 +7814,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2000 "parser.yy"
+#line 2001 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     break;
@@ -7821,5 +7821,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2005 "parser.yy"
+#line 2006 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7828,5 +7828,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2013 "parser.yy"
+#line 2014 "parser.yy"
     {}
     break;
@@ -7835,5 +7835,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2015 "parser.yy"
+#line 2016 "parser.yy"
     {
 			linkageStack.push( linkage );				// handle nested extern "C"/"Cforall"
@@ -7845,5 +7845,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2020 "parser.yy"
+#line 2021 "parser.yy"
     {
 			linkage = linkageStack.top();
@@ -7856,5 +7856,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2026 "parser.yy"
+#line 2027 "parser.yy"
     {	// mark all fields in list
 			for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
@@ -7867,5 +7867,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2041 "parser.yy"
+#line 2042 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7878,5 +7878,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2047 "parser.yy"
+#line 2048 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7889,5 +7889,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2056 "parser.yy"
+#line 2057 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7900,5 +7900,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2062 "parser.yy"
+#line 2063 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7911,5 +7911,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2068 "parser.yy"
+#line 2069 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7922,5 +7922,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2074 "parser.yy"
+#line 2075 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7933,5 +7933,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2080 "parser.yy"
+#line 2081 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7944,5 +7944,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2088 "parser.yy"
+#line 2089 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7955,5 +7955,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2094 "parser.yy"
+#line 2095 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7966,5 +7966,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2102 "parser.yy"
+#line 2103 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7977,5 +7977,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2108 "parser.yy"
+#line 2109 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7988,5 +7988,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2123 "parser.yy"
+#line 2124 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -7995,5 +7995,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2128 "parser.yy"
+#line 2129 "parser.yy"
     { delete (yyvsp[(3) - (5)].str); }
     break;
@@ -8002,5 +8002,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2133 "parser.yy"
+#line 2134 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -8009,5 +8009,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2140 "parser.yy"
+#line 2141 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8016,5 +8016,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2146 "parser.yy"
+#line 2147 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -8023,5 +8023,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2157 "parser.yy"
+#line 2158 "parser.yy"
     { delete (yyvsp[(3) - (4)].en); }
     break;
@@ -8030,16 +8030,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2161 "parser.yy"
+#line 2162 "parser.yy"
     { delete (yyvsp[(1) - (1)].tok); }
     break;
 
   case 560:
-
-/* Line 1806 of yacc.c  */
-#line 2162 "parser.yy"
-    { delete (yyvsp[(1) - (1)].decl); }
-    break;
-
-  case 561:
 
 /* Line 1806 of yacc.c  */
@@ -8048,5 +8041,5 @@
     break;
 
-  case 562:
+  case 561:
 
 /* Line 1806 of yacc.c  */
@@ -8055,8 +8048,15 @@
     break;
 
+  case 562:
+
+/* Line 1806 of yacc.c  */
+#line 2165 "parser.yy"
+    { delete (yyvsp[(1) - (1)].decl); }
+    break;
+
   case 563:
 
 /* 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;
@@ -8065,5 +8065,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2202 "parser.yy"
+#line 2203 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8072,5 +8072,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2204 "parser.yy"
+#line 2205 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8079,5 +8079,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2209 "parser.yy"
+#line 2210 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8089,5 +8089,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2214 "parser.yy"
+#line 2215 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8096,5 +8096,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2219 "parser.yy"
+#line 2220 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8103,5 +8103,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2221 "parser.yy"
+#line 2222 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8110,5 +8110,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2223 "parser.yy"
+#line 2224 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8117,5 +8117,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2228 "parser.yy"
+#line 2229 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8124,5 +8124,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2230 "parser.yy"
+#line 2231 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8131,5 +8131,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2232 "parser.yy"
+#line 2233 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8138,5 +8138,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2234 "parser.yy"
+#line 2235 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8145,5 +8145,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2239 "parser.yy"
+#line 2240 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8152,5 +8152,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2241 "parser.yy"
+#line 2242 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8159,5 +8159,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;
@@ -8166,5 +8166,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2253 "parser.yy"
+#line 2254 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8173,5 +8173,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2258 "parser.yy"
+#line 2259 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8180,5 +8180,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2260 "parser.yy"
+#line 2261 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8187,5 +8187,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2262 "parser.yy"
+#line 2263 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8194,5 +8194,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2267 "parser.yy"
+#line 2268 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8201,5 +8201,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2269 "parser.yy"
+#line 2270 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8208,5 +8208,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2271 "parser.yy"
+#line 2272 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8215,5 +8215,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2276 "parser.yy"
+#line 2277 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8222,5 +8222,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2278 "parser.yy"
+#line 2279 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8229,5 +8229,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2280 "parser.yy"
+#line 2281 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8236,5 +8236,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2295 "parser.yy"
+#line 2296 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -8243,5 +8243,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2297 "parser.yy"
+#line 2298 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     break;
@@ -8250,5 +8250,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2299 "parser.yy"
+#line 2300 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8257,5 +8257,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2304 "parser.yy"
+#line 2305 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8264,5 +8264,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2306 "parser.yy"
+#line 2307 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8271,5 +8271,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2308 "parser.yy"
+#line 2309 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8278,5 +8278,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2313 "parser.yy"
+#line 2314 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8285,5 +8285,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2315 "parser.yy"
+#line 2316 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8292,5 +8292,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2317 "parser.yy"
+#line 2318 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8299,5 +8299,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;
@@ -8306,5 +8306,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2335 "parser.yy"
+#line 2336 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8313,5 +8313,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2337 "parser.yy"
+#line 2338 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8320,5 +8320,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2343 "parser.yy"
+#line 2344 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8327,5 +8327,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2348 "parser.yy"
+#line 2349 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8334,5 +8334,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2350 "parser.yy"
+#line 2351 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8341,5 +8341,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2352 "parser.yy"
+#line 2353 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8348,5 +8348,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2357 "parser.yy"
+#line 2358 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8355,5 +8355,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2359 "parser.yy"
+#line 2360 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8362,5 +8362,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2361 "parser.yy"
+#line 2362 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8369,5 +8369,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2363 "parser.yy"
+#line 2364 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8376,5 +8376,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2368 "parser.yy"
+#line 2369 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8383,5 +8383,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2370 "parser.yy"
+#line 2371 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8390,5 +8390,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2372 "parser.yy"
+#line 2373 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8397,5 +8397,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;
@@ -8404,5 +8404,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2385 "parser.yy"
+#line 2386 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8411,5 +8411,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2387 "parser.yy"
+#line 2388 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8418,5 +8418,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2392 "parser.yy"
+#line 2393 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8425,5 +8425,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2394 "parser.yy"
+#line 2395 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8432,5 +8432,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2396 "parser.yy"
+#line 2397 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8439,5 +8439,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2401 "parser.yy"
+#line 2402 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8446,5 +8446,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2403 "parser.yy"
+#line 2404 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8453,5 +8453,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2405 "parser.yy"
+#line 2406 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8460,5 +8460,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2407 "parser.yy"
+#line 2408 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8467,5 +8467,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2412 "parser.yy"
+#line 2413 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8474,5 +8474,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2414 "parser.yy"
+#line 2415 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8481,5 +8481,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2416 "parser.yy"
+#line 2417 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8488,5 +8488,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;
@@ -8495,5 +8495,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2450 "parser.yy"
+#line 2451 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8502,5 +8502,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2452 "parser.yy"
+#line 2453 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8509,5 +8509,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2457 "parser.yy"
+#line 2458 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8519,5 +8519,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2462 "parser.yy"
+#line 2463 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8529,5 +8529,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2470 "parser.yy"
+#line 2471 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8536,5 +8536,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2472 "parser.yy"
+#line 2473 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8543,5 +8543,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2474 "parser.yy"
+#line 2475 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8550,5 +8550,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2479 "parser.yy"
+#line 2480 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8557,5 +8557,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2481 "parser.yy"
+#line 2482 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8564,5 +8564,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2486 "parser.yy"
+#line 2487 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8571,5 +8571,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2488 "parser.yy"
+#line 2489 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8578,5 +8578,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2503 "parser.yy"
+#line 2504 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8585,5 +8585,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2505 "parser.yy"
+#line 2506 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8592,5 +8592,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2510 "parser.yy"
+#line 2511 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8599,5 +8599,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2512 "parser.yy"
+#line 2513 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8606,5 +8606,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2514 "parser.yy"
+#line 2515 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8613,5 +8613,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2516 "parser.yy"
+#line 2517 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8620,5 +8620,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2518 "parser.yy"
+#line 2519 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8627,5 +8627,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2524 "parser.yy"
+#line 2525 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8634,5 +8634,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2526 "parser.yy"
+#line 2527 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8641,5 +8641,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2528 "parser.yy"
+#line 2529 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8648,5 +8648,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2533 "parser.yy"
+#line 2534 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     break;
@@ -8655,5 +8655,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2535 "parser.yy"
+#line 2536 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8662,5 +8662,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2537 "parser.yy"
+#line 2538 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8669,5 +8669,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2543 "parser.yy"
+#line 2544 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -8676,5 +8676,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2545 "parser.yy"
+#line 2546 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -8683,5 +8683,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2551 "parser.yy"
+#line 2552 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     break;
@@ -8690,5 +8690,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2553 "parser.yy"
+#line 2554 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     break;
@@ -8697,5 +8697,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2555 "parser.yy"
+#line 2556 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     break;
@@ -8704,5 +8704,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2557 "parser.yy"
+#line 2558 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     break;
@@ -8711,5 +8711,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2572 "parser.yy"
+#line 2573 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8718,5 +8718,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2574 "parser.yy"
+#line 2575 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8725,5 +8725,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2579 "parser.yy"
+#line 2580 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8732,5 +8732,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2581 "parser.yy"
+#line 2582 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8739,5 +8739,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2583 "parser.yy"
+#line 2584 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8746,5 +8746,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2585 "parser.yy"
+#line 2586 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8753,5 +8753,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2587 "parser.yy"
+#line 2588 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8760,5 +8760,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2593 "parser.yy"
+#line 2594 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8767,5 +8767,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2595 "parser.yy"
+#line 2596 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8774,5 +8774,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2597 "parser.yy"
+#line 2598 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8781,5 +8781,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2602 "parser.yy"
+#line 2603 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     break;
@@ -8788,5 +8788,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2604 "parser.yy"
+#line 2605 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8795,5 +8795,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2606 "parser.yy"
+#line 2607 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8802,5 +8802,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2613 "parser.yy"
+#line 2614 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8809,5 +8809,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2624 "parser.yy"
+#line 2625 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -8816,5 +8816,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2627 "parser.yy"
+#line 2628 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -8823,5 +8823,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2629 "parser.yy"
+#line 2630 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     break;
@@ -8830,5 +8830,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2632 "parser.yy"
+#line 2633 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -8837,5 +8837,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2634 "parser.yy"
+#line 2635 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     break;
@@ -8844,5 +8844,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2636 "parser.yy"
+#line 2637 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     break;
@@ -8851,5 +8851,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2650 "parser.yy"
+#line 2651 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8858,5 +8858,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2652 "parser.yy"
+#line 2653 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8865,5 +8865,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2657 "parser.yy"
+#line 2658 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8872,5 +8872,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2659 "parser.yy"
+#line 2660 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8879,5 +8879,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2661 "parser.yy"
+#line 2662 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8886,5 +8886,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2663 "parser.yy"
+#line 2664 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8893,5 +8893,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2665 "parser.yy"
+#line 2666 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8900,5 +8900,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2671 "parser.yy"
+#line 2672 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8907,5 +8907,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2673 "parser.yy"
+#line 2674 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8914,5 +8914,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2675 "parser.yy"
+#line 2676 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8921,5 +8921,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2680 "parser.yy"
+#line 2681 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8928,5 +8928,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2682 "parser.yy"
+#line 2683 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8935,5 +8935,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2692 "parser.yy"
+#line 2693 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8942,5 +8942,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2702 "parser.yy"
+#line 2703 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8949,5 +8949,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2704 "parser.yy"
+#line 2705 "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 2706 "parser.yy"
+#line 2707 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8963,5 +8963,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2708 "parser.yy"
+#line 2709 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8970,5 +8970,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2710 "parser.yy"
+#line 2711 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8977,5 +8977,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2712 "parser.yy"
+#line 2713 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8984,5 +8984,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2719 "parser.yy"
+#line 2720 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8991,5 +8991,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2721 "parser.yy"
+#line 2722 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8998,5 +8998,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2723 "parser.yy"
+#line 2724 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9005,5 +9005,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2725 "parser.yy"
+#line 2726 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -9012,5 +9012,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2727 "parser.yy"
+#line 2728 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9019,5 +9019,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2729 "parser.yy"
+#line 2731 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9026,5 +9026,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2731 "parser.yy"
+#line 2733 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9033,5 +9033,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2733 "parser.yy"
+#line 2735 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9040,5 +9040,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2735 "parser.yy"
+#line 2737 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -9047,5 +9047,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2737 "parser.yy"
+#line 2739 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9054,5 +9054,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2742 "parser.yy"
+#line 2744 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -9061,5 +9061,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2744 "parser.yy"
+#line 2746 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -9068,5 +9068,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2749 "parser.yy"
+#line 2751 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     break;
@@ -9075,5 +9075,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2751 "parser.yy"
+#line 2753 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     break;
@@ -9082,5 +9082,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2778 "parser.yy"
+#line 2780 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9089,5 +9089,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2789 "parser.yy"
+#line 2791 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9096,5 +9096,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2791 "parser.yy"
+#line 2793 "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 2793 "parser.yy"
+#line 2795 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9110,5 +9110,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2795 "parser.yy"
+#line 2797 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9117,5 +9117,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2797 "parser.yy"
+#line 2799 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9124,5 +9124,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2799 "parser.yy"
+#line 2801 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9131,5 +9131,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2806 "parser.yy"
+#line 2808 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9138,5 +9138,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2808 "parser.yy"
+#line 2810 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9145,5 +9145,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2810 "parser.yy"
+#line 2812 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9152,5 +9152,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2812 "parser.yy"
+#line 2814 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9159,5 +9159,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2814 "parser.yy"
+#line 2816 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9166,5 +9166,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2816 "parser.yy"
+#line 2818 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9173,5 +9173,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2821 "parser.yy"
+#line 2823 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -9180,16 +9180,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2826 "parser.yy"
+#line 2828 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
     break;
 
   case 749:
-
-/* Line 1806 of yacc.c  */
-#line 2828 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
-    break;
-
-  case 750:
 
 /* Line 1806 of yacc.c  */
@@ -9198,8 +9191,15 @@
     break;
 
+  case 750:
+
+/* Line 1806 of yacc.c  */
+#line 2832 "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 2854 "parser.yy"
+#line 2856 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -9208,5 +9208,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2856 "parser.yy"
+#line 2858 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -9446,5 +9446,5 @@
 
 /* Line 2067 of yacc.c  */
-#line 2859 "parser.yy"
+#line 2861 "parser.yy"
 
 // ----end of grammar----
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision f0121d7b1fdcae6c3362d9920d387c2a83a180d7)
+++ src/Parser/parser.yy	(revision a1e67ddc023331e04cc5481931be1d0923efc441)
@@ -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
 //
 
@@ -277,10 +277,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
@@ -288,5 +288,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
@@ -433,4 +433,5 @@
 	no_attr_identifier
 		{ $$ = new ExpressionNode( build_varref( $1 ) ); }
+		// x.1, x.[0, 0.0]
 	| INTEGERconstant
 		{ $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
@@ -2726,4 +2727,5 @@
 	| multi_array_dimension type_specifier
 		{ $$ = $2->addNewArray( $1 ); }
+
 	| '[' ']' new_identifier_parameter_ptr
 		{ $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
