NetMsgs.NetMsgsGenPy
index
/prj/rnr-sdk/netmsgs/nmPython/modules/NetMsgs/NetMsgsGenPy.py

NetMsgs Generate Python files module.
 
A .py source file is generated from a  RoadNarrows NetMsg XML specification.

 
Modules
       
NetMsgs.NetMsgsXmlParser
NetMsgs.NetMsgsBase
os
sys
time

 
Classes
       
NetMsgsGenPy

 
class NetMsgsGenPy
    RoadNarrows Net Messages Python Source Generator Class.
 
The NetMsgsGenPy class reads the post-parsed database of a
NetMsgsXmlParser class instance and generates a Python .py file. The
python file expects the NetMsgs run-time python library.
 
  Methods defined here:
AugmentXmlDB(self)
Augument the XML database of parsed XML values with python generated
parameters.
BaseXType(self, ftype)
Returns the base XML field type for the given field type.
 
 Parameters:
   ftype   - (Derived) field type.
 
Return:
   Base field type.
EvalNum(sefl, *args)
Evaluate a summation of terms.
 
Paramters:
  args      List of summation terms, with each term one of:
              an equation, string, number
 
Examples:
  5                     -> '5'
  5, '(3 * 10)'         -> '35'
  5, 'MY_MAX', '1*255'  -> '300+MY_MAX'
 
Return:
  Returns string of the evaluated results.
GenClass(self, fp)
Generate derived NetMsgs class.
 
Parameters:
  fp    - Opened output file pointer.
GenEpilogue(self, fp)
Generate .py file epilogue.
 
Parameters:
  fp    - Opened output file pointer.
GenFTDict(self, fp)
Generate field types dictionary.
 
genftdict ::=
  ns+'ExtFieldTypes' '=' '{' ftdict '}'
 
ftdict ::=
    ftdict_item
  | ftdict ',' ftdict_item
 
ftdict_item ::=
    ftid ':' '{' msgdef '}'
  | ftid ':' '{' fielddef '}'
 
Parameters:
  fp    - Opened output file pointer.
GenFieldDef(self, name, fid, fdef, dentry)
Generate field definition dictionary entry.
 
fielddef ::=
    fielddef_simple
  | fielddef_string
  | fielddef_struct
  | fielddef_vector
 
fielddef_simple ::=
  fielddef_common ',' ['min:' m ',' 'max:' M ',' 'const:' C]
 
fielddef_string ::=
  fielddef_common ',' ['const:' C]
 
fielddef_struct ::=
  fielddef_common ','  'msgdef:' '{' msgdef '}'
 
fielddef_vector ::=
  fielddef_common ','  'vdef:' '{' fielddef '}'
 
fielddef_common ::=
  'name:' name ',' 'fid:' fid ',' 'ftype:' ftype ',' 'max_count:' n
 
name ::= (* field string name *)
 
msgid ::= (* field id enumeration *)
 
ftype ::= (* field type code *)
 
max_count ::=  (* number of vector items, string characters or 1 for
                  simpel types *)
 
Parameters:
  name    - Name keyword value.
  fid     - Field id keyword value.
  fdef    - XML field definition.
  deentry - Output field definition entry.
GenMsgDef(self, name, msgid, msgdef, dentry)
Generate message definition dictionary entry.
 
msgdef ::=
  msgdef_common ',' 'fielddef:' '[' fdeflist ']'
 
msgdef_common ::=
  'name:' name ',' 'msgid:' msgid ',' 'max_count:' n
 
fdeflist ::=
  '{' fielddef '}'
  fdeflist ',' '{' fielddef '}'
 
name ::= (* message string name *)
 
msgid ::= (* message id enumeration *)
 
max_count ::= (* number of fields in message definition *)
 
Parameters:
  name    - Name keyword value.
  msgid   - Message id keyword value.
  msgdef  - XML message definition.
  deentry - Output message definition entry.
GenMsgDefSet(self, fp)
Generate message definition set.
 
genmsgdefset ::=
  ns+'MsgDefSet' '=' '{' msgdefset '}'
 
msgdefset ::=
    msgdef_item
  | msgdefset ',' msgdef_item
 
msgdef_item ::=
    msgid ':' '{' msgdef '}'
 
Parameters:
  fp    - Opened output file pointer.
GenMsgIds(self, fp)
Generate Message Id enumeration.
 
Parameters:
  fp    - Opened output file pointer.
GenPrologue(self, fp)
Generate .py file prologue.
 
Prologue includes core imports plus any prologue specified
in the XML file.
 
Parameters:
  fp    - Opened output file pointer.
GenSource(self)
Generate python .py source file.
 
Exceptions:
  Raises NetMsgError exception on error.
GetLineage(self, xtype)
Get lineage of XML field type
 
Parameters:
  xtype   - XML field type
 
Return:
  List of ancestors order from base to nearest to xtype.
IsDeprecated(self, xdef)
Returns True (False) is definition is (not) deprecated.
 
Parameters:
  xdef      - XML ftypedef, msgdef, or fielddef XML specification.
 
Return:
  True or False.
Pass0(self)
Make initial pass through the XML database and augument with
specific python information.
 
No generated python code is written to file output.
PrettyPrintBriefComment(self, fp, brief)
Print doxygen brief comment block.
 
Parameters:
  fp      - Opened output file pointer.
  brief   - Brief comment.
PrettyPrintMajorDivComment(self, fp, comment)
Prints major file division comment block.
 
Parameters:
  fp          - Opened output file pointer.
  comment     - Major division comment line.
PrettyPrintMinorDivComment(self, fp, comment)
Prints minor file division comment block.
 
Parameters:
  fp          - Opened output file pointer.
  comment     - Minor division comment line.
PrettyPrintTopComment(self, fp)
Prints source file top comment block.
 
Parameters:
  fp          - Opened output file pointer.
WriteFTDict(self, fp)
Write field types and field type dictionary.
 
Parameters:
  fp    - Opened output file pointer.
WriteMsgDefSet(self, fp)
Write message definitions and message definition set dictionary.
 
Parameters:
  fp    - Opened output file pointer.
__init__(self, xml, pyfilepath, **kwargs)
Initialize NetMsgsGenPy instance.
 
Parameters:
  xml         - NetMsgsXMLParser class instance.
  pyfilepath  - Generated output python file.
  kwargs      - Optional keyword arguments.
                  debug     - Set debugging level: 0 == off, 1, 2, 3.

 
Functions
       
space lambda indent
## space 'macro'