0.0.16 • Published 2 years ago
nv-lex-q v0.0.16
nv-lex-q
- nv-lex-q
install
- npm install nv-lex-q
usage
const {parse} = require("nv-lex-q");
example
const DFLT_QUOTES = [
"'",'"','`',
'"""',"'''"
]
var chunk = `""a'bc'cd"ef"g'''hij'''k"""lmnopq"""r`
var [toks,lefted] = 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: '"""' },
RawTok { type: 10, raw: 'lmnopq' },
Qtok { type: 11, raw: '"""' }
]
> lefted
'r'
>
*/
var chunk = `""a'bc'cd"ef"g'''hij'''k"""lmnopq"""`
var [toks,lefted] = 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: '"""' },
RawTok { type: 10, raw: 'lmnopq' },
Qtok { type: 11, raw: '"""' }
]
> lefted
''
>
*/
var chunk = `""a'bc'cd"ef"g'''hij'''k"""lmnopq""`
var [toks,lefted] = 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: '"""' },
RawTok { type: 10, raw: 'lmnopq' }
]
> lefted
'""'
>
*/
var chunk = `""a'bc'cd"ef"g'''hij'''k"""lmnopq"`
var [toks,lefted] = 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: '"""' },
RawTok { type: 10, raw: 'lmnopq' }
]
> lefted
'"'
>
*/
var chunk = `""a'bc'cd"ef"g'''hij'''k"""lmnopq`
var [toks,lefted] = 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 quotes = [
'`',
"''",'""',
'"""',"'''"
]
var chunk = `""a'bc'cd"ef"g'''hij'''k"""lmnopq"""""`
var [toks,lefted] = parse(chunk,quotes)
/*
> toks
[
Qtok { type: 11, raw: '""' },
RawTok { type: 10, raw: 'a' },
RawTok { type: 10, raw: "'" },
RawTok { type: 10, raw: 'bc' },
RawTok { type: 10, raw: "'" },
RawTok { type: 10, raw: 'cd' },
RawTok { type: 10, raw: '"' },
RawTok { type: 10, raw: 'ef' },
RawTok { type: 10, 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: '"""' },
RawTok { type: 10, raw: 'lmnopq' },
Qtok { type: 11, raw: '"""' }
]
> lefted
'""'
>
*/
API
- parse(chunk,match_array):Array,String //toks and lefted-string
- TOK_TYPE_MD
LICENSE
- ISC