Model names refactoring
diff --git a/plyproto/model.py b/plyproto/model.py
index 7e39ae9..e471126 100644
--- a/plyproto/model.py
+++ b/plyproto/model.py
@@ -3,11 +3,44 @@
__license__ = "Apache License, Version 2.0"
__version__ = "1.0"
+class Visitor(object):
+
+ def __init__(self, verbose=False):
+ self.verbose = verbose
+
+ def __getattr__(self, name):
+ if not name.startswith('visit_'):
+ raise AttributeError('name must start with visit_ but was {}'
+ .format(name))
+
+ def f(element):
+ if self.verbose:
+ msg = 'unimplemented call to {}; ignoring ({})'
+ print(msg.format(name, element))
+ return True
+ return f
+
+ # visitor.visit_PackageStatement(self)
+ # visitor.visit_ImportStatement(self)
+ # visitor.visit_OptionStatement(self)
+ # visitor.visit_FieldDirective(self)
+ # visitor.visit_FieldType(self)
+ # visitor.visit_FieldDefinition(self)
+ # visitor.visit_EnumFieldDefinition(self)
+ # visitor.visit_EnumDefinition(self)
+ # visitor.visit_MessageDefinition(self)
+ # visitor.visit_MessageExtension(self)
+ # visitor.visit_MethodDefinition(self)
+ # visitor.visit_ServiceDefinition(self)
+ # visitor.visit_ExtensionsDirective(self)
+ # visitor.visit_Literal(self)
+ # visitor.visit_Name(self)
+
# Base node
class SourceElement(object):
'''
- A SourceElement is the base class for all elements that occur in a Java
- file parsed by plyj.
+ A SourceElement is the base class for all elements that occur in a Protocol Buffers
+ file parsed by plyproto.
'''
def __init__(self):
super(SourceElement, self).__init__()
@@ -31,14 +64,14 @@
def accept(self, visitor):
pass
-class PackageDeclaration(SourceElement):
+class PackageStatement(SourceElement):
def __init__(self, name):
- super(PackageDeclaration, self).__init__()
+ super(PackageStatement, self).__init__()
self._fields = ['name']
self.name = name
def accept(self, visitor):
- visitor.visit_PackageDeclaration(self)
+ visitor.visit_PackageStatement(self)
class ImportStatement(SourceElement):
def __init__(self, name):
@@ -49,38 +82,38 @@
def accept(self, visitor):
visitor.visit_ImportStatement(self)
-class OptionDefinition(SourceElement):
+class OptionStatement(SourceElement):
def __init__(self, name, value):
- super(OptionDefinition, self).__init__()
+ super(OptionStatement, self).__init__()
self._fields = ['name', 'value']
self.name = name
self.value = value
def accept(self, visitor):
- visitor.visit_OptionDefinition(self)
+ visitor.visit_OptionStatement(self)
-class FieldDirectiveDeclaration(SourceElement):
+class FieldDirective(SourceElement):
def __init__(self, name, value):
- super(FieldDirectiveDeclaration, self).__init__()
+ super(FieldDirective, self).__init__()
self._fields = ['name', 'value']
self.name = name
self.value = value
def accept(self, visitor):
- visitor.visit_FieldDirectiveDeclaration(self)
+ visitor.visit_FieldDirective(self)
-class FieldPrimitiveType(SourceElement):
+class FieldType(SourceElement):
def __init__(self, name):
- super(FieldPrimitiveType, self).__init__()
+ super(FieldType, self).__init__()
self._fields = ['name']
self.name = name
def accept(self, visitor):
- visitor.visit_FieldPrimitiveType(self)
+ visitor.visit_FieldType(self)
-class FieldDeclaration(SourceElement):
+class FieldDefinition(SourceElement):
def __init__(self, field_modifier, ftype, name, fieldId, fieldDirective):
- super(FieldDeclaration, self).__init__()
+ super(FieldDefinition, self).__init__()
self._fields = ['field_modifier', 'ftype', 'name', 'fieldId', 'fieldDirective']
self.name = name
self.field_modifier = field_modifier
@@ -89,39 +122,39 @@
self.fieldDirective = fieldDirective
def accept(self, visitor):
- visitor.visit_FieldDeclaration(self)
+ visitor.visit_FieldDefinition(self)
-class EnumFieldDeclaration(SourceElement):
+class EnumFieldDefinition(SourceElement):
def __init__(self, name, fieldId):
- super(EnumFieldDeclaration, self).__init__()
+ super(EnumFieldDefinition, self).__init__()
self._fields = ['name', 'fieldId']
self.name = name
self.fieldId = fieldId
def accept(self, visitor):
- visitor.visit_EnumFieldDeclaration(self)
+ visitor.visit_EnumFieldDefinition(self)
-class EnumDeclaration(SourceElement):
+class EnumDefinition(SourceElement):
def __init__(self, name, body):
- super(EnumDeclaration, self).__init__()
+ super(EnumDefinition, self).__init__()
self._fields = ['name', 'body']
self.name = name
self.body = body
def accept(self, visitor):
- if visitor.visit_EnumDeclaration(self):
+ if visitor.visit_EnumDefinition(self):
for s in self.body:
s.accept(visitor)
-class MessageDeclaration(SourceElement):
+class MessageDefinition(SourceElement):
def __init__(self, name, body):
- super(MessageDeclaration, self).__init__()
+ super(MessageDefinition, self).__init__()
self._fields = ['name', 'body']
self.name = name
self.body = body
def accept(self, visitor):
- if visitor.visit_MessageDeclaration(self):
+ if visitor.visit_MessageDefinition(self):
for s in self.body:
s.accept(visitor)
@@ -148,15 +181,15 @@
def accept(self, visitor):
visitor.visit_MethodDefinition(self)
-class ServiceDeclaration(SourceElement):
+class ServiceDefinition(SourceElement):
def __init__(self, name, body):
- super(ServiceDeclaration, self).__init__()
+ super(ServiceDefinition, self).__init__()
self._fields = ['name', 'body']
self.name = name
self.body = body
def accept(self, visitor):
- if visitor.visit_ServiceDeclaration(self):
+ if visitor.visit_ServiceDefinition(self):
for s in self.body:
s.accept(visitor)
@@ -200,19 +233,3 @@
visitor.visit_Name(self)
-class Visitor(object):
-
- def __init__(self, verbose=False):
- self.verbose = verbose
-
- def __getattr__(self, name):
- if not name.startswith('visit_'):
- raise AttributeError('name must start with visit_ but was {}'
- .format(name))
-
- def f(element):
- if self.verbose:
- msg = 'unimplemented call to {}; ignoring ({})'
- print(msg.format(name, element))
- return True
- return f
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):