1.0.23 • Published 2 years ago
nv-lex-quoted v1.0.23
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