diff --git a/plyproto/parser.py b/plyproto/parser.py
index 545faee..2c8188a 100755
--- a/plyproto/parser.py
+++ b/plyproto/parser.py
@@ -108,7 +108,7 @@
 
     def p_field_directive(self, p):
         '''field_directive : LBRACK NAME EQ rvalue RBRACK'''
-        p[0] = FieldDirectiveDeclaration(Name(p[2]), p[4])
+        p[0] = FieldDirective(Name(p[2]), p[4])
 
     def p_field_directive_times(self, p):
         '''field_directive_times : field_directive_plus'''
@@ -128,7 +128,7 @@
 
     def p_field_type(self, p):
         '''field_type : primitive_type'''
-        p[0] = FieldPrimitiveType(p[1])
+        p[0] = FieldType(p[1])
 
     def p_field_type2(self, p):
         '''field_type : NAME'''
@@ -137,12 +137,12 @@
     # Root of the field declaration.
     def p_field_definition(self, p):
         '''field_definition : field_modifier field_type NAME EQ field_id field_directive_times SEMI'''
-        p[0] = FieldDeclaration(p[1], p[2], Name(p[3]), p[5], p[6])
+        p[0] = FieldDefinition(p[1], p[2], Name(p[3]), p[5], p[6])
 
     # Root of the enum field declaration.
     def p_enum_field(self, p):
         '''enum_field : NAME EQ NUM SEMI'''
-        p[0] = EnumFieldDeclaration(Name(p[1]), p[3])
+        p[0] = EnumFieldDefinition(Name(p[1]), p[3])
 
     def p_enum_body_part(self, p):
         '''enum_body_part : enum_field
@@ -169,7 +169,7 @@
     # enum_definition ::= 'enum' ident '{' { ident '=' integer ';' }* '}'
     def p_enum_definition(self, p):
         '''enum_definition : ENUM NAME LBRACE enum_body_opt RBRACE'''
-        p[0] = EnumDeclaration(Name(p[2]), p[4])
+        p[0] = EnumDefinition(Name(p[2]), p[4])
 
     def p_extensions_to(self, p):
         '''extensions_to : MAX'''
@@ -215,7 +215,7 @@
     # message_definition = MESSAGE_ - ident("messageId") + LBRACE + message_body("body") + RBRACE
     def p_message_definition(self, p):
         '''message_definition : MESSAGE NAME LBRACE message_body RBRACE'''
-        p[0] = MessageDeclaration(Name(p[2]), p[4])
+        p[0] = MessageDefinition(Name(p[2]), p[4])
 
     # method_definition ::= 'rpc' ident '(' [ ident ] ')' 'returns' '(' [ ident ] ')' ';'
     def p_method_definition(self, p):
@@ -238,12 +238,12 @@
     # service_definition = SERVICE_ - ident("serviceName") + LBRACE + ZeroOrMore(Group(method_definition)) + RBRACE
     def p_service_definition(self, p):
         '''service_definition : SERVICE NAME LBRACE method_definition_opt RBRACE'''
-        p[0] = ServiceDeclaration(Name(p[2]), p[4])
+        p[0] = ServiceDefinition(Name(p[2]), p[4])
 
     # package_directive ::= 'package' ident [ '.' ident]* ';'
     def p_package_directive(self,p):
         '''package_directive : PACKAGE NAME SEMI'''
-        p[0] = PackageDeclaration(Name(p[2]))
+        p[0] = PackageStatement(Name(p[2]))
 
     # import_directive = IMPORT_ - quotedString("importFileSpec") + SEMI
     def p_import_directive(self, p):
@@ -263,7 +263,7 @@
     # option_directive = OPTION_ - ident("optionName") + EQ + quotedString("optionValue") + SEMI
     def p_option_directive(self, p):
         '''option_directive : OPTION NAME EQ option_rvalue SEMI'''
-        p[0] = OptionDefinition(Name(p[2]), p[4])
+        p[0] = OptionStatement(Name(p[2]), p[4])
 
     # topLevelStatement = Group(message_definition | message_extension | enum_definition | service_definition | import_directive | option_directive)
     def p_topLevel(self,p):
