// Rendered by UMod Pretty Printer at 2024-03-03_16h34m15
// See also the UMod user documentation online.

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

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

  TOPLEVEL CLASS
  LocString
        text        string
        loc         location
  DefInstance
        raw         Definition
        representingKey     string
        importKeys  SET string
  SourceItem
        context     OPT SourceItem
        name        string
        location    location
        docu        string->SEQ LocString
  | Definition
        isgeneric   bool
        ispublic    bool
        definedAsLocal      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
  | | 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
  | | XRegExp
        value       Expression
        xattributes OPT Definition->bool
  | | | TagsRegExp
        verbatim_input      bool
        localdefs   string->Definition
  | | | CharsRegExp
        isDistributed       bool
        storeAsData bool
        linearContentModel  OPT Expression
        dataContentModel    OPT Expression
  | ImportItem
        targetURN   OPT string
        absolutePath        OPT string
        isgeneric   bool
        localSubsts string->string->Expression
        globalSubsts        string->Expression
        resolved    OPT Module
  | 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
  NamespaceDecl
        prefix      string
        uri         string
        isdefault   bool
        elementonlydefault  bool
  Expr0
        location    OPT location
  | Expression
        canProduceEpsilon   bool
        firsts      OPT string->Expression
        weakfirsts  OPT string->Expression
  | | StringConst
        value       string
  | | Pcdata ALGEBRAIC
  | | CharExpr ABSTRACT ALGEBRAIC
  | | | CharBinary ABSTRACT ALGEBRAIC
        left        Expression
        right       Expression
  | | | | CharCut ALGEBRAIC
  | | | | CharJoin ALGEBRAIC
  | | | | CharMinus ALGEBRAIC
  | | | | CharRange ALGEBRAIC
  | | | CharSetConst ALGEBRAIC
        value       charset
  | | None ALGEBRAIC
  | | Insertion ALGEBRAIC
        on          Expression
        synthetic   bool
  | | Reference
        sourceText  string
        isImplicit  bool
        resolved    OPT Definition
  | | GrUnary ABSTRACT ALGEBRAIC
        on          Expression
        istight     bool
  | | | Opt ALGEBRAIC
  | | | Plus ALGEBRAIC
  | | | Greedy ALGEBRAIC
  | | | Star ALGEBRAIC
  | | GrMult ABSTRACT ALGEBRAIC
        on          SEQ Expression
  | | | Seq ALGEBRAIC
        istight     bool
  | | | Alt ALGEBRAIC
  | | | Perm ALGEBRAIC
        obligates   SET Expression
  | | ParseParticle
        ident       string
        on          Expression
        collector   OPT CharsRegExp
  | | Empty ALGEBRAIC
  | | Subst
        on          Expression
        div         Reference
        mul         Expression

END MODEL // D2d