mbeckerle commented on code in PR #1337:
URL: https://github.com/apache/daffodil/pull/1337#discussion_r1840765521
##########
daffodil-runtime1/src/main/scala/org/apache/daffodil/runtime1/processors/PackedBinaryTraits.scala:
##########
@@ -51,7 +52,15 @@ abstract class PackedBinaryDecimalBaseParser(
def parse(start: PState): Unit = {
val nBits = getBitLength(start)
- if (nBits == 0) return // zero length is used for outputValueCalc often.
+ if (nBits == 0) {
+ PE(
+ start,
+ "Number of bits %d out of range for a binary decimal. " +
+ "An unsigned decimal with length 1 bit could be used instead.",
Review Comment:
"binary decimal" means type xs:decimal dfdl:binaryNumberRep="binary" i.e.,
twos complement.
A fraction part is specified using dfdl:binaryDecimalVirtualPoint="3" for
example to get 999.999 (3 digits after the decimal point)
So "binary decimal" behaves like a twos-complement signed integer vis a vis
this 1-bit compatibility mode.
The packed representations are entirely different, and 1-bit stuff does not
apply. They must be aligned 4-bit and a multiple of 4-bits length.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]