// Rendered by UMod Pretty Printer at 2022-06-25_16h57m37
// See also the UMod user documentation online.

MODEL D2d =
  EXT location FROM eu.bandm.tools.message.Location
  EXT charset FROM eu.bandm.tools.d2d2.infra.CharSet
  EXT namespaceName FROM eu.bandm.tools.util.NamespaceName
  EXT serializable FROM java.io.Serializable

  ENUM XmlKind = element, attribute, none
  ENUM EnumRep = ASIS, FIRSTID, NUMERIC

  TOPLEVEL CLASS
  Expr0
        location    OPT location
  | Expression
        canProduceEpsilon   bool
        firsts      OPT string->
        weakfirsts  OPT string->
  | | Reference
        sourceText  string
        isImplicit  bool
        resolved    OPT Definition
  | | None ALGEBRAIC
  | | Insertion ALGEBRAIC
        on          Expression
  | | Subst
        on          Expression
        div         Reference
        mul         Expression
  | | StringConst
        value       string
  | | Empty ALGEBRAIC
  | | Pcdata ALGEBRAIC
  | | CharExpr ABSTRACT ALGEBRAIC
  | | | CharBinary ABSTRACT ALGEBRAIC
        left        Expression
        right       Expression
  | | | | CharRange ALGEBRAIC
  | | | | CharJoin ALGEBRAIC
  | | | | CharMinus ALGEBRAIC
  | | | | CharCut ALGEBRAIC
  | | | CharSetConst ALGEBRAIC
        value       charset
  | | GrUnary ABSTRACT ALGEBRAIC
        on          Expression
        istight     bool
  | | | Star ALGEBRAIC
  | | | Greedy ALGEBRAIC
  | | | Plus ALGEBRAIC
  | | | Opt ALGEBRAIC
  | | ParseParticle
        ident       string
        on          Expression
        collector   OPT CharsRegExp
  | | GrMult ABSTRACT ALGEBRAIC
  | | | Alt ALGEBRAIC
        on          SEQ Expression
  | | | Seq ALGEBRAIC
        on          SEQ Expression
        istight     bool
  | | | Perm ALGEBRAIC
        on          SEQ Expression
        obligates   SET Expression
  DefInstance
        raw         Definition
        representingKey     string
        importKeys  SET string
  LocString
        text        string
        loc         location
  NamespaceDecl
        prefix      string
        uri         string
        isdefault   bool
        elementonlydefault  bool
  SourceItem
        context     OPT SourceItem
        name        string
        location    location
        docu        string->SEQ LocString
  | Definition
        isgeneric   bool
        ispublic    bool
        postproc    OPT string
        xml_kind    XmlKind
        xml_src_tag OPT string
        xml_tag     OPT namespaceName
        xml_value   OPT string
        xml_trimmed bool
        editpragmas OPT string
  | | XRegExp
        value       Expression
        attributes  OPT SET Definition
  | | | CharsRegExp
        isDistributed       bool
        storeAsData bool
        linearContentModel  OPT Expression
        dataContentModel    OPT Expression
  | | | TagsRegExp
        verbatim_input      bool
        localdefs   string->Definition
  | | Enumeration
        sourceOrder SEQ string
        items       string->int
        reverse     int->SET string
        repr        int->string
        xml_representation  EnumRep
        xml_emptystructs    bool
        itemDocu    int->string->SEQ LocString
  | Module
        modules     string->Module
        imports     string->ImportItem
        definitions string->Definition
        defaultElNs OPT namespaceName
        namespaces  SEQ NamespaceDecl
        isLocal     bool
  | | ResolvedModule
        raw         Module
        defInstances        Definition->DefInstance
        sources     Reference->Definition
        resolved    Reference->Definition
        allRawModules       SET Module
  | ImportItem
        targetURN   OPT string
        absolutePath        OPT string
        isgeneric   bool
        localSubsts string->string->Expression
        globalSubsts        string->Expression
        resolved    OPT Module

END MODEL // D2d