Class

org.apache.daffodil.grammar

Prod

Related Doc: package grammar

Permalink

final class Prod extends NamedGram

Prod or Grammar Production

Note the call by name on the GramArg. We don't evaluate the GramArg at all unless the guard is true.

Guards are used so we can have grammars that include all possibilities, but where examining the format properties specifically would indicate that some of those possibilities are precluded. The guard causes that term to just splice itself out of the grammar.

Note that it is crucial that the guardArg is passed by value, and the gramArg is passed by name.

Prod objects are not required. They essentially provide some useful debug capability because a grammar term object will display as it's name, not as some anonymous object.

Linear Supertypes
NamedGram, Gram, OOLAGHostImpl, OOLAGHost, NamedMixinBase, WithDiagnostics, Logging, Identity, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Prod
  2. NamedGram
  3. Gram
  4. OOLAGHostImpl
  5. OOLAGHost
  6. NamedMixinBase
  7. WithDiagnostics
  8. Logging
  9. Identity
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Prod(nameArg: String, sc: SchemaComponent, guard: Boolean, gramArg: ⇒ Gram, forWhat: ParserOrUnparser)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def LV[T](sym: Symbol)(body: ⇒ T): OOLAGValue[T]

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  5. final def SDE(str: String, args: Any*): Nothing

    Permalink
    Definition Classes
    Gram
  6. final def SDW(warnID: WarnID, str: String, args: Any*): Unit

    Permalink
    Definition Classes
    Gram
  7. final def areLogging(lvl: Type): Boolean

    Permalink
    Definition Classes
    Logging
  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. final def assuming(pred: Boolean): Unit

    Permalink
    Definition Classes
    OOLAGHost
  10. final def checkErrors: Unit

    Permalink
    Definition Classes
    OOLAGHost
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. final val context: SchemaComponent

    Permalink
    Definition Classes
    Gram
  13. final var currentOVList: Seq[OOLAGValueBase]

    Permalink
    Definition Classes
    OOLAGHost
  14. final def deref: Gram

    Permalink
    Definition Classes
    ProdGram
  15. lazy val diagnosticDebugName: String

    Permalink
    Definition Classes
    NamedMixinBase
  16. def diagnostics: Seq[Diagnostic]

    Permalink
    Definition Classes
    OOLAGHost
  17. def doLogging(lvl: Type, msg: String, args: Seq[Any]): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  18. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  19. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  20. def error(th: Diagnostic): Unit

    Permalink
    Definition Classes
    OOLAGHost
  21. final def errors: Seq[Diagnostic]

    Permalink
    Definition Classes
    OOLAGHost
  22. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  23. val forWhat: ParserOrUnparser

    Permalink
    Definition Classes
    ProdGram
  24. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  25. def getDiagnostics: Seq[Diagnostic]

    Permalink
    Definition Classes
    OOLAGHost → WithDiagnostics
  26. def getLogWriter(): LogWriter

    Permalink
    Definition Classes
    Logging
  27. final def getLoggingLevel(): Type

    Permalink
    Definition Classes
    Logging
  28. final lazy val gram: Gram

    Permalink

    Some grammar terms (productions specifically) have an indirection to the grammar term that is their definition.

    Some grammar terms (productions specifically) have an indirection to the grammar term that is their definition.

    This would be protected, except it is used in unit testing.

    Definition Classes
    ProdGram
  29. final def hasNoParser: Parser

    Permalink
    Attributes
    protected
    Definition Classes
    Gram
  30. final def hasNoUnparser: Unparser

    Permalink
    Attributes
    protected
    Definition Classes
    Gram
  31. final def hasOOLAGRootSetup: Boolean

    Permalink
    Definition Classes
    OOLAGHost
  32. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  33. final def isEmpty: Boolean

    Permalink
    Definition Classes
    ProdGram
  34. def isError: Boolean

    Permalink
    Definition Classes
    OOLAGHost → WithDiagnostics
  35. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  36. final macro def log(lvl: Type, msg: String, args: Any*): Unit

    Permalink
    Definition Classes
    Logging
  37. lazy val logID: String

    Permalink
    Definition Classes
    Logging → Identity
  38. var logLevel: Maybe[Type]

    Permalink
    Definition Classes
    Logging
  39. var logWriter: Maybe[LogWriter]

    Permalink
    Definition Classes
    Logging
  40. final val nArgs: Args

    Permalink
    Definition Classes
    OOLAGHostImpl → OOLAGHost
  41. final def name: String

    Permalink
    Definition Classes
    ProdNamedGramGram
  42. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  43. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  44. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  45. final lazy val oolagContext: OOLAGHost

    Permalink
    Definition Classes
    OOLAGHost
  46. final def oolagContextViaArgs: Some[OOLAGHost]

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHostImpl → OOLAGHost
  47. def oolagError(th: Diagnostic): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  48. final def oolagParent: OOLAGHost

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  49. def oolagWarn(th: Diagnostic): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  50. final lazy val parser: Parser

    Permalink

    Parser - a Gram can provide a parser, which...

    Parser - a Gram can provide a parser, which... parses what the Gram describes

    Definition Classes
    ProdGram
  51. final lazy val path: String

    Permalink
    Definition Classes
    ProdGram → OOLAGHost
  52. final def requiredEvaluations(lv: OOLAGValueBase): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  53. final def requiredEvaluations(arg: ⇒ Any): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  54. val sc: SchemaComponent

    Permalink
  55. def setLogWriter(lw: LogWriter): Unit

    Permalink
    Definition Classes
    Logging
  56. def setLoggingLevel(level: Type): Unit

    Permalink
    Definition Classes
    Logging
  57. final def setOOLAGContext(oolagContextArg: OOLAGHost): Unit

    Permalink
    Definition Classes
    OOLAGHost
  58. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  59. def toString(): String

    Permalink
    Definition Classes
    ProdNamedGram → AnyRef → Any
  60. final lazy val unparser: Unparser

    Permalink
    Definition Classes
    ProdGram
  61. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  62. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  63. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  64. def warn(th: Diagnostic): Unit

    Permalink
    Definition Classes
    OOLAGHost
  65. final def warnings: Seq[Diagnostic]

    Permalink
    Definition Classes
    OOLAGHost
  66. macro def withLoggingLevel[S](newLevel: Type)(body: ⇒ S): Unit

    Permalink
    Definition Classes
    Logging
  67. def |(qq: ⇒ Gram): Gram

    Permalink
    Definition Classes
    Gram
  68. def ||(qq: ⇒ Gram): Gram

    Permalink

    This || operator means one of the operands ONLY.

    This || operator means one of the operands ONLY. I.e., statically they are supposed to be mutually exclusive, so only one (or none) of them should ever survive.

    Definition Classes
    Gram
  69. def ~(qq: ⇒ Gram): Gram

    Permalink

    Sequential composition operator in the grammar.

    Sequential composition operator in the grammar.

    Note: This should not evaluate the argument unless it has to.

    Definition Classes
    Gram

Inherited from NamedGram

Inherited from Gram

Inherited from OOLAGHostImpl

Inherited from OOLAGHost

Inherited from NamedMixinBase

Inherited from WithDiagnostics

Inherited from Logging

Inherited from Identity

Inherited from AnyRef

Inherited from Any

Ungrouped