{
  "name": "js",
  "preserveTags": true,
  "requires": [],
  "exportTos": [],
  "elements": [
    {
      "name": "statement",
      "super": null,
      "isRoot": false,
      "tags": [
        "+"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "comment",
          "tags": [
            "#"
          ]
        },
        {
          "name": "commentmultiline",
          "tags": [
            "##"
          ]
        },
        {
          "name": "xmodule",
          "tags": [
            "module"
          ]
        },
        {
          "name": "statementmultiline",
          "tags": [
            "++"
          ]
        },
        {
          "name": "xvar",
          "tags": [
            "var"
          ]
        },
        {
          "name": "wzVar",
          "tags": [
            "wz-var"
          ]
        },
        {
          "name": "decl",
          "tags": [
            "decl"
          ]
        },
        {
          "name": "xconst",
          "tags": [
            "const"
          ]
        },
        {
          "name": "wzConst",
          "tags": [
            "wz-const"
          ]
        },
        {
          "name": "xlet",
          "tags": [
            "let"
          ]
        },
        {
          "name": "initValue",
          "tags": [
            "="
          ]
        },
        {
          "name": "identifier",
          "tags": [
            "@id"
          ]
        },
        {
          "name": "expressionMember",
          "tags": [
            "@expr"
          ]
        },
        {
          "name": "iif",
          "tags": [
            "iif"
          ]
        },
        {
          "name": "test",
          "tags": [
            "test"
          ]
        },
        {
          "name": "then",
          "tags": [
            "then"
          ]
        },
        {
          "name": "xvoid",
          "tags": [
            "void"
          ]
        },
        {
          "name": "not",
          "tags": [
            "not",
            "op!"
          ]
        },
        {
          "name": "notnot",
          "tags": [
            "!!"
          ]
        },
        {
          "name": "or",
          "tags": [
            "||",
            "op||"
          ]
        },
        {
          "name": "and",
          "tags": [
            "&&",
            "op&&"
          ]
        },
        {
          "name": "op_nullish",
          "tags": [
            "??",
            "op??"
          ]
        },
        {
          "name": "op_eq_strict",
          "tags": [
            "===",
            "op==="
          ]
        },
        {
          "name": "op_noteq_strict",
          "tags": [
            "!==",
            "op!=="
          ]
        },
        {
          "name": "op_eq",
          "tags": [
            "==",
            "op=="
          ]
        },
        {
          "name": "op_noteq",
          "tags": [
            "!=",
            "op!="
          ]
        },
        {
          "name": "op_minus",
          "tags": [
            "minus",
            "op-"
          ]
        },
        {
          "name": "op_plus",
          "tags": [
            "plus",
            "op+"
          ]
        },
        {
          "name": "op_times",
          "tags": [
            "times",
            "op*"
          ]
        },
        {
          "name": "op_div",
          "tags": [
            "divide",
            "op/"
          ]
        },
        {
          "name": "op_power",
          "tags": [
            "power",
            "op**"
          ]
        },
        {
          "name": "op_mod",
          "tags": [
            "mod"
          ]
        },
        {
          "name": "bit_and",
          "tags": [
            "op&"
          ]
        },
        {
          "name": "bit_or",
          "tags": [
            "op|"
          ]
        },
        {
          "name": "op_xor",
          "tags": [
            "xor",
            "op^"
          ]
        },
        {
          "name": "op_xand",
          "tags": [
            "xand",
            "op&"
          ]
        },
        {
          "name": "bit_not",
          "tags": [
            "op~"
          ]
        },
        {
          "name": "bit_left_shift",
          "tags": [
            "op<<"
          ]
        },
        {
          "name": "bit_right_shift",
          "tags": [
            "op>>"
          ]
        },
        {
          "name": "zero_fill_right_shift",
          "tags": [
            "op>>>"
          ]
        },
        {
          "name": "op_gt",
          "tags": [
            "gt",
            "op>"
          ]
        },
        {
          "name": "op_ge",
          "tags": [
            ">=",
            "op>="
          ]
        },
        {
          "name": "op_lt",
          "tags": [
            "lt",
            "op<"
          ]
        },
        {
          "name": "op_le",
          "tags": [
            "<=",
            "op<="
          ]
        },
        {
          "name": "op_typeof",
          "tags": [
            "typeof",
            "optypeof"
          ]
        },
        {
          "name": "xrequire",
          "tags": [
            "require"
          ]
        },
        {
          "name": "set",
          "tags": [
            "set"
          ]
        },
        {
          "name": "ximport",
          "tags": [
            "import"
          ]
        },
        {
          "name": "xexport",
          "tags": [
            "export"
          ]
        },
        {
          "name": "exportDefault",
          "tags": [
            "export-default"
          ]
        },
        {
          "name": "xif",
          "tags": [
            "if"
          ]
        },
        {
          "name": "elif",
          "tags": [
            "elif"
          ]
        },
        {
          "name": "xelse",
          "tags": [
            "else"
          ]
        },
        {
          "name": "xfor",
          "tags": [
            "for"
          ]
        },
        {
          "name": "xleft",
          "tags": [
            "left"
          ]
        },
        {
          "name": "xof",
          "tags": [
            "of"
          ]
        },
        {
          "name": "xin",
          "tags": [
            "in"
          ]
        },
        {
          "name": "foreach",
          "tags": [
            "foreach"
          ]
        },
        {
          "name": "backeach",
          "tags": [
            "backeach"
          ]
        },
        {
          "name": "each",
          "tags": [
            "each"
          ]
        },
        {
          "name": "filter",
          "tags": [
            "filter"
          ]
        },
        {
          "name": "find",
          "tags": [
            "find"
          ]
        },
        {
          "name": "reduce",
          "tags": [
            "reduce"
          ]
        },
        {
          "name": "concat",
          "tags": [
            "concat"
          ]
        },
        {
          "name": "xbreak",
          "tags": [
            "break"
          ]
        },
        {
          "name": "xcontinue",
          "tags": [
            "continue"
          ]
        },
        {
          "name": "label",
          "tags": [
            "label"
          ]
        },
        {
          "name": "xwhile",
          "tags": [
            "while"
          ]
        },
        {
          "name": "xdo",
          "tags": [
            "do"
          ]
        },
        {
          "name": "xswitch",
          "tags": [
            "switch"
          ]
        },
        {
          "name": "xcase",
          "tags": [
            "case"
          ]
        },
        {
          "name": "xdefault",
          "tags": [
            "default"
          ]
        },
        {
          "name": "xtry",
          "tags": [
            "try"
          ]
        },
        {
          "name": "xcatch",
          "tags": [
            "catch"
          ]
        },
        {
          "name": "xfinally",
          "tags": [
            "finally"
          ]
        },
        {
          "name": "xthrow",
          "tags": [
            "throw"
          ]
        },
        {
          "name": "xdelete",
          "tags": [
            "delete"
          ]
        },
        {
          "name": "sequence",
          "tags": [
            "sequence"
          ]
        },
        {
          "name": "typeParameterInst",
          "tags": [
            ":param"
          ]
        },
        {
          "name": "call",
          "tags": [
            "_"
          ]
        },
        {
          "name": "memberCall",
          "tags": [
            "._"
          ]
        },
        {
          "name": "decoratorCall",
          "tags": [
            "@_"
          ]
        },
        {
          "name": "callOnValue",
          "tags": [
            "("
          ]
        },
        {
          "name": "memberAccess",
          "tags": [
            "."
          ]
        },
        {
          "name": "memberAccessComputed",
          "tags": [
            ".["
          ]
        },
        {
          "name": "jsObject",
          "tags": [
            "{"
          ]
        },
        {
          "name": "jsArray",
          "tags": [
            "["
          ]
        },
        {
          "name": "jsPropertyOrValue",
          "tags": [
            "@"
          ]
        },
        {
          "name": "jsPropertyOrValueComputed",
          "tags": [
            "@["
          ]
        },
        {
          "name": "jsRest",
          "tags": [
            "..."
          ]
        },
        {
          "name": "namedCallParam",
          "tags": [
            ":"
          ]
        },
        {
          "name": "jsonStatementTree",
          "tags": [
            "jst"
          ]
        },
        {
          "name": "xfunction",
          "tags": [
            "function"
          ]
        },
        {
          "name": "iife",
          "tags": [
            "iife"
          ]
        },
        {
          "name": "wzIife",
          "tags": [
            "wz-iife"
          ]
        },
        {
          "name": "arrowfunction",
          "tags": [
            "=>"
          ]
        },
        {
          "name": "asyncarrowfunction",
          "tags": [
            "async=>"
          ]
        },
        {
          "name": "generatorfunction",
          "tags": [
            "function*"
          ]
        },
        {
          "name": "asyncfunction",
          "tags": [
            "async-function"
          ]
        },
        {
          "name": "ctor",
          "tags": [
            "ctor"
          ]
        },
        {
          "name": "method",
          "tags": [
            "m"
          ]
        },
        {
          "name": "property",
          "tags": [
            "property"
          ]
        },
        {
          "name": "wzFunction",
          "tags": [
            "wz-function"
          ]
        },
        {
          "name": "xyield",
          "tags": [
            "yield"
          ]
        },
        {
          "name": "xawait",
          "tags": [
            "await"
          ]
        },
        {
          "name": "xreturn",
          "tags": [
            "return"
          ]
        },
        {
          "name": "xclass",
          "tags": [
            "class"
          ]
        },
        {
          "name": "wzClass",
          "tags": [
            "wz-class"
          ]
        },
        {
          "name": "base",
          "tags": [
            "base"
          ]
        },
        {
          "name": "get",
          "tags": [
            "get"
          ]
        },
        {
          "name": "xnew",
          "tags": [
            "new"
          ]
        },
        {
          "name": "type",
          "tags": [
            "type"
          ]
        },
        {
          "name": "template",
          "tags": [
            "template",
            "`lit"
          ]
        },
        {
          "name": "taggedTemplate",
          "tags": [
            "`tag"
          ]
        },
        {
          "name": "tagFunctionCall",
          "tags": [
            "_`"
          ]
        },
        {
          "name": "macroExpr",
          "tags": [
            "macro"
          ]
        },
        {
          "name": "reactComponent",
          "tags": [
            "react"
          ]
        },
        {
          "name": "reactFunction",
          "tags": [
            "react-f"
          ]
        },
        {
          "name": "style",
          "tags": [
            "style"
          ]
        },
        {
          "name": "prop",
          "tags": [
            "prop"
          ]
        },
        {
          "name": "reactMember",
          "tags": [
            "reactMember"
          ]
        },
        {
          "name": "state",
          "tags": [
            "state"
          ]
        },
        {
          "name": "setState",
          "tags": [
            "set-state"
          ]
        },
        {
          "name": "render",
          "tags": [
            "render"
          ]
        },
        {
          "name": "willMount",
          "tags": [
            "will-mount"
          ]
        },
        {
          "name": "didMount",
          "tags": [
            "did-mount"
          ]
        },
        {
          "name": "willUnmount",
          "tags": [
            "will-unmount"
          ]
        },
        {
          "name": "shouldUpdate",
          "tags": [
            "should-update"
          ]
        },
        {
          "name": "didUpdate",
          "tags": [
            "did-update"
          ]
        },
        {
          "name": "willUpdate",
          "tags": [
            "will-update"
          ]
        },
        {
          "name": "willReceiveProps",
          "tags": [
            "will-receive-props"
          ]
        },
        {
          "name": "htmlevent",
          "tags": [
            "event"
          ]
        },
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        },
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        },
        {
          "name": "htmlelement",
          "tags": [
            "<"
          ]
        },
        {
          "name": "doctype",
          "tags": [
            "doctype"
          ]
        },
        {
          "name": "p",
          "tags": [
            "p"
          ]
        },
        {
          "name": "htmlevent",
          "tags": [
            "htmlevent"
          ]
        },
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        },
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        },
        {
          "name": "js",
          "tags": [
            "js"
          ]
        },
        {
          "name": "css",
          "tags": [
            "css"
          ]
        },
        {
          "name": "styleJsx",
          "tags": [
            "style-jsx"
          ]
        },
        {
          "name": "styled",
          "tags": [
            "styled"
          ]
        },
        {
          "name": "styledCss",
          "tags": [
            "styled-css"
          ]
        },
        {
          "name": "htmlParam",
          "tags": [
            "@param"
          ]
        },
        {
          "name": "htmlFilter",
          "tags": [
            "@filter"
          ]
        },
        {
          "name": "keyframes",
          "tags": [
            "keyframes"
          ]
        },
        {
          "name": "ready",
          "tags": [
            "ready"
          ]
        },
        {
          "name": "tohtml",
          "tags": [
            "tohtml"
          ]
        },
        {
          "name": "html_f",
          "tags": [
            "html_f"
          ]
        },
        {
          "name": "html_ng",
          "tags": [
            "html_ng"
          ]
        },
        {
          "name": "html_dom",
          "tags": [
            "html_dom"
          ]
        },
        {
          "name": "html_hb",
          "tags": [
            "html_hb"
          ]
        },
        {
          "name": "wzRequire",
          "tags": [
            "wz-require"
          ]
        },
        {
          "name": "graphqlQuery",
          "tags": [
            "graphql-query"
          ]
        },
        {
          "name": "graphqlMutation",
          "tags": [
            "graphql-mutation"
          ]
        },
        {
          "name": "handlebar",
          "tags": [
            "{{"
          ]
        },
        {
          "name": "log",
          "tags": [
            "log"
          ]
        },
        {
          "name": "info",
          "tags": [
            "info"
          ]
        },
        {
          "name": "inspect",
          "tags": [
            "log?"
          ]
        },
        {
          "name": "success",
          "tags": [
            "success"
          ]
        },
        {
          "name": "warn",
          "tags": [
            "warn"
          ]
        },
        {
          "name": "error",
          "tags": [
            "error"
          ]
        },
        {
          "name": "chalk",
          "tags": [
            "chalk"
          ]
        },
        {
          "name": "describe",
          "tags": [
            "describe"
          ]
        },
        {
          "name": "it",
          "tags": [
            "it"
          ]
        },
        {
          "name": "itAsync",
          "tags": [
            "it-async"
          ]
        },
        {
          "name": "before",
          "tags": [
            "before"
          ]
        },
        {
          "name": "beforeAsync",
          "tags": [
            "before-async"
          ]
        },
        {
          "name": "beforeEach",
          "tags": [
            "before-each"
          ]
        },
        {
          "name": "after",
          "tags": [
            "after"
          ]
        },
        {
          "name": "afterAsync",
          "tags": [
            "after-async"
          ]
        },
        {
          "name": "afterEach",
          "tags": [
            "after-each"
          ]
        }
      ],
      "restricts": [],
      "methods": [],
      "comments": [
        "The base element for all code nodes, and",
        "a generic code statement that will be emitted as is.",
        "The indentation will depend to the node depth.",
        "Inside an html tag means a text node without line feed."
      ]
    },
    {
      "name": "comment",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "#"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "commentmultiline",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "##"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "xmodule",
      "super": "statement",
      "isRoot": true,
      "tags": [
        "module"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "kind",
          "type": "string",
          "tags": [
            "kind"
          ],
          "default": "jsfile",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [
            {
              "facets": [
                {
                  "type": "enumFacet",
                  "value": "jsfile",
                  "comments": []
                },
                {
                  "type": "enumFacet",
                  "value": "nodejs.bin",
                  "comments": []
                },
                {
                  "type": "enumFacet",
                  "value": "react",
                  "comments": []
                },
                {
                  "type": "enumFacet",
                  "value": "es6",
                  "comments": []
                }
              ],
              "comments": []
            }
          ],
          "comments": []
        },
        {
          "name": "ecma",
          "type": "string",
          "tags": [
            "ecma"
          ],
          "default": "es5",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [
            {
              "facets": [
                {
                  "type": "enumFacet",
                  "value": "es5",
                  "comments": []
                },
                {
                  "type": "enumFacet",
                  "value": "es6",
                  "comments": []
                }
              ],
              "comments": []
            }
          ],
          "comments": []
        },
        {
          "name": "no_strict",
          "type": "boolean",
          "tags": [
            "no_strict"
          ],
          "default": "false",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "feature",
          "role": "features",
          "tags": [
            "feature"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "if",
              "name": "xif",
              "value": "this.kind === 'react' || this.kind === 'es6'",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.ecma = 'es6'",
                  "statements": []
                }
              ]
            },
            {
              "tag": "set",
              "name": "set",
              "value": "this.wzModelState = ctx.modelState = {}",
              "statements": []
            }
          ],
          "comments": [
            "referenced in wizzi-codegen.js.es6.module",
            "> decl hasClasses = model.wzModelState.hasClasses",
            "The 'hasClasses' is set in the 'wzInitialize' method",
            "of the 'class' element.",
            "loog 'wizzi-js.model.module', this.wzName"
          ]
        },
        {
          "name": "hasFeature",
          "isStatic": false,
          "isKnownMethod": false,
          "params": [
            "name"
          ],
          "statements": [
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "f in this.features",
              "statements": [
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "f.wzName === name",
                  "statements": [
                    {
                      "tag": "return",
                      "name": "xreturn",
                      "value": "true",
                      "statements": []
                    }
                  ]
                }
              ]
            },
            {
              "tag": "return",
              "name": "xreturn",
              "value": "false",
              "statements": []
            }
          ],
          "comments": []
        }
      ],
      "comments": [
        "The root element of the js schema."
      ]
    },
    {
      "name": "feature",
      "super": null,
      "isRoot": false,
      "tags": [
        "feature"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "kind",
          "type": "string",
          "tags": [
            "kind"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [
            {
              "facets": [
                {
                  "type": "enumFacet",
                  "value": "argument-check",
                  "comments": []
                }
              ],
              "comments": []
            }
          ],
          "comments": []
        }
      ],
      "relations": [],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A known feature that this module require. The list of available features",
        "is enumerated in the restrict element of the 'kind' attribute.",
        "Most features are autodetected during schema initialization."
      ]
    },
    {
      "name": "statementmultiline",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "++"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "Inside an html tag means a text node preceded by a line feed"
      ]
    },
    {
      "name": "param",
      "super": null,
      "isRoot": false,
      "tags": [
        "param"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "stringParam",
          "tags": [
            "string"
          ]
        },
        {
          "name": "booleanParam",
          "tags": [
            "boolean"
          ]
        },
        {
          "name": "numberParam",
          "tags": [
            "number"
          ]
        },
        {
          "name": "dateParam",
          "tags": [
            "date"
          ]
        },
        {
          "name": "functionParam",
          "tags": [
            "func"
          ]
        },
        {
          "name": "symbolParam",
          "tags": [
            "symbol"
          ]
        },
        {
          "name": "nodeParam",
          "tags": [
            "node"
          ]
        },
        {
          "name": "elementParam",
          "tags": [
            "element"
          ]
        },
        {
          "name": "exactParam",
          "tags": [
            "exact"
          ]
        },
        {
          "name": "anyParam",
          "tags": [
            "any"
          ]
        },
        {
          "name": "callbackParam",
          "tags": [
            "callback"
          ]
        },
        {
          "name": "optionsCallbackParam",
          "tags": [
            "options-callback"
          ]
        },
        {
          "name": "arrayParam",
          "tags": [
            "["
          ]
        },
        {
          "name": "arrayOrObjectParam",
          "tags": [
            "[{"
          ]
        },
        {
          "name": "objectParam",
          "tags": [
            "{"
          ]
        },
        {
          "name": "oneOfParam",
          "tags": [
            "one-of"
          ]
        },
        {
          "name": "oneOfTypeParam",
          "tags": [
            "one-of-type"
          ]
        },
        {
          "name": "instanceOfParam",
          "tags": [
            "instance-of"
          ]
        },
        {
          "name": "reactStyleParam",
          "tags": [
            "react-style"
          ]
        },
        {
          "name": "shapeParam",
          "tags": [
            "shape"
          ]
        }
      ],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "if",
              "name": "xif",
              "value": "this.wzElement !== 'param' && !this.paramObjectPattern && !this.paramArrayPattern",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.isRequired = true",
                  "statements": []
                },
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "isDescendentOf(this, 'prop') == false",
                  "statements": [
                    {
                      "tag": "var",
                      "name": "xvar",
                      "value": "r = this.wzRoot()",
                      "statements": []
                    },
                    {
                      "tag": "if",
                      "name": "xif",
                      "value": "r.hasFeature('argument-check') === false",
                      "statements": [
                        {
                          "tag": "_",
                          "name": "call",
                          "value": "r.addFeature('argument-check', this.wzSourceLineInfo)",
                          "statements": []
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "tag": "else",
              "name": "xelse",
              "value": "",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.isRequired = false",
                  "statements": []
                }
              ]
            },
            {
              "tag": "if",
              "name": "xif",
              "value": "this.isOptional",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.isRequired = false",
                  "statements": []
                }
              ]
            }
          ],
          "comments": []
        }
      ],
      "comments": [
        "",
        "The 'param' element defines a simple, not typed and not restricted",
        "function parameter.",
        "A function with 'params' parameters has no argument checking",
        "ittf",
        "function Foo",
        "param group",
        "param options",
        "",
        "A function with typed parameters or 'params' with constraints facets",
        "has argument checking.",
        "ittf",
        "function Foo",
        "string group",
        "required",
        "{ options",
        "number level",
        "required",
        "range 0 - 3",
        "string size",
        "required",
        "one-of small, medium, large",
        ""
      ]
    },
    {
      "name": "stringParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "string"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "booleanParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "boolean"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "numberParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "number"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "dateParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "date"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "functionParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "func"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "symbolParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "symbol"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "react param"
      ]
    },
    {
      "name": "nodeParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "node"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "react param"
      ]
    },
    {
      "name": "elementParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "element"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "react param"
      ]
    },
    {
      "name": "exactParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "exact"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "anyParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "any"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "callbackParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "callback"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "optionsCallbackParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "options-callback"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "arrayParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "["
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "jsPropertyOrValue",
          "role": "jsPropertyOrValues",
          "tags": [
            "@"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "if",
              "name": "xif",
              "value": "this.params.length == 0 && this.jsPropertyOrValues.length > 0",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.paramArrayPattern = true",
                  "statements": []
                },
                {
                  "tag": "var",
                  "name": "xvar",
                  "value": "acc = []",
                  "statements": []
                },
                {
                  "tag": "foreach",
                  "name": "foreach",
                  "value": "item in this.jsPropertyOrValues",
                  "statements": [
                    {
                      "tag": "_",
                      "name": "call",
                      "value": "acc.push(item.wzName)",
                      "statements": []
                    }
                  ]
                },
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.textified = '[' + acc.join(', ') + ']'",
                  "statements": []
                }
              ]
            }
          ],
          "comments": [
            "loog 'wizzi-js.parameters.wfschema.objectParam', this.params, this.jsPropertyOrValues"
          ]
        }
      ],
      "comments": []
    },
    {
      "name": "arrayOrObjectParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "[{"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "objectParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "{"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "jsPropertyOrValue",
          "role": "jsPropertyOrValues",
          "tags": [
            "@"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "if",
              "name": "xif",
              "value": "this.params.length == 0 && this.jsPropertyOrValues.length > 0",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.paramObjectPattern = true",
                  "statements": []
                },
                {
                  "tag": "var",
                  "name": "xvar",
                  "value": "acc = []",
                  "statements": []
                },
                {
                  "tag": "foreach",
                  "name": "foreach",
                  "value": "item in this.jsPropertyOrValues",
                  "statements": [
                    {
                      "tag": "var",
                      "name": "xvar",
                      "value": "ss = item.wzName.split(' ')",
                      "statements": []
                    },
                    {
                      "tag": "if",
                      "name": "xif",
                      "value": "ss.length > 1",
                      "statements": [
                        {
                          "tag": "if",
                          "name": "xif",
                          "value": "ss.length == 2 && ss[0] === ss[1]",
                          "statements": [
                            {
                              "tag": "_",
                              "name": "call",
                              "value": "acc.push(ss[0])",
                              "statements": []
                            }
                          ]
                        },
                        {
                          "tag": "elif",
                          "name": "elif",
                          "value": "ss[1] === '='",
                          "statements": [
                            {
                              "tag": "_",
                              "name": "call",
                              "value": "acc.push(item.wzName)",
                              "statements": []
                            }
                          ]
                        },
                        {
                          "tag": "else",
                          "name": "xelse",
                          "value": "",
                          "statements": [
                            {
                              "tag": "_",
                              "name": "call",
                              "value": "acc.push",
                              "statements": [
                                {
                                  "tag": "@",
                                  "name": "jsPropertyOrValue",
                                  "value": "ss[0] + ': ' + ss.slice(1, ss.lenght).join(' ')",
                                  "statements": []
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "tag": "else",
                      "name": "xelse",
                      "value": "",
                      "statements": [
                        {
                          "tag": "_",
                          "name": "call",
                          "value": "acc.push(ss[0])",
                          "statements": []
                        }
                      ]
                    }
                  ]
                },
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.textified = '{' + acc.join(', ') + '}'",
                  "statements": []
                }
              ]
            }
          ],
          "comments": [
            "loog 'wizzi-js.parameters.wfschema.objectParam', this.params, this.jsPropertyOrValues"
          ]
        }
      ],
      "comments": []
    },
    {
      "name": "oneOfParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "one-of"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "jsPropertyOrValue",
          "role": "jsPropertyOrValues",
          "tags": [
            "@"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "oneOfTypeParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "one-of-type"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "instanceOfParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "instance-of"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "reactStyleParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "react-style"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "shapeParam",
      "super": "param",
      "isRoot": false,
      "tags": [
        "shape"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isOptional",
          "type": "boolean",
          "tags": [
            "optional"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "param",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "prop",
          "role": "props",
          "tags": [
            "prop"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "restrict",
          "role": null,
          "tags": [
            "restrict"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "param",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "restrict",
      "super": null,
      "isRoot": false,
      "tags": [
        "restrict"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "facet",
          "role": "facets",
          "tags": [
            "facet"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "Group of restrictions to the element or attribute values"
      ]
    },
    {
      "name": "facet",
      "super": null,
      "isRoot": false,
      "tags": [
        "facet"
      ],
      "flags": "is-abstract ",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "enumFacet",
          "tags": [
            "enum"
          ]
        },
        {
          "name": "maxLengthFacet",
          "tags": [
            "max-length"
          ]
        },
        {
          "name": "minLengthFacet",
          "tags": [
            "min-length"
          ]
        },
        {
          "name": "maxValueFacet",
          "tags": [
            "max-value"
          ]
        },
        {
          "name": "minValueFacet",
          "tags": [
            "min-value"
          ]
        },
        {
          "name": "rangeFacet",
          "tags": [
            "range"
          ]
        },
        {
          "name": "regexpFacet",
          "tags": [
            "regexp"
          ]
        },
        {
          "name": "arrayOf",
          "tags": [
            "array-of"
          ]
        },
        {
          "name": "instanceOf",
          "tags": [
            "instance-of"
          ]
        },
        {
          "name": "oneOf",
          "tags": [
            "one-of"
          ]
        },
        {
          "name": "oneOfType",
          "tags": [
            "one-of-type"
          ]
        }
      ],
      "restricts": [],
      "methods": [],
      "comments": [
        "The abstract base class for facet restrictions"
      ]
    },
    {
      "name": "enumFacet",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "enum"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction of type enumeration"
      ]
    },
    {
      "name": "maxLengthFacet",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "max-length"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction of type maximum length"
      ]
    },
    {
      "name": "minLengthFacet",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "min-length"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction of type minimum length"
      ]
    },
    {
      "name": "maxValueFacet",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "max-value"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction of type maximum value"
      ]
    },
    {
      "name": "minValueFacet",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "min-value"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction of type minimum value"
      ]
    },
    {
      "name": "rangeFacet",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "range"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "from",
          "type": "string",
          "tags": [
            "from"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "to",
          "type": "string",
          "tags": [
            "to"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "if",
              "name": "xif",
              "value": "this.wzName && this.wzName.length > 0",
              "statements": [
                {
                  "tag": "var",
                  "name": "xvar",
                  "value": "ss = this.wzName.split('-')",
                  "statements": []
                },
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "ss.length == 2",
                  "statements": [
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.from = ss[0].trim()",
                      "statements": []
                    },
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.to = ss[1].trim()",
                      "statements": []
                    }
                  ]
                },
                {
                  "tag": "else",
                  "name": "xelse",
                  "value": "",
                  "statements": [
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "ss = this.wzName.split(' ')",
                      "statements": []
                    },
                    {
                      "tag": "if",
                      "name": "xif",
                      "value": "ss.length == 2",
                      "statements": [
                        {
                          "tag": "set",
                          "name": "set",
                          "value": "this.from = ss[0].trim()",
                          "statements": []
                        },
                        {
                          "tag": "set",
                          "name": "set",
                          "value": "this.to = ss[1].trim()",
                          "statements": []
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ],
          "comments": []
        }
      ],
      "comments": [
        "A restriction of type range (from to)"
      ]
    },
    {
      "name": "regexpFacet",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "regexp"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction of type regular expression"
      ]
    },
    {
      "name": "arrayOf",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "array-of"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction to an array of items of a particular type"
      ]
    },
    {
      "name": "instanceOf",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "instance-of"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction to an object of a particular type"
      ]
    },
    {
      "name": "oneOf",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "one-of"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction to an object of a particular type"
      ]
    },
    {
      "name": "oneOfType",
      "super": "facet",
      "isRoot": false,
      "tags": [
        "one-of-type"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "comment",
          "role": "comments",
          "tags": [
            "#"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "facet",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A restriction to an object of a particular type"
      ]
    },
    {
      "name": "xvar",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "var"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "wzVar",
          "tags": [
            "wz-var"
          ]
        }
      ],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "var i",
        "var i = 0",
        "var f_alpha",
        "function",
        "param p",
        "var obj_beta",
        "{                |",
        "@ name stefi",
        "js:",
        "var i;",
        "var i = 0;",
        "var alpha = function(p) {",
        "...",
        "};",
        "var obj_beta = { name: 'stefi' };"
      ]
    },
    {
      "name": "decl",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "decl"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "var i",
        "decl x = 0",
        "decl a",
        "{",
        "js:",
        "var i, x = 0, a = {};"
      ]
    },
    {
      "name": "xconst",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "const"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "wzConst",
          "tags": [
            "wz-const"
          ]
        }
      ],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "same as var element"
      ]
    },
    {
      "name": "xlet",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "let"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "same as var element"
      ]
    },
    {
      "name": "initValue",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "="
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "identifier",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "@id"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "expressionMember",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "@expr"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "iif",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "iif"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "iif a === b",
        "then 0",
        "else 1",
        "js:",
        "( a === b ) ? 0 : 1"
      ]
    },
    {
      "name": "test",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "test"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "then",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "then"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "xvoid",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "void"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "not",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "not",
        "op!"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "notnot",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "!!"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "or",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "||",
        "op||"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "and",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "&&",
        "op&&"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_nullish",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "??",
        "op??"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_eq_strict",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "===",
        "op==="
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_noteq_strict",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "!==",
        "op!=="
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_eq",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "==",
        "op=="
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_noteq",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "!=",
        "op!="
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_minus",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "minus",
        "op-"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_plus",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "plus",
        "op+"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_times",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "times",
        "op*"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_div",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "divide",
        "op/"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_power",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "power",
        "op**"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_mod",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "mod"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "bit_and",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "op&"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "bit_or",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "op|"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_xor",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "xor",
        "op^"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_xand",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "xand",
        "op&"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "bit_not",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "op~"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "bit_left_shift",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "op<<"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "bit_right_shift",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "op>>"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "zero_fill_right_shift",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "op>>>"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "op_gt",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "gt",
        "op>"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "var foo",
        "gt",
        "_ price",
        "@ id",
        "@ 100"
      ]
    },
    {
      "name": "op_ge",
      "super": "statement",
      "isRoot": false,
      "tags": [
        ">=",
        "op>="
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "var foo",
        ">=",
        "_ price",
        "@ id",
        "@ 100"
      ]
    },
    {
      "name": "op_lt",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "lt",
        "op<"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "var foo",
        "lt",
        "_ price",
        "@ id",
        "@ 100"
      ]
    },
    {
      "name": "op_le",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "<=",
        "op<="
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "var foo",
        "<=",
        "_ price",
        "@ id",
        "@ 100"
      ]
    },
    {
      "name": "op_typeof",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "typeof",
        "optypeof"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "var foo",
        "typeof Foo"
      ]
    },
    {
      "name": "xrequire",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "require"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "set",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "set"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "",
        "The set element do not relate to any javascript synthax element but is",
        "fundamental in the 'js' language schema.",
        "A wizzi schema cannot have free node names (tags). User names",
        "cannot be node names but always must be node values.",
        "Whenever javascript has a left hand side item that is an user name",
        "must be preceded by set.",
        "",
        "ittf",
        "set user.name = 'stefi'",
        "js",
        "user.name = 'stefi';",
        "",
        "In a 'set' element the wzName is written as is. If it is a top statement",
        "the semicolon is added.",
        ""
      ]
    },
    {
      "name": "ximport",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "import"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "from",
          "type": "string",
          "tags": [
            "from"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "xas",
          "type": "string",
          "tags": [
            "as"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzInitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "set",
              "name": "set",
              "value": "this.specifiers = []",
              "statements": []
            },
            {
              "tag": "var",
              "name": "xvar",
              "value": "temp = []",
              "statements": []
            },
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.statements",
              "statements": [
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "item.wzElement === 'jsPropertyOrValue'",
                  "statements": [
                    {
                      "tag": "_",
                      "name": "call",
                      "value": "this.specifiers.push(item)",
                      "statements": []
                    }
                  ]
                },
                {
                  "tag": "else",
                  "name": "xelse",
                  "value": "",
                  "statements": [
                    {
                      "tag": "_",
                      "name": "call",
                      "value": "temp.push(item)",
                      "statements": []
                    }
                  ]
                }
              ]
            },
            {
              "tag": "set",
              "name": "set",
              "value": "this.statements = temp",
              "statements": []
            }
          ],
          "comments": []
        }
      ],
      "comments": [
        "reference http://2ality.com/2014/09/es6-modules-final.html"
      ]
    },
    {
      "name": "xexport",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "export"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "from",
          "type": "string",
          "tags": [
            "from"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "xas",
          "type": "string",
          "tags": [
            "as"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzInitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "set",
              "name": "set",
              "value": "this.specifiers = []",
              "statements": []
            },
            {
              "tag": "var",
              "name": "xvar",
              "value": "temp = []",
              "statements": []
            },
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.statements",
              "statements": [
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "item.wzElement === 'jsPropertyOrValue'",
                  "statements": [
                    {
                      "tag": "_",
                      "name": "call",
                      "value": "this.specifiers.push(item)",
                      "statements": []
                    }
                  ]
                },
                {
                  "tag": "else",
                  "name": "xelse",
                  "value": "",
                  "statements": [
                    {
                      "tag": "_",
                      "name": "call",
                      "value": "temp.push(item)",
                      "statements": []
                    }
                  ]
                }
              ]
            },
            {
              "tag": "set",
              "name": "set",
              "value": "this.statements = temp",
              "statements": []
            }
          ],
          "comments": []
        }
      ],
      "comments": [
        "reference http://2ality.com/2014/09/es6-modules-final.html",
        "ittf",
        "export var|let|const foo = Math.sqrt(2)",
        "export",
        "var|let|const foo = Math.sqrt(2)",
        "export",
        "var|let|const foo",
        "{",
        "@ name 'stefi'",
        "export",
        "function foo",
        "param x",
        "export default",
        "function",
        "{ options"
      ]
    },
    {
      "name": "exportDefault",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "export-default"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "xif",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "if"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "",
        "ittf:",
        "if a === b",
        "elif a === c",
        "else",
        "js:",
        "if ( a === b ) {",
        "}",
        "else if ( a === c ) {",
        "}",
        "else {",
        "}",
        ""
      ]
    },
    {
      "name": "elif",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "elif"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "see 'if' element"
      ]
    },
    {
      "name": "xelse",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "else"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "see 'if' element"
      ]
    },
    {
      "name": "xfor",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "for"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "for var k in object3",
        "log k, object3[k]",
        ""
      ]
    },
    {
      "name": "xleft",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "left"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "xof",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "of"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "xin",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "in"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "foreach",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "foreach"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "foreach item in arr5",
        "info 'item ', i, item",
        "",
        "js",
        "var i, i_len=arr5.length, item;",
        "for (i=0; i<i_len; i++) {",
        "item = arr5[i];",
        "console.log('item ', i, item);",
        "}",
        ""
      ]
    },
    {
      "name": "backeach",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "backeach"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "backeach item in arr5",
        "info 'item ', i, item",
        "js",
        "var i, i_len=arr5.length, item;",
        "for (i= (i_len-1); i>-1; i--) {",
        "item = arr5[i];",
        "console.log('item ', i, item);",
        "}",
        ""
      ]
    },
    {
      "name": "each",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "each"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "each item in arr5 [this]",
        "info 'item ', i, item",
        "js",
        "arr5.forEach(function(item, i, array) {",
        "console.log('item ', i, item);",
        "}, this);",
        ""
      ]
    },
    {
      "name": "filter",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "filter"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "filter item in arr5 [this]",
        "return item > 20",
        "js",
        "arr5.filter(function(item, i, array) {",
        "return item > 20",
        "}, this);",
        ""
      ]
    },
    {
      "name": "find",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "find"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "find item in arr5 [this]",
        "return item == 20",
        "js",
        "arr5.item(function(item, i, array) {",
        "return item == 20",
        "}, this);",
        ""
      ]
    },
    {
      "name": "reduce",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "reduce"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "reduce item in arr5 0",
        "return item_acc + item",
        "js",
        "arr5.reduce(function(acc, item, item_index, array) {",
        "return item_acc + item",
        "}, 0);",
        ""
      ]
    },
    {
      "name": "concat",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "concat"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "concat arr5",
        "@ 'item1'",
        "[",
        "@ 'item2'",
        "@ 'item3'",
        "js",
        "arr5.concat('item1', ['item2', 'item3']);",
        ""
      ]
    },
    {
      "name": "xbreak",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "break"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "foreach item in arr5",
        "...",
        "break",
        ""
      ]
    },
    {
      "name": "xcontinue",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "continue"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "foreach item in arr5",
        "...",
        "continue",
        ""
      ]
    },
    {
      "name": "label",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "label"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "var i, j",
        "label loop1",
        "for i = 0; i < 3; i++",
        "# The first for statement is labeled \"loop1\"",
        "label loop2",
        "for j = 0; j < 3; j++",
        "# The second for statement is labeled \"loop2\"",
        "if i === 1 && j === 1",
        "continue loop1",
        "info 'i = ' + i + ', j = ' + j"
      ]
    },
    {
      "name": "xwhile",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "while"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "",
        "ittf",
        "set parent = node.parent",
        "while parent",
        "set parent = parent.parent",
        ""
      ]
    },
    {
      "name": "xdo",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "do"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "",
        "ittf",
        "var result = ''",
        "var i = 0",
        "do i < 5",
        "set i += 1",
        "set result += i + ' '",
        "",
        "js",
        "var result = '';",
        "var i = 0;",
        "do {",
        "i += 1;",
        "result += i + ' ';",
        "} while (i < 5);",
        ""
      ]
    },
    {
      "name": "xswitch",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "switch"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "",
        "ittf",
        "switch key",
        "case 1",
        "_ first()",
        "case 2",
        "_ second()",
        "default",
        "_ last()",
        ""
      ]
    },
    {
      "name": "xcase",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "case"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "see 'switch' element"
      ]
    },
    {
      "name": "xdefault",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "default"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "see 'switch' element"
      ]
    },
    {
      "name": "xtry",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "try"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "",
        "ittf",
        "try",
        "set num =/ 0",
        "catch ex",
        "log ex.message",
        "finally",
        "_ reset()",
        ""
      ]
    },
    {
      "name": "xcatch",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "catch"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "see 'try' element"
      ]
    },
    {
      "name": "xfinally",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "finally"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "see 'try' element"
      ]
    },
    {
      "name": "xthrow",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "throw"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "see 'try' element"
      ]
    },
    {
      "name": "xdelete",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "delete"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "delete myvar"
      ]
    },
    {
      "name": "sequence",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "sequence"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "typeParameterInst",
      "super": "statement",
      "isRoot": false,
      "tags": [
        ":param"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "call",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "_"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "typeParameterInst",
          "role": "typeParameterInsts",
          "tags": [
            ":param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "A function call.",
        "ittf:",
        "_ sayHello('stefi', 10)",
        "_ init",
        "{",
        "@ key 0",
        "function",
        "param value",
        "return calc(value)"
      ]
    },
    {
      "name": "memberCall",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "._"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "typeParameterInst",
          "role": "typeParameterInsts",
          "tags": [
            ":param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "set value",
        "_ init",
        "._calc",
        "js:",
        "value = init().calc()"
      ]
    },
    {
      "name": "decoratorCall",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "@_"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "typeParameterInst",
          "role": "typeParameterInsts",
          "tags": [
            ":param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "@_ alpha",
        "@ 200",
        "function",
        "return 'a';",
        "js:",
        "@alpha(200, function() { return 'a'; })"
      ]
    },
    {
      "name": "callOnValue",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "("
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "_ getFunction()",
        "(",
        "@ 'stefi'",
        "js:",
        "getFunction()('stefi')"
      ]
    },
    {
      "name": "memberAccess",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "."
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "set name = obj",
        ". name",
        "js:",
        "name = obj.name"
      ]
    },
    {
      "name": "memberAccessComputed",
      "super": "statement",
      "isRoot": false,
      "tags": [
        ".["
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "set name = obj",
        ".[ name",
        "js:",
        "name = obj[name]"
      ]
    },
    {
      "name": "jsObject",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "{"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "set",
              "name": "set",
              "value": "this.isDslCall = false",
              "statements": []
            },
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.statements",
              "statements": [
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "item.wzElement === 'namedCallParam'",
                  "statements": [
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.isDslCall = true",
                      "statements": []
                    }
                  ]
                }
              ]
            }
          ],
          "comments": [
            "a Dsl that uses this could be 'graphql'"
          ]
        }
      ],
      "comments": [
        "Declares an object structure.",
        "ittf:",
        "var user",
        "{",
        "@ name 'stefi'",
        "@ birth 1957",
        "",
        "It can be used everywhere an object can be used",
        "ittf",
        "var user",
        "_ db.getUser",
        "{",
        "@ name 'arthur'",
        ""
      ]
    },
    {
      "name": "jsArray",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "["
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "Declares an array structure.",
        "ittf:",
        "var users",
        "[",
        "{",
        "@ name 'stefi'",
        "@ birth 1957",
        "{",
        "@ name 'arthur'",
        "@ birth 1955",
        ""
      ]
    },
    {
      "name": "jsPropertyOrValue",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "@"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "xas",
          "type": "string",
          "tags": [
            "as"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "set",
              "name": "set",
              "value": "this.isDslCall = false",
              "statements": []
            },
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.statements",
              "statements": [
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "item.wzElement === 'namedCallParam'",
                  "statements": [
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.isDslCall = true",
                      "statements": []
                    }
                  ]
                }
              ]
            }
          ],
          "comments": [
            "a Dsl that uses this could be 'graphql'"
          ]
        }
      ],
      "comments": [
        "used by import/export specifiers",
        "This element is used in many contexts with a different semantic.",
        "",
        "As children of a 'jsObject' element it is an object property.",
        "ittf",
        "var user",
        "{",
        "@ name 'annie'",
        "",
        "As children of a 'call', 'memberCall', 'decoratorCall', 'callOnValue' element",
        "is a function call argument.",
        "ittf",
        "var user",
        "_ db.getUser",
        "@ name 'annie'",
        "",
        "As a children of an element derived from the 'htmlelement' element",
        "is an html element attribute.",
        "ittf",
        "m render",
        "return",
        "div",
        "button Press me",
        "@ onClick { this.handleClick() }",
        "",
        "As a children of a 'import' element",
        "ittf",
        "import",
        "@ functionX",
        "from 'module-a'",
        ""
      ]
    },
    {
      "name": "jsPropertyOrValueComputed",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "@["
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "set",
              "name": "set",
              "value": "this.isDslCall = false",
              "statements": []
            },
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.statements",
              "statements": [
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "item.wzElement === 'namedCallParam'",
                  "statements": [
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.isDslCall = true",
                      "statements": []
                    }
                  ]
                }
              ]
            }
          ],
          "comments": [
            "a Dsl that uses this could be 'graphql'"
          ]
        }
      ],
      "comments": []
    },
    {
      "name": "jsRest",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "..."
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "namedCallParam",
      "super": "statement",
      "isRoot": false,
      "tags": [
        ":"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "graphql-query",
        "{ allMarkdownRemark",
        ": sort",
        "{",
        "@ order DESC",
        "@ fields",
        "[",
        "@ frontmatter___date",
        ": limit 1000"
      ]
    },
    {
      "name": "jsonStatementTree",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "jst"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "Contains the stringified tree structure of a statement element.",
        "Normally this element is generated and is usefull when the 'js' ittf document",
        "is itself a generated artifact.",
        "",
        "The artifact generator will JSON.parse the wzName property",
        "of this element and will obtain a 'statement' element to process."
      ]
    },
    {
      "name": "xfunction",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "function"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "iife",
          "tags": [
            "iife"
          ]
        },
        {
          "name": "wzIife",
          "tags": [
            "wz-iife"
          ]
        },
        {
          "name": "arrowfunction",
          "tags": [
            "=>"
          ]
        },
        {
          "name": "asyncarrowfunction",
          "tags": [
            "async=>"
          ]
        },
        {
          "name": "generatorfunction",
          "tags": [
            "function*"
          ]
        },
        {
          "name": "asyncfunction",
          "tags": [
            "async-function"
          ]
        },
        {
          "name": "ctor",
          "tags": [
            "ctor"
          ]
        },
        {
          "name": "method",
          "tags": [
            "m"
          ]
        },
        {
          "name": "property",
          "tags": [
            "property"
          ]
        },
        {
          "name": "wzFunction",
          "tags": [
            "wz-function"
          ]
        }
      ],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "set",
              "name": "set",
              "value": "this.paramNames = []",
              "statements": []
            },
            {
              "tag": "set",
              "name": "set",
              "value": "this.constrainedParams = []",
              "statements": []
            },
            {
              "tag": "set",
              "name": "set",
              "value": "this.hasCallbackParam = false",
              "statements": []
            },
            {
              "tag": "set",
              "name": "set",
              "value": "this.hasOptionsCallbackParam = false",
              "statements": []
            },
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.params",
              "statements": [
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "item.wzElement === 'callbackParam'",
                  "statements": [
                    {
                      "tag": "_",
                      "name": "call",
                      "value": "this.paramNames.push('callback')",
                      "statements": []
                    },
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.hasCallbackParam = true",
                      "statements": []
                    }
                  ]
                },
                {
                  "tag": "elif",
                  "name": "elif",
                  "value": "item.wzElement === 'optionsCallbackParam'",
                  "statements": [
                    {
                      "tag": "_",
                      "name": "call",
                      "value": "this.paramNames.push('options')",
                      "statements": []
                    },
                    {
                      "tag": "_",
                      "name": "call",
                      "value": "this.paramNames.push('callback')",
                      "statements": []
                    },
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.hasOptionsCallbackParam = true",
                      "statements": []
                    }
                  ]
                },
                {
                  "tag": "else",
                  "name": "xelse",
                  "value": "",
                  "statements": [
                    {
                      "tag": "if",
                      "name": "xif",
                      "value": "item.textified && item.textified.length > 0",
                      "statements": [
                        {
                          "tag": "_",
                          "name": "call",
                          "value": "this.paramNames.push(item.textified)",
                          "statements": []
                        }
                      ]
                    },
                    {
                      "tag": "else",
                      "name": "xelse",
                      "value": "",
                      "statements": [
                        {
                          "tag": "_",
                          "name": "call",
                          "value": "this.paramNames.push(item.wzName)",
                          "statements": []
                        }
                      ]
                    }
                  ]
                },
                {
                  "tag": "_",
                  "name": "call",
                  "value": "this.constrainedParams.push(item)",
                  "statements": []
                }
              ]
            }
          ],
          "comments": []
        }
      ],
      "comments": [
        "",
        "ittf",
        "function sum",
        "param a",
        "param a",
        "return a + b",
        ""
      ]
    },
    {
      "name": "iife",
      "super": "xfunction",
      "isRoot": false,
      "tags": [
        "iife"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "unary_prefix",
          "type": "string",
          "tags": [
            "unary-prefix"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "wzIife",
          "tags": [
            "wz-iife"
          ]
        }
      ],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "iife",
        "unary-prefix ;",
        "param x",
        "param y",
        "return alpha = x + ': ' + y",
        "(",
        "@ key",
        "@ id",
        "js",
        ";(function(x, y) {",
        "return alpha = x + ': ' + y;",
        "})(key, id)",
        ""
      ]
    },
    {
      "name": "arrowfunction",
      "super": "xfunction",
      "isRoot": false,
      "tags": [
        "=>"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "es6 feature",
        "",
        "ittf",
        "var handler",
        "=>",
        "param event",
        ""
      ]
    },
    {
      "name": "asyncarrowfunction",
      "super": "xfunction",
      "isRoot": false,
      "tags": [
        "async=>"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "es6 feature",
        "",
        "ittf",
        "var handler",
        "async=>",
        "param event",
        ""
      ]
    },
    {
      "name": "generatorfunction",
      "super": "xfunction",
      "isRoot": false,
      "tags": [
        "function*"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "es6 feature",
        "reference https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Operators/yield",
        "ittf",
        "function* foo",
        "var index = 0",
        "while index <= 2",
        "yield index++",
        ""
      ]
    },
    {
      "name": "asyncfunction",
      "super": "xfunction",
      "isRoot": false,
      "tags": [
        "async-function"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "es6 feature",
        "reference https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function",
        "ittf",
        "async-function foo"
      ]
    },
    {
      "name": "xyield",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "yield"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "es6 feature",
        "reference https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Operators/yield",
        "ittf",
        "function* foo",
        "var index = 0",
        "while index <= 2",
        "yield index++"
      ]
    },
    {
      "name": "xawait",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "await"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "es6 feature",
        "reference https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await",
        "ittf",
        "async-function foo",
        "var index",
        "await",
        "_ mypromisefunc",
        ""
      ]
    },
    {
      "name": "xreturn",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "return"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "Can return any object or function.",
        "",
        "ittf",
        "return 0",
        "return",
        "{",
        "@ result a + b",
        "",
        "return",
        "_ Math.sum",
        "@ a",
        "@ b",
        "",
        "return",
        "function",
        "param a",
        "param b",
        "..."
      ]
    },
    {
      "name": "xclass",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "class"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "super",
          "type": "string",
          "tags": [
            "super"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "extends",
          "type": "string",
          "tags": [
            "extends"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "wzClass",
          "tags": [
            "wz-class"
          ]
        }
      ],
      "restricts": [],
      "methods": [
        {
          "name": "findCtor",
          "isStatic": false,
          "isKnownMethod": false,
          "params": [],
          "statements": [
            {
              "tag": "return",
              "name": "xreturn",
              "value": "_.find(this.statements, function(item) { return item.wzElement === 'ctor' })",
              "statements": []
            }
          ],
          "comments": []
        },
        {
          "name": "wzInitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "set",
              "name": "set",
              "value": "ctx.modelState = ctx.modelState || {}",
              "statements": []
            },
            {
              "tag": "set",
              "name": "set",
              "value": "ctx.modelState.hasClasses = true",
              "statements": []
            },
            {
              "tag": "if",
              "name": "xif",
              "value": "this.extends && this.extends.length > 0",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.super = this.extends",
                  "statements": []
                }
              ]
            },
            {
              "tag": "else",
              "name": "xelse",
              "value": "",
              "statements": [
                {
                  "tag": "var",
                  "name": "xvar",
                  "value": "tokens = this.wzName.split(':')",
                  "statements": []
                },
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "tokens.length == 2",
                  "statements": [
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.wzName = tokens[0]",
                      "statements": []
                    },
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.super = tokens[1]",
                      "statements": []
                    }
                  ]
                }
              ]
            }
          ],
          "comments": [
            "loog 'wizzi-js.model.class.modelState', ctx.modelState"
          ]
        }
      ],
      "comments": [
        "A javascript class",
        "",
        "ittf",
        "class Horse",
        "super Animal",
        "ctor",
        "string name",
        "required",
        "{ options",
        "boolean canSpeakLikeAHuman",
        "required",
        "set this.name = name",
        "set this.options = options",
        "m sayHello",
        "if this.options.canSpeakLikeAHuman",
        "success 'Hello i am ' + this.name",
        "else",
        "success 'Hii i am ' + this.name",
        ""
      ]
    },
    {
      "name": "ctor",
      "super": "xfunction",
      "isRoot": false,
      "tags": [
        "ctor"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "base",
          "role": "bases",
          "tags": [
            "base"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": null,
          "comments": []
        },
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "getBaseArgs",
          "isStatic": false,
          "isKnownMethod": false,
          "params": [],
          "statements": [
            {
              "tag": "var",
              "name": "xvar",
              "value": "ret = []",
              "statements": []
            },
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.bases",
              "statements": [
                {
                  "tag": "_",
                  "name": "call",
                  "value": "ret.push(item.wzName)",
                  "statements": []
                }
              ]
            },
            {
              "tag": "return",
              "name": "xreturn",
              "value": "ret",
              "statements": []
            }
          ],
          "comments": []
        }
      ],
      "comments": [
        "",
        "ittf",
        "class Horse",
        "super Animal",
        "ctor",
        "string name",
        "base name",
        ""
      ]
    },
    {
      "name": "base",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "base"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "",
        "ittf",
        "see 'ctor' elementg example"
      ]
    },
    {
      "name": "method",
      "super": "xfunction",
      "isRoot": false,
      "tags": [
        "m"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "static",
          "type": "boolean",
          "tags": [
            "static"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "async",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "class Foo",
        "m sayHello",
        "string name",
        "success 'Hello ' + name"
      ]
    },
    {
      "name": "property",
      "super": "xfunction",
      "isRoot": false,
      "tags": [
        "property"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "static",
          "type": "boolean",
          "tags": [
            "static"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf",
        "class Foo",
        "property options"
      ]
    },
    {
      "name": "get",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "get"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "es6 - Defines a getter on a new object in the object initializer",
        "reference https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Functions/get",
        "",
        "ittf",
        "var obj",
        "{",
        "@ log ['test']",
        "get latest",
        "if this.log.length == 0",
        "return undefined",
        "return this.log[this.log.length - 1]",
        ""
      ]
    },
    {
      "name": "xnew",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "new"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "var h",
        "new Hello",
        "var j",
        "new Hello",
        "function",
        "param p",
        "+ ...",
        "js:",
        "var h = new Hello();",
        "var j = new Hello(function(p) { ... });"
      ]
    },
    {
      "name": "type",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "type"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "used by the 'new' element",
        "see wizzi-codegen.js.statements.var",
        "TODO example",
        "FIXME Cannot find examples and the reason for this element",
        ""
      ]
    },
    {
      "name": "template",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "template",
        "`lit"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.statements",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "item.__templateChild = true",
                  "statements": []
                }
              ]
            }
          ],
          "comments": []
        }
      ],
      "comments": []
    },
    {
      "name": "taggedTemplate",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "`tag"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.statements",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "item.__templateChild = true",
                  "statements": []
                }
              ]
            }
          ],
          "comments": []
        }
      ],
      "comments": []
    },
    {
      "name": "tagFunctionCall",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "_`"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzinitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "foreach",
              "name": "foreach",
              "value": "item in this.statements",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "item.__templateChild = true",
                  "statements": []
                }
              ]
            }
          ],
          "comments": []
        }
      ],
      "comments": [
        "ittf:",
        "_` fname",
        "+ bla bla",
        "+ bla bla",
        "js:",
        "fname`",
        "bla bla",
        "bla bla",
        "`;"
      ]
    },
    {
      "name": "macroExpr",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "macro"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "reactComponent",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "react"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "super",
          "type": "string",
          "tags": [
            "super"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "extends",
          "type": "string",
          "tags": [
            "extends"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzInitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [
            {
              "tag": "set",
              "name": "set",
              "value": "ctx.modelState = ctx.modelState || {}",
              "statements": []
            },
            {
              "tag": "set",
              "name": "set",
              "value": "ctx.modelState.hasClasses = true",
              "statements": []
            },
            {
              "tag": "if",
              "name": "xif",
              "value": "this.extends && this.extends.length > 0",
              "statements": [
                {
                  "tag": "set",
                  "name": "set",
                  "value": "this.super = this.extends",
                  "statements": []
                }
              ]
            },
            {
              "tag": "else",
              "name": "xelse",
              "value": "",
              "statements": [
                {
                  "tag": "var",
                  "name": "xvar",
                  "value": "tokens = this.wzName.split(':')",
                  "statements": []
                },
                {
                  "tag": "if",
                  "name": "xif",
                  "value": "tokens.length == 2",
                  "statements": [
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.wzName = tokens[0]",
                      "statements": []
                    },
                    {
                      "tag": "set",
                      "name": "set",
                      "value": "this.super = tokens[1]",
                      "statements": []
                    }
                  ]
                }
              ]
            }
          ],
          "comments": [
            "loog 'wizzi-js.model.class.modelState', ctx.modelState"
          ]
        }
      ],
      "comments": []
    },
    {
      "name": "reactFunction",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "react-f"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "style",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "style"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "prop",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "prop"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isRequired",
          "type": "boolean",
          "tags": [
            "required"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "defaultValue",
          "type": "string",
          "tags": [
            "default"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": null,
          "tags": [
            "param"
          ],
          "cardinality": "one-to-one",
          "flags": "is-one-to-one ",
          "inheritedFrom": null,
          "comments": [
            "react propType"
          ]
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "reactMember",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "reactMember"
      ],
      "flags": "is-abstract ",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "state",
          "tags": [
            "state"
          ]
        },
        {
          "name": "setState",
          "tags": [
            "set-state"
          ]
        },
        {
          "name": "render",
          "tags": [
            "render"
          ]
        },
        {
          "name": "willMount",
          "tags": [
            "will-mount"
          ]
        },
        {
          "name": "didMount",
          "tags": [
            "did-mount"
          ]
        },
        {
          "name": "willUnmount",
          "tags": [
            "will-unmount"
          ]
        },
        {
          "name": "shouldUpdate",
          "tags": [
            "should-update"
          ]
        },
        {
          "name": "didUpdate",
          "tags": [
            "did-update"
          ]
        },
        {
          "name": "willUpdate",
          "tags": [
            "will-update"
          ]
        },
        {
          "name": "willReceiveProps",
          "tags": [
            "will-receive-props"
          ]
        }
      ],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "state",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "state"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "setState",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "set-state"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "render",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "render"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "willMount",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "will-mount"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "didMount",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "did-mount"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "willUnmount",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "will-unmount"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "shouldUpdate",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "should-update"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "didUpdate",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "did-update"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "willUpdate",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "will-update"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "willReceiveProps",
      "super": "reactMember",
      "isRoot": false,
      "tags": [
        "will-receive-props"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "htmlevent",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "event"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        },
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        }
      ],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCopy",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCopy"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCut",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCut"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onPaste",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onPaste"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "on",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "on"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCompositionEnd",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCompositionEnd"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCompositionStart",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCompositionStart"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCompositionUpdate",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCompositionUpdate"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onKeyDown",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onKeyDown"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onKeyPress",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onKeyPress"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onKeyUp",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onKeyUp"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onFocus",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onFocus"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onBlur",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onBlur"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onChange",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onChange"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onInput",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onInput"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSubmit",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSubmit"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onClick",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onClick"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onContextMenu",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onContextMenu"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDoubleClick",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDoubleClick"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDrag",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDrag"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragEnd",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragEnd"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragEnter",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragEnter"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragExit",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragExit"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragLeave",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragLeave"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragOver",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragOver"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragStart",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragStart"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDrop",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDrop"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseDown",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseDown"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseEnter",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseEnter"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseLeave",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseLeave"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseMove",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseMove"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseOut",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseOut"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseOver",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseOver"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseUp",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseUp"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSelect",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSelect"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTouchCancel",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTouchCancel"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTouchEnd",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTouchEnd"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTouchMove",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTouchMove"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTouchStart",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTouchStart"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onScroll",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onScroll"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onWheel",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onWheel"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onAbort",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onAbort"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCanPlay",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCanPlay"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCanPlayThrough",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCanPlayThrough"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDurationChange",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDurationChange"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onEmptied",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onEmptied"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onEncrypted",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onEncrypted"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onEnded",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onEnded"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onError",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onError"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onLoadedData",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onLoadedData"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onLoadedMetadata",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onLoadedMetadata"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onLoadStart",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onLoadStart"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onPause",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onPause"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onPlay",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onPlay"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onPlaying",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onPlaying"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onProgress",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onProgress"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onRateChange",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onRateChange"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSeeked",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSeeked"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSeeking",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSeeking"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onStalled",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onStalled"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSuspend",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSuspend"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTimeUpdate",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTimeUpdate"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onVolumeChange",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onVolumeChange"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onWaiting",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onWaiting"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onLoad",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onLoad"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTransitionEnd",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTransitionEnd"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "htmlelement",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "<"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "doctype",
          "tags": [
            "doctype"
          ]
        },
        {
          "name": "p",
          "tags": [
            "p"
          ]
        },
        {
          "name": "htmlevent",
          "tags": [
            "htmlevent"
          ]
        },
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        },
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        },
        {
          "name": "js",
          "tags": [
            "js"
          ]
        },
        {
          "name": "css",
          "tags": [
            "css"
          ]
        },
        {
          "name": "styleJsx",
          "tags": [
            "style-jsx"
          ]
        },
        {
          "name": "styled",
          "tags": [
            "styled"
          ]
        },
        {
          "name": "styledCss",
          "tags": [
            "styled-css"
          ]
        },
        {
          "name": "htmlParam",
          "tags": [
            "@param"
          ]
        },
        {
          "name": "htmlFilter",
          "tags": [
            "@filter"
          ]
        }
      ],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "doctype",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "doctype"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "p",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "p"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "static",
          "type": "boolean",
          "tags": [
            "static"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "htmlevent",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "htmlevent"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "isEvent",
          "type": "boolean",
          "tags": [
            "isEvent"
          ],
          "default": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        },
        {
          "name": "onCopy",
          "tags": [
            "onCopy"
          ]
        },
        {
          "name": "onCut",
          "tags": [
            "onCut"
          ]
        },
        {
          "name": "onPaste",
          "tags": [
            "onPaste"
          ]
        },
        {
          "name": "on",
          "tags": [
            "on"
          ]
        },
        {
          "name": "onCompositionEnd",
          "tags": [
            "onCompositionEnd"
          ]
        },
        {
          "name": "onCompositionStart",
          "tags": [
            "onCompositionStart"
          ]
        },
        {
          "name": "onCompositionUpdate",
          "tags": [
            "onCompositionUpdate"
          ]
        },
        {
          "name": "onKeyDown",
          "tags": [
            "onKeyDown"
          ]
        },
        {
          "name": "onKeyPress",
          "tags": [
            "onKeyPress"
          ]
        },
        {
          "name": "onKeyUp",
          "tags": [
            "onKeyUp"
          ]
        },
        {
          "name": "onFocus",
          "tags": [
            "onFocus"
          ]
        },
        {
          "name": "onBlur",
          "tags": [
            "onBlur"
          ]
        },
        {
          "name": "onChange",
          "tags": [
            "onChange"
          ]
        },
        {
          "name": "onInput",
          "tags": [
            "onInput"
          ]
        },
        {
          "name": "onSubmit",
          "tags": [
            "onSubmit"
          ]
        },
        {
          "name": "onClick",
          "tags": [
            "onClick"
          ]
        },
        {
          "name": "onContextMenu",
          "tags": [
            "onContextMenu"
          ]
        },
        {
          "name": "onDoubleClick",
          "tags": [
            "onDoubleClick"
          ]
        },
        {
          "name": "onDrag",
          "tags": [
            "onDrag"
          ]
        },
        {
          "name": "onDragEnd",
          "tags": [
            "onDragEnd"
          ]
        },
        {
          "name": "onDragEnter",
          "tags": [
            "onDragEnter"
          ]
        },
        {
          "name": "onDragExit",
          "tags": [
            "onDragExit"
          ]
        },
        {
          "name": "onDragLeave",
          "tags": [
            "onDragLeave"
          ]
        },
        {
          "name": "onDragOver",
          "tags": [
            "onDragOver"
          ]
        },
        {
          "name": "onDragStart",
          "tags": [
            "onDragStart"
          ]
        },
        {
          "name": "onDrop",
          "tags": [
            "onDrop"
          ]
        },
        {
          "name": "onMouseDown",
          "tags": [
            "onMouseDown"
          ]
        },
        {
          "name": "onMouseEnter",
          "tags": [
            "onMouseEnter"
          ]
        },
        {
          "name": "onMouseLeave",
          "tags": [
            "onMouseLeave"
          ]
        },
        {
          "name": "onMouseMove",
          "tags": [
            "onMouseMove"
          ]
        },
        {
          "name": "onMouseOut",
          "tags": [
            "onMouseOut"
          ]
        },
        {
          "name": "onMouseOver",
          "tags": [
            "onMouseOver"
          ]
        },
        {
          "name": "onMouseUp",
          "tags": [
            "onMouseUp"
          ]
        },
        {
          "name": "onSelect",
          "tags": [
            "onSelect"
          ]
        },
        {
          "name": "onTouchCancel",
          "tags": [
            "onTouchCancel"
          ]
        },
        {
          "name": "onTouchEnd",
          "tags": [
            "onTouchEnd"
          ]
        },
        {
          "name": "onTouchMove",
          "tags": [
            "onTouchMove"
          ]
        },
        {
          "name": "onTouchStart",
          "tags": [
            "onTouchStart"
          ]
        },
        {
          "name": "onScroll",
          "tags": [
            "onScroll"
          ]
        },
        {
          "name": "onWheel",
          "tags": [
            "onWheel"
          ]
        },
        {
          "name": "onAbort",
          "tags": [
            "onAbort"
          ]
        },
        {
          "name": "onCanPlay",
          "tags": [
            "onCanPlay"
          ]
        },
        {
          "name": "onCanPlayThrough",
          "tags": [
            "onCanPlayThrough"
          ]
        },
        {
          "name": "onDurationChange",
          "tags": [
            "onDurationChange"
          ]
        },
        {
          "name": "onEmptied",
          "tags": [
            "onEmptied"
          ]
        },
        {
          "name": "onEncrypted",
          "tags": [
            "onEncrypted"
          ]
        },
        {
          "name": "onEnded",
          "tags": [
            "onEnded"
          ]
        },
        {
          "name": "onError",
          "tags": [
            "onError"
          ]
        },
        {
          "name": "onLoadedData",
          "tags": [
            "onLoadedData"
          ]
        },
        {
          "name": "onLoadedMetadata",
          "tags": [
            "onLoadedMetadata"
          ]
        },
        {
          "name": "onLoadStart",
          "tags": [
            "onLoadStart"
          ]
        },
        {
          "name": "onPause",
          "tags": [
            "onPause"
          ]
        },
        {
          "name": "onPlay",
          "tags": [
            "onPlay"
          ]
        },
        {
          "name": "onPlaying",
          "tags": [
            "onPlaying"
          ]
        },
        {
          "name": "onProgress",
          "tags": [
            "onProgress"
          ]
        },
        {
          "name": "onRateChange",
          "tags": [
            "onRateChange"
          ]
        },
        {
          "name": "onSeeked",
          "tags": [
            "onSeeked"
          ]
        },
        {
          "name": "onSeeking",
          "tags": [
            "onSeeking"
          ]
        },
        {
          "name": "onStalled",
          "tags": [
            "onStalled"
          ]
        },
        {
          "name": "onSuspend",
          "tags": [
            "onSuspend"
          ]
        },
        {
          "name": "onTimeUpdate",
          "tags": [
            "onTimeUpdate"
          ]
        },
        {
          "name": "onVolumeChange",
          "tags": [
            "onVolumeChange"
          ]
        },
        {
          "name": "onWaiting",
          "tags": [
            "onWaiting"
          ]
        },
        {
          "name": "onLoad",
          "tags": [
            "onLoad"
          ]
        },
        {
          "name": "onTransitionEnd",
          "tags": [
            "onTransitionEnd"
          ]
        }
      ],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCopy",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCopy"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCut",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCut"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onPaste",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onPaste"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "on",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "on"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCompositionEnd",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCompositionEnd"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCompositionStart",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCompositionStart"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCompositionUpdate",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCompositionUpdate"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onKeyDown",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onKeyDown"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onKeyPress",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onKeyPress"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onKeyUp",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onKeyUp"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onFocus",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onFocus"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onBlur",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onBlur"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onChange",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onChange"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onInput",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onInput"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSubmit",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSubmit"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onClick",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onClick"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onContextMenu",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onContextMenu"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDoubleClick",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDoubleClick"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDrag",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDrag"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragEnd",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragEnd"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragEnter",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragEnter"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragExit",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragExit"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragLeave",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragLeave"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragOver",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragOver"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDragStart",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDragStart"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDrop",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDrop"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseDown",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseDown"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseEnter",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseEnter"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseLeave",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseLeave"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseMove",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseMove"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseOut",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseOut"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseOver",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseOver"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onMouseUp",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onMouseUp"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSelect",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSelect"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTouchCancel",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTouchCancel"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTouchEnd",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTouchEnd"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTouchMove",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTouchMove"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTouchStart",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTouchStart"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onScroll",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onScroll"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onWheel",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onWheel"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onAbort",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onAbort"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCanPlay",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCanPlay"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onCanPlayThrough",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onCanPlayThrough"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onDurationChange",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onDurationChange"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onEmptied",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onEmptied"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onEncrypted",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onEncrypted"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onEnded",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onEnded"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onError",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onError"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onLoadedData",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onLoadedData"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onLoadedMetadata",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onLoadedMetadata"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onLoadStart",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onLoadStart"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onPause",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onPause"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onPlay",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onPlay"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onPlaying",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onPlaying"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onProgress",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onProgress"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onRateChange",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onRateChange"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSeeked",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSeeked"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSeeking",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSeeking"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onStalled",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onStalled"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onSuspend",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onSuspend"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTimeUpdate",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTimeUpdate"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onVolumeChange",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onVolumeChange"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onWaiting",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onWaiting"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onLoad",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onLoad"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "onTransitionEnd",
      "super": "htmlevent",
      "isRoot": false,
      "tags": [
        "onTransitionEnd"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "js",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "js"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "css",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "css"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "styleJsx",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "style-jsx"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "global",
          "type": "boolean",
          "tags": [
            "global"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "styled",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "styled"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "global",
          "type": "boolean",
          "tags": [
            "global"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "styledCss",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "styled-css"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "global",
          "type": "boolean",
          "tags": [
            "global"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "keyframes",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "keyframes"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "global",
          "type": "boolean",
          "tags": [
            "global"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "htmlParam",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "@param"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "htmlFilter",
      "super": "htmlelement",
      "isRoot": false,
      "tags": [
        "@filter"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "autoCapitalize",
          "type": "string",
          "tags": [
            "autoCapitalize"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoCorrect",
          "type": "string",
          "tags": [
            "autoCorrect"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "property",
          "type": "string",
          "tags": [
            "property"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemProp",
          "type": "string",
          "tags": [
            "itemProp"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemScope",
          "type": "string",
          "tags": [
            "itemScope"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemType",
          "type": "string",
          "tags": [
            "itemType"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemRef",
          "type": "string",
          "tags": [
            "itemRef"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "itemID",
          "type": "string",
          "tags": [
            "itemID"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "unselectable",
          "type": "string",
          "tags": [
            "unselectable"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "results",
          "type": "string",
          "tags": [
            "results"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "autoSave",
          "type": "string",
          "tags": [
            "autoSave"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "class",
          "type": "string",
          "tags": [
            "class"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "aria__",
          "type": "string",
          "tags": [
            "aria-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        },
        {
          "name": "data__",
          "type": "string",
          "tags": [
            "data-*"
          ],
          "flags": "",
          "inheritedFrom": "htmlelement",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "ready",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "ready"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "kind",
          "type": "string",
          "tags": [
            "kind"
          ],
          "default": "jquery",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [
            {
              "facets": [
                {
                  "type": "enumFacet",
                  "value": "jquery",
                  "comments": []
                },
                {
                  "type": "enumFacet",
                  "value": "window",
                  "comments": []
                }
              ],
              "comments": []
            }
          ],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "tohtml",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "tohtml"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "kind",
          "type": "string",
          "tags": [
            "kind"
          ],
          "default": "wizzi",
          "flags": "",
          "inheritedFrom": null,
          "restricts": [
            {
              "facets": [
                {
                  "type": "enumFacet",
                  "value": "wizzi",
                  "comments": []
                },
                {
                  "type": "enumFacet",
                  "value": "ng",
                  "comments": [
                    "create a function",
                    "that returns am html string preserving {{ }}, for interpolation use [[ ]]"
                  ]
                },
                {
                  "type": "enumFacet",
                  "value": "dom",
                  "comments": [
                    "that returns am html dom tree using jQuery"
                  ]
                },
                {
                  "type": "enumFacet",
                  "value": "hb",
                  "comments": [
                    "that returns a compiled handlebar template"
                  ]
                }
              ],
              "comments": []
            }
          ],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "html_f",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "html_f"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "create a function",
        "that returns an html string"
      ]
    },
    {
      "name": "html_ng",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "html_ng"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "create a function",
        "that returns an html string preserving {{ }}, for interpolation use [[ ]]"
      ]
    },
    {
      "name": "html_dom",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "html_dom"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "create a function",
        "that returns an html dom tree using jQuery"
      ]
    },
    {
      "name": "html_hb",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "html_hb"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "create a function",
        "that returns a compiled handlebar template"
      ]
    },
    {
      "name": "wzIife",
      "super": "iife",
      "isRoot": false,
      "tags": [
        "wz-iife"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "unary_prefix",
          "type": "string",
          "tags": [
            "unary-prefix"
          ],
          "flags": "",
          "inheritedFrom": "iife",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "wzRequire",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "wz-require"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "from",
          "type": "string",
          "tags": [
            "from"
          ],
          "flags": "",
          "inheritedFrom": null,
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "wzVar",
      "super": "xvar",
      "isRoot": false,
      "tags": [
        "wz-var"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "wzConst",
      "super": "xconst",
      "isRoot": false,
      "tags": [
        "wz-const"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "wzFunction",
      "super": "xfunction",
      "isRoot": false,
      "tags": [
        "wz-function"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "xasync",
          "type": "boolean",
          "tags": [
            "async"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        },
        {
          "name": "xgenerator",
          "type": "boolean",
          "tags": [
            "generator"
          ],
          "default": "false",
          "defaultWhenDeclared": "true",
          "flags": "",
          "inheritedFrom": "xfunction",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "param",
          "role": "params",
          "tags": [
            "param"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "xfunction",
          "comments": []
        },
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "wzClass",
      "super": "xclass",
      "isRoot": false,
      "tags": [
        "wz-class"
      ],
      "flags": "",
      "attributes": [
        {
          "name": "super",
          "type": "string",
          "tags": [
            "super"
          ],
          "flags": "",
          "inheritedFrom": "xclass",
          "restricts": [],
          "comments": []
        },
        {
          "name": "extends",
          "type": "string",
          "tags": [
            "extends"
          ],
          "flags": "",
          "inheritedFrom": "xclass",
          "restricts": [],
          "comments": []
        }
      ],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "graphqlQuery",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "graphql-query"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [
        {
          "name": "wzInitialize",
          "isStatic": false,
          "isKnownMethod": true,
          "params": [],
          "statements": [],
          "comments": [
            "if this.wzParent.wzElement == 'xcall'",
            "set this.isGraphqlParameter = true"
          ]
        }
      ],
      "comments": []
    },
    {
      "name": "graphqlMutation",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "graphql-mutation"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "handlebar",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "{{"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": []
    },
    {
      "name": "log",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "log"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "info 'xxx', yyy, ...",
        "js:",
        "console.log( 'xxx', yyy, ..., __filename );",
        ""
      ]
    },
    {
      "name": "info",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "info"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "info 'xxx', yyy, ...",
        "js:",
        "console.log( 'xxx', yyy, ... );",
        ""
      ]
    },
    {
      "name": "inspect",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "log?"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "TODO ensure require('util')",
        "ittf:",
        "log? xxx",
        "js:",
        "console.log('xxx', util.inspect(xxx, { depth: null } );",
        "",
        "ittf:",
        "log? label xxx",
        "js:",
        "console.log('label', util.inspect(xxx, { depth: null } );",
        ""
      ]
    },
    {
      "name": "success",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "success"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "warn 'xxx', yyy, ...",
        "js:",
        "console.log( ...",
        ""
      ]
    },
    {
      "name": "warn",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "warn"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "warn 'xxx', yyy, ...",
        "js:",
        "console.warn( 'xxx', yyy, ... );",
        ""
      ]
    },
    {
      "name": "error",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "error"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "ittf:",
        "error 'xxx', yyy, ...",
        "js:",
        "console.error( 'xxx', yyy, ... );",
        ""
      ]
    },
    {
      "name": "chalk",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "chalk"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "TODO ensure require('chalk')",
        "ittf:",
        "chalk green 'xxx'",
        "chalk green 'obj', red obj.name",
        "js:",
        "console.log(chalk.green('xxx');",
        "console.log(chalk.green('obj'), chalk.red(obj.name));",
        ""
      ]
    },
    {
      "name": "describe",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "describe"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "mocha framework support",
        "",
        "ittf",
        "describe my synchronous component",
        "before",
        "before-each",
        "after",
        "after-each",
        "it should do a great work quickly",
        "",
        "describe my asynchronous component",
        "before-async",
        "_ done",
        "after-async",
        "_ done",
        "it-async should do a great work in a reasonable time",
        "_ done",
        ""
      ]
    },
    {
      "name": "it",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "it"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "mocha framework support",
        "ittf",
        "see 'describe' element"
      ]
    },
    {
      "name": "itAsync",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "it-async"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "mocha framework support",
        "ittf",
        "see 'describe' element"
      ]
    },
    {
      "name": "before",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "before"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "mocha framework support",
        "ittf",
        "see 'describe' element"
      ]
    },
    {
      "name": "beforeAsync",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "before-async"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "mocha framework support",
        "ittf",
        "see 'describe' element"
      ]
    },
    {
      "name": "beforeEach",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "before-each"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "mocha framework support",
        "ittf",
        "see 'describe' element"
      ]
    },
    {
      "name": "after",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "after"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "mocha framework support",
        "ittf",
        "see 'describe' element"
      ]
    },
    {
      "name": "afterAsync",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "after-async"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "mocha framework support",
        "ittf",
        "see 'describe' element"
      ]
    },
    {
      "name": "afterEach",
      "super": "statement",
      "isRoot": false,
      "tags": [
        "after-each"
      ],
      "flags": "",
      "attributes": [],
      "relations": [
        {
          "name": "statement",
          "role": "statements",
          "tags": [
            "+"
          ],
          "cardinality": "one-to-many",
          "flags": "",
          "inheritedFrom": "statement",
          "comments": []
        }
      ],
      "derived": [],
      "restricts": [],
      "methods": [],
      "comments": [
        "mocha framework support",
        "ittf",
        "see 'describe' element"
      ]
    }
  ]
}