All files lexer.js

100% Statements 43/43
100% Branches 6/6
100% Functions 5/5
100% Lines 43/43

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 442x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x  
/**
 * This module exports the main lexer.
 *
 * @module lexer
 */
 
'use strict';
 
import { nearleyLexer } from '@ull-esit-pl-2324/lexer-generator-juan-rodriguez-suarez-alu0101477596';
 
const SPACE = /(?<SPACE>\s+)/; SPACE.skip = true;
const LK = /(?<LK>\{)/;
const RK = /(?<RK>\})/;
const COLON = /(?<COLON>:)/;
const LB = /(?<LB>\[)/;
const RB = /(?<RB>\])/;
const NULL = /(?<NULL>null)/; NULL.value = () => null;
const TRUE = /(?<TRUE>true)/; TRUE.value = () => true;
const FALSE = /(?<FALSE>false)/; FALSE.value = () => false;
const COMMA = /(?<COMMA>,)/;
const NUMBER = /(?<NUMBER>[-+]?\d+(?:\.\d+)?(?:[eE][-+]?\d+)?)/; NUMBER.value = x => Number(x);
const STRING = /(?<STRING>"(?:[^"\\]|\\.)*")/; STRING.value = x => x.slice(1, -1);
 
const TOKENS = [
  SPACE,
  LK,
  RK,
  COLON,
  LB,
  RB,
  NULL,
  TRUE,
  FALSE,
  COMMA,
  NUMBER,
  STRING
];
 
const ERROR = /(?<ERROR>(.)+)/;
 
const lexer = nearleyLexer(TOKENS, {}, ERROR);
 
export { lexer };