# Generated by tools/gen_tags.nim from doc/tags.md. DO NOT EDIT!

import tags

type
  NjvlKind* = enum
    NoVTag
    StoreV = (ord(StoreTagId), "store")  ## `asgn` with reversed operands that reflects evaluation order
    ContinueV = (ord(ContinueTagId), "continue")  ## `continue` statement
    IteV = (ord(IteTagId), "ite")  ## if-then-else followed by `join` information followed by an optional label
    ItecV = (ord(ItecTagId), "itec")  ## if-then-else (that was a `case`)
    LoopV = (ord(LoopTagId), "loop")  ## `loop` components are (before-cond, cond, loop-body, after)
    VV = (ord(VTagId), "v")  ## `versioned` locations
    EtupatV = (ord(EtupatTagId), "etupat")  ## tupat expression for error handling
    UnknownV = (ord(UnknownTagId), "unknown")  ## location's contents is unknown at this point
    JtrueV = (ord(JtrueTagId), "jtrue")  ## set variables v1, v2, ... to `(true)`; hint this should become a jump
    MflagV = (ord(MflagTagId), "mflag")  ## declare a new **materialized** control flow flag `D` of type `bool` initialized to `false`
    VflagV = (ord(VflagTagId), "vflag")  ## declare a new **virtual** control flow flag `D` of type `bool` initialized to `false`
    KillV = (ord(KillTagId), "kill")  ## some.var is about to disappear (scope exit)
    AssumeV = (ord(AssumeTagId), "assume")  ## `assume` pragma/annotation
    AssertV = (ord(AssertTagId), "assert")  ## `assert` pragma/annotation

proc rawTagIsNjvlKind*(raw: TagEnum): bool {.inline.} =
  raw in {StoreTagId, ContinueTagId, IteTagId, ItecTagId, LoopTagId, VTagId, EtupatTagId, UnknownTagId, JtrueTagId, MflagTagId, VflagTagId, KillTagId, AssumeTagId, AssertTagId}

