
___x_cmd_ja___jawk(){
    [ "$#" -gt 0 ] || {
        ___x_cmd_mawk___command "$@"
        return
    }

    local awk_implementation=cawk

    awk:argparse:init
    while [ "$#" -gt 0 ]; do
        case "$1" in
            -h|--help)
                x help -m ja jawk; return 0 ;;
            --mawk)
                # enforce using mawk
                awk_implementation=mawk ;;
        esac
        awk:argparse:handle-v-using-arg
        awk:argparse:handle
    done

    if [ -n "$AWK_CODE" ]; then
        x mkdirp "$___X_CMD_ROOT_TMP_AWK"
        local AWK_TMPFILE; AWK_TMPFILE="${___X_CMD_ROOT_TMP_AWK}/${awk_implementation}.current___X_CMD_MAWK_VAR_CODE.$(x pidid vlid)"
        printf "%s\n" "$AWK_CODE" >"$AWK_TMPFILE"
        AWK_CODE=""
        AWK_ARG="$AWK_ARG -f \"\$AWK_TMPFILE\""
    fi

    ___x_cmd_awk_runinside                  \
        "$AWK_ENV_SH"                       \
        "$awk_implementation"               \
        ___x_cmd_ja___jawk_cmd              \
        "$AWK_MOD"  "$AWK_ARG"              \
        "$AWK_CODE" "$AWK_ENV_CODE"
}


___x_cmd_ja___jawk_cmd(){
    ___x_cmd_ja_tokenize | command "$awk_implementation"    \
        -f "$___X_CMD_ROOT_MOD/ja/lib/awk/op.awk"           \
        -f "$___X_CMD_ROOT_MOD/ja/lib/awk/kpo.awk"          \
        "$@"
}

