1.0.23 • Published 2 years ago

nv-lex-quoted v1.0.23

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

nv-lex-quoted

  • nv-lex-quoted
  • split quoted before unescape/handle the quoted-content

install

  • npm install nv-lex-quoted

usage

const {parse,split} = require("nv-lex-quoted");

example

split

var DFLT_QUOTES = [
    "'",'"','`',
    '"""',"'''"
]

var chunk = `""a'bc'cd"ef"g'''hij'''k"""lmnopq`
var arr = split(chunk,DFLT_QUOTES)

> arr
[
  [ '""', 'a', "'bc'", 'cd', '"ef"', 'g', "'''hij'''", 'k' ],
  [ Qtok { type: 11, raw: '"""' } ],                               //l1 lefted
  'lmnopq'                                                         //l0 lefted
]
>

parse

const lexq = require("nv-lex-q")

var chunk = `""a'bc'cd"ef"g'''hij'''k"""lmnopq`

var [toks,lefted] = lexq.parse(chunk,DFLT_QUOTES);
/*
> toks
[
  Qtok { type: 11, raw: '"' },
  Qtok { type: 11, raw: '"' },
  RawTok { type: 10, raw: 'a' },
  Qtok { type: 11, raw: "'" },
  RawTok { type: 10, raw: 'bc' },
  Qtok { type: 11, raw: "'" },
  RawTok { type: 10, raw: 'cd' },
  Qtok { type: 11, raw: '"' },
  RawTok { type: 10, raw: 'ef' },
  Qtok { type: 11, raw: '"' },
  RawTok { type: 10, raw: 'g' },
  Qtok { type: 11, raw: "'''" },
  RawTok { type: 10, raw: 'hij' },
  Qtok { type: 11, raw: "'''" },
  RawTok { type: 10, raw: 'k' },
  Qtok { type: 11, raw: '"""' }
]
> lefted
'lmnopq'
>
*/
var [ntoks,nlefted] = parse(toks);

/*
> ntoks
[
  QuotedTok { type: 100, q: '"', str: '' },
  RawTok { type: 10, raw: 'a' },
  QuotedTok { type: 100, q: "'", str: 'bc' },
  RawTok { type: 10, raw: 'cd' },
  QuotedTok { type: 100, q: '"', str: 'ef' },
  RawTok { type: 10, raw: 'g' },
  QuotedTok { type: 100, q: "'''", str: 'hij' },
  RawTok { type: 10, raw: 'k' }
]
>
> nlefted
[ Qtok { type: 11, raw: '"""' } ]
>
>
*/

API

  • split(chunk:String,quote_array:Array):Array,...lefted

  • parse(toks:Array,quote_array:Array):Array,Array //toks and lefted-toks

  • DFLT_QUOTES

  • TOK_TYPE_MD

LICENSE

  • ISC
1.0.23

2 years ago

1.0.22

3 years ago

1.0.19

3 years ago

1.0.17

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago