Github user mbeckerle commented on a diff in the pull request:

    https://github.com/apache/incubator-daffodil/pull/12#discussion_r154124026
  
    --- Diff: 
daffodil-core/src/main/scala/edu/illinois/ncsa/daffodil/grammar/TermGrammarMixin.scala
 ---
    @@ -62,7 +61,7 @@ trait TermGrammarMixin
     
       protected lazy val hasEncoding = optionEncodingRaw.isDefined
     
    -  protected lazy val termIOPropertiesChange = prod("ioPropertiesChange") { 
bitOrderChange ~ encodingChange }
    +  protected lazy val termIOPropertiesChange = prod("ioPropertiesChange") { 
bitOrderChange }
    --- End diff --
    
    Yes. Unfortunately one cannot get rid of bitOrderChange parser unless we 
build into the main combinators a check for bitOrderChange every time bitOrder 
is accessed. That's for parsing.  Because a parser proceeds in-linear order 
through the data this works because the notion of "prior bit order" is well 
defined.
    
    For unparsing, bitOrderChange is trickier due to suspensions and jumping 
back to handle them. (There's still a bug in that logic. DAFFODIL-1843) But 
that's why I left in bitOrderChange for now. 


---

Reply via email to