import binascii
import os
+# Ensure we don't leave temporary files around
+sys.dont_write_bytecode = True
+
#
# VPP API language
#
def __init__(self, debug=False, filename='', logger=None):
self.lexer = lex.lex(module=VPPAPILexer(filename), debug=debug)
self.parser = yacc.yacc(module=VPPAPIParser(filename, logger),
- tabmodule='vppapigentab', debug=debug)
+ write_tables=False, debug=debug)
self.logger = logger
def parse_string(self, code, debug=0, lineno=1):
continue
if msgs[d].singular is True:
continue
- #if d.endswith('_counters'):
- # continue
- #if d.endswith('_event'):
- # continue
if d.endswith('_reply'):
if d[:-6] in svcs:
continue
if d[:-6] not in msgs:
- self.logger.warning('{} missing calling message'
- .format(d))
+ raise ValueError('{} missing calling message'
+ .format(d))
continue
if d.endswith('_dump'):
if d in svcs:
s['services'].append(Service(d, d[:-5]+'_details',
stream=True))
else:
- self.logger.error('{} missing details message'
- .format(d))
+ raise ValueError('{} missing details message'
+ .format(d))
continue
if d.endswith('_details'):
if d[:-8]+'_dump' not in msgs:
- self.logger.error('{} missing dump message'
- .format(d))
+ raise ValueError('{} missing dump message'
+ .format(d))
continue
if d in svcs:
if d+'_reply' in msgs:
s['services'].append(Service(d, d+'_reply'))
else:
- self.logger.warning('{} missing reply message ({})'
- .format(d, d+'_reply'))
- s['services'].append(Service(d, None))
+ raise ValueError('{} missing reply message ({}) or service definition'
+ .format(d, d+'_reply'))
return s