mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-20 07:34:24 +01:00
generate-wire.py: generate enum in order provided in CSV
This means the comments make more sense. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -290,7 +290,7 @@ else:
|
|||||||
''.format(args[0]))
|
''.format(args[0]))
|
||||||
|
|
||||||
# Maps message names to messages
|
# Maps message names to messages
|
||||||
messages = { }
|
messages = []
|
||||||
comments = []
|
comments = []
|
||||||
|
|
||||||
# Read csv lines. Single comma is the message values, more is offset/len.
|
# Read csv lines. Single comma is the message values, more is offset/len.
|
||||||
@@ -307,28 +307,29 @@ for line in fileinput.input(args[2:]):
|
|||||||
|
|
||||||
if len(parts) == 2:
|
if len(parts) == 2:
|
||||||
# eg commit_sig,132
|
# eg commit_sig,132
|
||||||
messages[parts[0]] = Message(parts[0],Enumtype("WIRE_" + parts[0].upper(), int(parts[1],0)),comments)
|
messages.append(Message(parts[0],Enumtype("WIRE_" + parts[0].upper(), int(parts[1],0)),comments))
|
||||||
comments=[]
|
comments=[]
|
||||||
else:
|
else:
|
||||||
# eg commit_sig,0,channel-id,8
|
# eg commit_sig,0,channel-id,8
|
||||||
if not parts[0] in messages:
|
for m in messages:
|
||||||
messages[parts[0]] = Message(parts[0],None,[])
|
if m.name == parts[0]:
|
||||||
messages[parts[0]].addField(Field(parts[0], parts[2], parts[3], comments))
|
m.addField(Field(parts[0], parts[2], parts[3], comments))
|
||||||
|
break
|
||||||
comments=[]
|
comments=[]
|
||||||
|
|
||||||
if options.output_header:
|
if options.output_header:
|
||||||
# Dump out enum, sorted by value order.
|
# Dump out enum, sorted by value order.
|
||||||
print('enum {} {{'.format(args[1]))
|
print('enum {} {{'.format(args[1]))
|
||||||
for m in sorted([x for x in messages.values() if x.enum is not None],key=lambda x:x.enum.value):
|
for m in messages:
|
||||||
for c in m.comments:
|
for c in m.comments:
|
||||||
print('\t/*{} */'.format(c))
|
print('\t/*{} */'.format(c))
|
||||||
print('\t{} = {},'.format(m.enum.name, m.enum.value))
|
print('\t{} = {},'.format(m.enum.name, m.enum.value))
|
||||||
print('};')
|
print('};')
|
||||||
|
|
||||||
for m in messages.values():
|
for m in messages:
|
||||||
m.print_fromwire(options.output_header)
|
m.print_fromwire(options.output_header)
|
||||||
|
|
||||||
for m in messages.values():
|
for m in messages:
|
||||||
m.print_towire(options.output_header)
|
m.print_towire(options.output_header)
|
||||||
|
|
||||||
if options.output_header:
|
if options.output_header:
|
||||||
|
|||||||
Reference in New Issue
Block a user