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

    https://github.com/apache/incubator-daffodil/pull/5#discussion_r151153142
  
    --- Diff: 
daffodil-core/src/main/scala/edu/illinois/ncsa/daffodil/dsom/DFDLStatementMixin.scala
 ---
    @@ -38,16 +38,83 @@ import edu.illinois.ncsa.daffodil.exceptions.ThrowsSDE
     import edu.illinois.ncsa.daffodil.schema.annotation.props.gen.TestKind
     import edu.illinois.ncsa.daffodil.grammar.primitives.AssertBase
     
    +trait ResolvesDFDLStatementMixin
    +  extends ThrowsSDE
    +  with ProvidesDFDLStatementMixin { self: Term =>
    +
    +  requiredEvaluations(statements)
    +
    +  final lazy val statements: Seq[DFDLStatement] =
    +    optReferencedStatementSource.toSeq.flatMap { _.resolvedStatements } ++
    +      localStatements
    +
    +  private def getParserExprReferencedElements(s: DFDLStatement,
    +    f: ContentValueReferencedElementInfoMixin => 
Set[DPathElementCompileInfo]) = {
    +    s match {
    +
    +      case a: DFDLAssertionBase if (a.testKind eq TestKind.Expression) => {
    +        a.gram match {
    +          case ab: AssertBase => f(ab.expr)
    +          case _ => ReferencedElementInfos.None
    +        }
    +      }
    +
    +      case _ => getUnparserExprReferencedElements(s, f)
    +    }
    +  }
    +
    +  private def getUnparserExprReferencedElements(s: DFDLStatement,
    +    f: ContentValueReferencedElementInfoMixin => 
Set[DPathElementCompileInfo]) = {
    +    s match {
    +      case sv: DFDLSetVariable => {
    +        val mdv = sv.defv.maybeDefaultValueExpr
    +        if (mdv.isDefined)
    +          f(mdv.get)
    +        else
    +          ReferencedElementInfos.None
    +      }
    +      case nv: DFDLNewVariableInstance => {
    +        // nv.defaultValueExpr.contentReferencedElementInfos
    +        s.notYetImplemented("dfdl:newVariableInstance")
    +      }
    +      case _ => ReferencedElementInfos.None
    +    }
    +  }
    +
    +  final protected def creis(rei: ContentValueReferencedElementInfoMixin) = 
rei.contentReferencedElementInfos
    +  final protected def vreis(rei: ContentValueReferencedElementInfoMixin) = 
rei.valueReferencedElementInfos
    +
    +  private def statementReferencedElementInfos(f: DFDLStatement => 
Set[DPathElementCompileInfo]) = {
    +
    --- End diff --
    
    Same here regarding extra space.


---

Reply via email to