5 s/\(@fn [^(]*\)(\(.*\))\(.*\)\(@param \)\([^ \n]\+\(\.\.\.\)\?\)\([^\n]*\)$/\1(\2, \5)\3\4\5\7/
7 /[a-zA-Z0-9_]\+() {$/!{
11 s/\(@fn[^(]\+\)(, /\1(/
12 s/\(@fn \([^(]\+\)(\)\([^)]*\)\().*\)\n\2() {/\1\3\4\n\2(\3) { }/
13 s/\(^\|\n\)## /\1\/\/! /g
17 # The principle is quite easy. For every declare option, we add a
18 # keyword into the sed exchange buffer. Once everything is parsed,
19 # we add the variable identifier and maybe the variable default
20 # value, add that to the exchange buffer and print the result.
22 # Reset exchange buffer
26 # Remove declare keyword, we wont need it anymore
28 # Simple declaration case.
35 # Concat options. Some of them are ignored, such as -f.
37 s/^-\([aAilrtux]\+\) \+-\([aAilrtux]\+\) \+/-\1\2 /
40 # Prepend Exported and ReadOnly attributes
52 # Integer type, exclusive with default 'String' type.
60 # String type. handling.
76 # For arrays, we remove the initialisation since I dont know yet
77 # how to print it for doxygen to understand.
86 s/.*/&AssociativeArray /
92 # Remove the declare option, x, then G will concat the exchange
93 # buffer (the 'type' string) and the regular buffer (the var
94 # possibly followed by an init value). The rest is quite easy to
107 # For arrays, to avoid duplication.
109 s/\(-[^ ]\+ \+[^=]\+\)=.*/\1/
113 # Make all ## lines doxygen-able.