ASCII art diagram converter: Difference between revisions

Line 537:
 
=={{header|Julia}}==
The validator() function can be customized. The one used only checks length.
<lang julia>diagram = """
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Line 582 ⟶ 583:
binbyte(c) = string(parse(UInt8, c, base=16), base=2, pad=8)
hextobinary(s) = reduce(*, map(binbyte, map(x -> s[x:x+1], 1:2:length(s)-1)))
validator(binstring, fields) = length(binstring) == sum(x -> x.bits, fields)
 
function bitreader(bitfields, hexdata)
Line 587 ⟶ 589:
println("Name Size Bits\n------- ---- ----------------")
b = hextobinary(hexdata)
@assert(validator(b, bitfields))
for bf in bitfields
pat = b[bf.fieldstart+1:bf.fieldend+1]
4,108

edits