command: Allow count parameter of DECL_ENUMERATION_RANGE() to be an expression

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2019-08-22 12:15:44 -04:00
parent 84fd89b8cf
commit 7d014933ce
2 changed files with 5 additions and 8 deletions

View File

@ -86,12 +86,9 @@ class HandleEnumerations:
enum, name, value = req.split()[1:]
self.add_enumeration(enum, name, decode_integer(value))
def decl_enumeration_range(self, req):
enum, name, count, value = req.split()[1:]
try:
count = int(count, 0)
except ValueError as e:
error("Invalid enumeration count in '%s'" % (req,))
self.add_enumeration(enum, name, (decode_integer(value), count))
enum, name, value, count = req.split()[1:]
vc = (decode_integer(value), decode_integer(count))
self.add_enumeration(enum, name, vc)
def decl_static_str(self, req):
msg = req.split(None, 1)[1]
if msg not in self.static_strings:

View File

@ -25,8 +25,8 @@
#define DECL_ENUMERATION(ENUM, NAME, VALUE) \
DECL_CTR_INT("_DECL_ENUMERATION " ENUM " " NAME, 1, CTR_INT(VALUE))
#define DECL_ENUMERATION_RANGE(ENUM, NAME, VALUE, COUNT) \
DECL_CTR_INT("_DECL_ENUMERATION_RANGE " ENUM " " NAME \
" " __stringify(COUNT), 1, CTR_INT(VALUE))
DECL_CTR_INT("_DECL_ENUMERATION_RANGE " ENUM " " NAME, \
2, CTR_INT(VALUE), CTR_INT(COUNT))
// Send an output message (and declare a static message type for it)
#define output(FMT, args...) \