Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision 90c3b1c9b36943edd6040aac93c3da9265b218a4)
+++ src/Parser/parser.cc	(revision 3627356cd68ced646615fd33bd46a05914f6da3a)
@@ -147,8 +147,8 @@
      STRUCT = 286,
      UNION = 287,
-     TYPE = 288,
+     OTYPE = 288,
      FTYPE = 289,
      DTYPE = 290,
-     CONTEXT = 291,
+     TRAIT = 291,
      SIZEOF = 292,
      OFFSETOF = 293,
@@ -256,8 +256,8 @@
 #define STRUCT 286
 #define UNION 287
-#define TYPE 288
+#define OTYPE 288
 #define FTYPE 289
 #define DTYPE 290
-#define CONTEXT 291
+#define TRAIT 291
 #define SIZEOF 292
 #define OFFSETOF 293
@@ -1103,5 +1103,5 @@
   "LVALUE", "VOID", "CHAR", "SHORT", "INT", "LONG", "FLOAT", "DOUBLE",
   "SIGNED", "UNSIGNED", "VALIST", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF",
-  "LABEL", "ENUM", "STRUCT", "UNION", "TYPE", "FTYPE", "DTYPE", "CONTEXT",
+  "LABEL", "ENUM", "STRUCT", "UNION", "OTYPE", "FTYPE", "DTYPE", "TRAIT",
   "SIZEOF", "OFFSETOF", "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH",
   "CASE", "DEFAULT", "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO",
@@ -1172,18 +1172,18 @@
   "type_parameter", "$@2", "type_class", "assertion_list_opt", "assertion",
   "type_name_list", "type_declaring_list", "type_declarator",
-  "type_declarator_name", "context_specifier", "$@3",
-  "context_declaration_list", "context_declaration",
-  "new_context_declaring_list", "context_declaring_list",
-  "translation_unit", "external_definition_list",
-  "external_definition_list_opt", "external_definition", "$@4",
-  "external_function_definition", "function_definition", "declarator",
-  "subrange", "asm_name_opt", "attribute_list_opt", "attribute_list",
-  "attribute", "attribute_parameter_list", "attrib", "any_word",
-  "variable_declarator", "paren_identifier", "variable_ptr",
-  "variable_array", "variable_function", "function_declarator",
-  "function_no_ptr", "function_ptr", "function_array",
-  "old_function_declarator", "old_function_no_ptr", "old_function_ptr",
-  "old_function_array", "type_redeclarator", "paren_type", "type_ptr",
-  "type_array", "type_function", "identifier_parameter_declarator",
+  "type_declarator_name", "trait_specifier", "$@3",
+  "trait_declaration_list", "trait_declaration",
+  "new_trait_declaring_list", "trait_declaring_list", "translation_unit",
+  "external_definition_list", "external_definition_list_opt",
+  "external_definition", "$@4", "external_function_definition",
+  "function_definition", "declarator", "subrange", "asm_name_opt",
+  "attribute_list_opt", "attribute_list", "attribute",
+  "attribute_parameter_list", "attrib", "any_word", "variable_declarator",
+  "paren_identifier", "variable_ptr", "variable_array",
+  "variable_function", "function_declarator", "function_no_ptr",
+  "function_ptr", "function_array", "old_function_declarator",
+  "old_function_no_ptr", "old_function_ptr", "old_function_array",
+  "type_redeclarator", "paren_type", "type_ptr", "type_array",
+  "type_function", "identifier_parameter_declarator",
   "identifier_parameter_ptr", "identifier_parameter_array",
   "identifier_parameter_function", "type_parameter_redeclarator",
@@ -7618,6 +7618,6 @@
 #line 1825 "parser.yy"
     {
-			typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
-			(yyval.decl) = DeclarationNode::newContextUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
+			typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
+			(yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
 		}
     break;
@@ -7719,5 +7719,5 @@
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
-			(yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
+			(yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
 		}
     break;
@@ -7728,5 +7728,5 @@
 #line 1881 "parser.yy"
     {
-			typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
+			typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
 			typedefTable.enterScope();
 		}
@@ -7738,7 +7738,7 @@
 #line 1886 "parser.yy"
     {
-			typedefTable.leaveContext();
+			typedefTable.leaveTrait();
 			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
-			(yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
+			(yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
 		}
     break;
