1.0.7 • Published 3 years ago

nv-macro-quote v1.0.7

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

nv-macro-quote

  • nv-macro-quote
  • cli tool, unquote mixed-quoted string

install

  • npm install nv-macro-quote -g

usage

    Usage: nv_quote [options]
    Options:
        -i, --input                 input string ,default stdin
        -o, --output                output string,default stdout
        -n, --naked_str             output in naked-str, default true
        -s, --str_with_quote        output in str-with-quoteformat, default false
        -a, --ary                   output in array-format, default false
        -t, --tok                   output in tok-format, default false
        -q, --qpairs                SELF DEINED QUOTE-PAIRS,default using -D
        -e, --esc                   ESCAPE-CHAR,default is "\"
        -h, --help                  usage

dflt supported quotes

    nv-macro-quote# nv_quote  -Q
    [ "'", "'" ]
    [ "'''", "'''" ]
    [ '"', '"' ]
    [ '"""', '"""' ]
    [ '`', '`' ]
    [ '%%', '%%' ]
    [ '###', '###' ]
    [ '//', '\n' ]
    [ '//', '�' ]                            //    ['//',String.fromCodePoint(8232)],
    [ '//', '�' ]                            //    ['//',String.fromCodePoint(8233)],
    [ '/*', '*/' ]
    [ '<', '>' ]
    [ '<!--', '-->' ]
    [ '{-', '-}' ]
    [ '(*', '*)' ]
    [ '<%--', '--%>' ]
    [ '%(', '%)' ]
    [ '#|', '|#' ]
    [ '#=', '=#' ]
    [ '#if', '#endif' ]
    [ '--[[', '--]]' ]
    
                                             // below are special for chinese-text handle
    [ '“', '”' ]                             //  '"'
    [ '‘', '’' ]                             //  "'"
    [ '·', '·' ]                             //  '`'
    nv-macro-quote#

example

    //string-for-test:

    `
    a"bcd" %%ef%% """gh"""i
    /*
    jk
    lm
    */  #if nopq #endif  <!--rrrsssttt-->
    ##
    `

output str-without-quote

    nv-macro-quote# nv_quote -n
    a"bcd" %%ef%% """gh"""i
    /*
    jk
    lm
    */  #if nopq #endif  <!--rrrsssttt-->
    ##

    ////===================>press ctrl+D 

    {
        "toks": [
            "a",
            "bcd",
            " ",
            "ef",
            " ",
            "gh",
            "i",
            "\n",
            "\njk\nlm\n",
            "  ",
            " nopq ",
            "  ",
            "rrrsssttt",
            "\n"
        ],
        "lefted": [
            [],
            "##"
        ]
    }

output str-with-quote

    nv-macro-quote# node cli.js -s
    a"bcd" %%ef%% """gh"""i
    /*
    jk
    lm
    */  #if nopq #endif  <!--rrrsssttt-->
    ##

    ////===================>press ctrl+D

    {
        "toks": [
            "a",
            "\"bcd\"",
            " ",
            "%%ef%%",
            " ",
            "\"\"\"gh\"\"\"",
            "i",
            "\n",
            "/*\njk\nlm\n*/",
            "  ",
            "#if nopq #endif",
            "  ",
            "<!--rrrsssttt-->",
            "\n"
        ],
        "lefted": [
            [],
            "##"
        ]
    }

    nv-macro-quote#

output array

  • if array.length === 3 , its a quoted string left-q,str,right-q
  • if array.length === 1 , it a raw string str
    nv-macro-quote# nv_quote -a

    a"bcd" %%ef%% """gh"""i
    /*
    jk
    lm
    */  #if nopq #endif  <!--rrrsssttt-->
    ##

    ////===================>press ctrl+D



    {
        "toks": [
            [
                "a"
            ],
            [
                "\"",
                "bcd",
                "\""
            ],
            [
                " "
            ],
            [
                "%%",
                "ef",
                "%%"
            ],
            [
                " "
            ],
            [
                "\"\"\"",
                "gh",
                "\"\"\""
            ],
            [
                "i"
            ],
            [
                "\n"
            ],
            [
                "/*",
                "\njk\nlm\n",
                "*/"
            ],
            [
                "  "
            ],
            [
                "#if",
                " nopq ",
                "#endif"
            ],
            [
                "  "
            ],
            [
                "<!--",
                "rrrsssttt",
                "-->"
            ],
            [
                "\n"
            ]
        ],
        "lefted": [
            [],
            "##"
        ]
    }



         

output toks

  • if type === 10, it's a raw-string-tok
  • if type === 12, it's a quote-but-treated-as raw-string-tok here ,(compare .q AND .lq/.rq)
  • if type === 100, it's a quoted-string-tok (.lq,.rq,.q, .str; compare .q AND .lq/.rq will know if it's open OR close)
    nv-macro-quote# nvquote -t
    a"bcd" %%ef%% """gh"""i
    /*
    jk
    lm
    */  #if nopq #endif  <!--rrrsssttt-->
    ##


    ////===================>press ctrl+D

    {
        "toks": [
            {
                "type": 10,
                "raw": "a"
            },
            {
                "type": 100,
                "lq": "\"",
                "rq": "\"",
                "q": "\"",
                "str": "bcd"
            },
            {
                "type": 10,
                "raw": " "
            },
            {
                "type": 100,
                "lq": "%%",
                "rq": "%%",
                "q": "%%",
                "str": "ef"
            },
            {
                "type": 10,
                "raw": " "
            },
            {
                "type": 100,
                "lq": "\"\"\"",
                "rq": "\"\"\"",
                "q": "\"\"\"",
                "str": "gh"
            },
            {
                "type": 10,
                "raw": "i"
            },
            {
                "q": "\n",
                "lq": "//",
                "rq": "\n",
                "type": 12
            },
            {
                "type": 100,
                "lq": "/*",
                "rq": "*/",
                "q": "/*",
                "str": "\njk\nlm\n"
            },
            {
                "type": 10,
                "raw": "  "
            },
            {
                "type": 100,
                "lq": "#if",
                "rq": "#endif",
                "q": "#if",
                "str": " nopq "
            },
            {
                "type": 10,
                "raw": "  "
            },
            {
                "type": 100,
                "lq": "<!--",
                "rq": "-->",
                "q": "<!--",
                "str": "rrrsssttt"
            },
            {
                "q": "\n",
                "lq": "//",
                "rq": "\n",
                "type": 12
            }
        ],
        "lefted": [
            [],
            "##"
        ]
    }

LICENSE

  • ISC
1.0.7

3 years ago

1.0.6

3 years ago

1.0.2

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.1

3 years ago