mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-21 16:14:23 +01:00
tools/generate-wire: allow constant multiplier in fields.
Not just len*u8, but 1254*u8 for explicit fixed-length arrays. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -88,13 +88,14 @@ sizetypemap = {
|
|||||||
1: FieldType('u8')
|
1: FieldType('u8')
|
||||||
}
|
}
|
||||||
|
|
||||||
# It would be nicer if we had put '*1' in spec and disallowed bare lenvar.
|
# It would be nicer if we had put '*u8' in spec and disallowed bare lenvar.
|
||||||
# In practice we only recognize raw lenvar when it's the previous field.
|
# In practice we only recognize lenvar when it's the previous field.
|
||||||
|
|
||||||
# size := baresize | arraysize
|
# size := baresize | arraysize
|
||||||
# baresize := simplesize | lenvar
|
# baresize := simplesize | lenvar
|
||||||
# simplesize := number | type
|
# simplesize := number | type
|
||||||
# arraysize := lenvar '*' simplesize
|
# arraysize := length '*' type
|
||||||
|
# length := lenvar | number
|
||||||
class Field(object):
|
class Field(object):
|
||||||
def __init__(self, message, name, size, comments, prevname):
|
def __init__(self, message, name, size, comments, prevname):
|
||||||
self.message = message
|
self.message = message
|
||||||
@@ -106,7 +107,11 @@ class Field(object):
|
|||||||
|
|
||||||
# If it's an arraysize, swallow prefix.
|
# If it's an arraysize, swallow prefix.
|
||||||
if '*' in size:
|
if '*' in size:
|
||||||
self.lenvar = size.split('*')[0].replace('-','_')
|
number = size.split('*')[0]
|
||||||
|
if number == prevname:
|
||||||
|
self.lenvar = number.replace('-','_');
|
||||||
|
else:
|
||||||
|
self.num_elems = int(number)
|
||||||
size = size.split('*')[1]
|
size = size.split('*')[1]
|
||||||
else:
|
else:
|
||||||
if size == prevname:
|
if size == prevname:
|
||||||
|
|||||||
Reference in New Issue
Block a user