Skip to main content

Very simple OMG IDL (Interface Definition Language) parser. This parses IDL files and outputs intermediate class objects.

Project description

Travis Build Status Coverage Status

Description

OMG IDL file parser. This library just parse IDL files, and output intermidiate type objects.

Example

"""
example for idl_parser package
"""

from idl_parser import parser
parser_ = parser.IDLParser()
idl_str = """
module my_module {
  struct Time {
    long sec;
    long usec;
  };

  typedef sequence<double> DoubleSeq;

  struct TimedDoubleSeq {
    Time tm;
    DoubleSeq data;
  };

  enum RETURN_VALUE {
    RETURN_OK,
    RETURN_FAILED,
  };

  interface DataGetter {
    RETURN_VALUE getData(out TimedDoubleSeq data);
  };

};
"""

global_module = parser_.load(idl_str)
my_module = global_module.module_by_name('my_module')
dataGetter = my_module.interface_by_name('DataGetter')
print 'DataGetter interface'
for m in dataGetter.methods:
  print '- method:'
  print '  name:', m.name
  print '  returns:', m.returns.name
  print '  arguments:'
  for a in m.arguments:
    print '    name:', a.name
    print '    type:', a.type
    print '    direction:', a.direction

doubleSeq = my_module.typedef_by_name('DoubleSeq')
print 'typedef %s %s' % (doubleSeq.type.name, doubleSeq.name)

timedDoubleSeq = my_module.struct_by_name('TimedDoubleSeq')
print 'TimedDoubleSeq'
for m in timedDoubleSeq.members:
  print '- member:'
  print '  name:', m.name
  print '  type:', m.type.name

How to install

sudo pip install idl_parser

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

idl_parser-0.0.17.tar.gz (11.4 kB view details)

Uploaded Source

File details

Details for the file idl_parser-0.0.17.tar.gz.

File metadata

  • Download URL: idl_parser-0.0.17.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for idl_parser-0.0.17.tar.gz
Algorithm Hash digest
SHA256 97be2c577a590013116901e043385099a706eae38df1585f8bbced341aa5fb23
MD5 1ffd985038e28fb7d01e478412ce7240
BLAKE2b-256 d2743c4610008931ceaaab4f19329c62d66df57a9235e6360c4af37092895b24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page