simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

Parser.js (968B)


      1 /*
      2 	MIT License http://www.opensource.org/licenses/mit-license.php
      3 	Author Tobias Koppers @sokra
      4 */
      5 
      6 "use strict";
      7 
      8 /** @typedef {import("./Compilation")} Compilation */
      9 /** @typedef {import("./NormalModule")} NormalModule */
     10 
     11 /** @typedef {Record<string, any>} PreparsedAst */
     12 
     13 /**
     14  * @typedef {Object} ParserStateBase
     15  * @property {string | Buffer} source
     16  * @property {NormalModule} current
     17  * @property {NormalModule} module
     18  * @property {Compilation} compilation
     19  * @property {{[k: string]: any}} options
     20  */
     21 
     22 /** @typedef {Record<string, any> & ParserStateBase} ParserState */
     23 
     24 class Parser {
     25 	/* istanbul ignore next */
     26 	/**
     27 	 * @abstract
     28 	 * @param {string | Buffer | PreparsedAst} source the source to parse
     29 	 * @param {ParserState} state the parser state
     30 	 * @returns {ParserState} the parser state
     31 	 */
     32 	parse(source, state) {
     33 		const AbstractMethodError = require("./AbstractMethodError");
     34 		throw new AbstractMethodError();
     35 	}
     36 }
     37 
     38 module.exports = Parser;