diff options
Diffstat (limited to 'tools/InterfaceGenerator/generator/parsers/JSONRPC.py')
-rwxr-xr-x | tools/InterfaceGenerator/generator/parsers/JSONRPC.py | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/tools/InterfaceGenerator/generator/parsers/JSONRPC.py b/tools/InterfaceGenerator/generator/parsers/JSONRPC.py index 092f41ec17..e63bcc38aa 100755 --- a/tools/InterfaceGenerator/generator/parsers/JSONRPC.py +++ b/tools/InterfaceGenerator/generator/parsers/JSONRPC.py @@ -4,13 +4,17 @@ Contains parser for JSON RPC XML format. """ -from generator.parsers import RPCBase +from parsers.parse_error import ParseError +from parsers.rpc_base import RPCBase -class Parser(RPCBase.Parser): - +class Parser(RPCBase): """JSON RPC parser.""" + @property + def get_version(self): + return '1.0.0' + def __init__(self): """Constructor.""" super(Parser, self).__init__() @@ -32,16 +36,27 @@ class Parser(RPCBase.Parser): for element in root: if element.tag != "interface": - raise RPCBase.ParseError("Subelement '" + element.tag + - "' is unexpected in interfaces") + raise ParseError("Subelement '" + element.tag + + "' is unexpected in interfaces") if "name" not in element.attrib: - raise RPCBase.ParseError( + raise ParseError( "Name is not specified for interface") self._interface_name = element.attrib["name"] self._parse_interface(element, self._interface_name + "_") + def _check_enum_name(self, enum): + """Check enum name. + + This method is called to check whether the newly parsed enum's name + conflicts with some predefined enum. + As SDLRPCV2 has no predefined enums this implementation does nothing. + + """ + + pass + def _provide_enum_element_for_function(self, enum_name, element_name): """Provide enum element for functions. @@ -60,7 +75,7 @@ class Parser(RPCBase.Parser): if "FunctionID" == enum_name: prefix_length = len(self._interface_name) + 1 if element_name[:prefix_length] != self._interface_name + '_': - raise RPCBase.ParseError( + raise ParseError( "Unexpected prefix for function id '" + element_name + "'") name = self._interface_name + "." + element_name[prefix_length:] @@ -83,7 +98,7 @@ class Parser(RPCBase.Parser): """ if function_param_name in ['method', 'code']: - raise RPCBase.ParseError( + raise ParseError( "'" + function_param_name + "' is a predefined name and can't be used" + " as a function parameter name") |