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 def maybeParser: Maybe[Parser]

    Permalink
    Definition Classes
    Gram
  41. final def maybeUnparser: Maybe[Unparser]

    Permalink
    Definition Classes
    Gram
  42. final val nArgs: Args

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

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

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

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

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

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

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

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

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

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

    Permalink

    Provides parser.

    Provides parser.

    Required to examine child parsers, and optimize itself out by propagating NadaParser if there is no parser.

    Definition Classes
    ProdGram
  53. final lazy val path: String

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

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

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

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

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

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

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

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

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

    Permalink

    Provides unparser.

    Provides unparser.

    Required to examine child unparsers, and optimize itself out by propagating NadaUnparser if there is no unparser.

    Definition Classes
    ProdGram
  63. final def wait(): Unit

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

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

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

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

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

    Permalink
    Definition Classes
    Logging
  69. 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
  70. 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