UNPKG

hdl-js

Version:

Hardware definition language (HDL) and Hardware simulator

95 lines (76 loc) 1.89 kB
/** * The MIT License (MIT) * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com> */ 'use strict'; var parser = require('./parser'); var emulator = require('./emulator/hardware'); var generator = require('./generator'); var HDLClassFactory = emulator.HDLClassFactory; /** * An API object for HDL processing. */ var hdl = { /** * Parser module exposed. */ parser: parser, /** * Emulator module exposed. */ emulator: emulator, /** * Code generator module exposed. */ generator: generator, /** * Parses an HDL string, producing an AST. * * @param string hdlCode * * an HDL string. * * @param Object options * * parsing options for this parse call. Default are: * * - captureLocations: boolean * - any other custom options * * @return Object AST */ parse: function parse(hdlCode, options) { return parser.parse('' + hdlCode, options); }, /** * Facade method; similar to `parse`, but reads a file first. */ parseFile: function parseFile(fileName, options) { return parser.parseFile(fileName, options); }, /** * Loads a custom composite gate class from HDL file. */ fromHDLFile: function fromHDLFile(fileName) { return HDLClassFactory.fromHDLFile(fileName); }, /** * Loads a custom composite gate class from HDL file. */ fromHDL: function fromHDL(hdl) { return HDLClassFactory.fromHDL(hdl); }, /** * Generates an HDL code from an AST. */ generateFromAST: function generateFromAST(ast, options) { return generator.generateFromAST(ast, options); }, /** * Generates an HDL from a CompositeGate instance. */ generateFromCompositeGate: function generateFromCompositeGate(compositeGate, options) { return generator.fromCompositeGate(compositeGate, options); } }; module.exports = hdl;