0.0.3 • Published 2 years ago

nv-lex-tok-lrquoted v0.0.3

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

nv-lex-tok-lrquoted

  • nv-lex-tok-lrquoted
  • to get quoted-string ,used in char-stream-parser(for stage-1 using)
  • self define quote-pair
  • a simple version of nv-lex-q AND nv-lex-quoted AND nv-lex-lrquoted

install

  • npm install nv-lex-tok-lrquoted

usage

const {DFLT_QPAIRS,parse_from_src,parse} = require("nv-lex-tok-lrquoted")

example

from_str

   const lex_lrquoted  = require("nv-lex-tok-lrquoted");

    var src = `
    a"bcd" %%ef%% """gh"""i
    \\"ABC
    /*
    jk
    lm
    */  <!--rrrqsssttt-->
    '''b\\v@\\u0000@\\u0001\\u0002@\\\\@\\x00@\\x00\\x01@\\0\\01\\123@\\A@\\A\\B\"'''

##`

    var r =lex_lrq.parse_from_src(src)	



    /*
    > r.toks
    [
      '\n',
      'a',
      Quoted { l: '"', r: '"', raw: [ 'b', 'c', 'd' ] },
      ' ',
      Quoted { l: '%%', r: '%%', raw: [ 'e', 'f' ] },
      ' ',
      Quoted { l: '"""', r: '"""', raw: [ 'g', 'h' ] },
      'i',
      '\n',
      '\\',
      '"',
      'A',
      'B',
      'C',
      '\n',
      Quoted {
        l: '/*',
        r: '*/',
        raw: [
          '\n', 'j', 'k',
          '\n', 'l', 'm',
          '\n'
        ]
      },
      ' ',
      ' ',
      Quoted {
        l: '<!--',
        r: '-->',
        raw: [
          'r', 'r', 'r', 'q',
          's', 's', 's', 't',
          't', 't'
        ]
      },
      '\n',
      Quoted {
        l: "'''",
        r: "'''",
        raw: [
          'b',   [Esc], '@',   [Esc], '0',   '0',
          '0',   '0',   '@',   [Esc], '0',   '0',
          '0',   '1',   [Esc], '0',   '0',   '0',
          '2',   '@',   [Esc], '@',   [Esc], '0',
          '0',   '@',   [Esc], '0',   '0',   [Esc],
          '0',   '1',   '@',   [Esc], [Esc], '1',
          [Esc], '2',   '3',   '@',   [Esc], '@',
          [Esc], [Esc], '"'
        ]
      },
      '\n'
    ]
    >
    > r.toks[20].escape_stringify()
    [
      'b',    '\x0B', '@',    '\x00',
      '@',    '\x01', '\x02', '@',
      '\\',   '@',    '\x00', '@',
      '\x00', '\x01', '@',    '\x00',
      '\x01', 'S',    '@',    'A',
      '@',    'A',    'B',    '"'
    ]
    > (r.toks[20].l)
    "'''"
    > (r.toks[20].r)
    "'''"
    >

    > r.toks[20].raw_stringify()
    'b\\v@\\u0000@\\u0001\\u0002@\\\\@\\x00@\\x00\\x01@\\0\\01\\123@\\A@\\A\\B"'
    >

    */

from toks

    const lex_wchar  = require("nv-lex-tok-wchar");
    var r    = lex_wchar.parse_from_src(src);
    var toks = r.toks 
    var r = lex_lrq.parse(toks)
    var toks = r.toks 

METHODS

mach

    r.mach.input
    r.mach.lefted_
    r.mach.reset
    r.mach.QPAIRS
    r.mach.cache
    r.mach.state

APIS

    {
      qcfg: {
        DFLT_QPAIRS: [
          [Object], [Object], [Object],
          [Object], [Object], [Object],
          [Object], [Object], [Object],
          [Object], [Object], [Object],
          [Object], [Object], [Object],
          [Object], [Object], [Object],
          [Object], [Object], [Object],
          [Object], [Object], [Object],
          [Object], [Object], [Object]
        ],
        is_left: [Function: is_left],
        is_right: [Function: is_right],
        get_left: [Function: get_left],
        get_right: [Function: get_right],
        is_lr_pair: [Function: is_lr_pair],
        is_rl_pair: [Function: is_rl_pair],
        is_pair: [Function: is_pair]
      },
      DFLT_QPAIRS: [
        { l: "'", r: "'" },
        { l: '"', r: '"' },
        { l: '`', r: '`' },
        { l: '·', r: '·' },
        { l: '“', r: '”' },
        { l: '‘', r: '’' },
        { l: '%%', r: '%%' },
        { l: '//', r: '\n' },
        { l: '//', r: '\r' },
        { l: '//', r: '�' },
        { l: '//', r: '�' },
        { l: '/*', r: '*/' },
        { l: '{-', r: '-}' },
        { l: '(*', r: '*)' },
        { l: '%(', r: '%)' },
        { l: '#|', r: '|#' },
        { l: '#=', r: '=#' },
        { l: "'''", r: "'''" },
        { l: '"""', r: '"""' },
        { l: '```', r: '```' },
        { l: '···', r: '···' },
        { l: '“““', r: '”””' },
        { l: '‘‘‘', r: '’’’' },
        { l: '###', r: '###' },
        { l: '<!--', r: '-->' },
        { l: '<%--', r: '--%>' },
        { l: '--[[', r: '--]]' }
      ],
      _mach: {
        STATES: { '0': 'init', '1': 'q', init: 0, q: 1 },
        Quoted: [class Quoted],
        Mach: [class Mach],
        is_quoted: [Function: is_quoted],
        gen: [GeneratorFunction: gen]
      },
      Mach: [class Mach],
      parse: [Function: parse],
      parse_from_src: [Function: parse_from_src]
    }

LICENSE

  • ISC