Я следовал этому учебнику , который описывает, как создать компилятор JavaScript для грамматики ANTLR4 (ECMAScript.g4). В качестве примера, он также описывает, как преобразовать что-то из JavaScript в Python. Это ссылка на репо моего проекта.
Однако, когда я запускаю программу через командную строку, я получаю следующую ошибку:
D:\js-runtime>npm start
> js-runtime@1.0.0 start D:\js-runtime
> node index.js
D:\js-runtime\codegeneration\PythonGenerator.js:123
const path = require('path');
^^^^
SyntaxError: Unexpected identifier
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:616:28)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (D:\js-runtime\index.js:4:25)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! js-runtime@1.0.0 start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the js-runtime@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\shjslk\AppData\Roaming\npm-cache\_logs\2018-10-31T08_28_59_802Z-debug.log
Вот соответствующие части PythonGenerator.js:
const ECMAScriptVisitor = require('../lib/ECMAScriptVisitor').ECMAScriptVisitor;
/**
* This Visitor walks the tree generated by parsers and produces Python code
*
* @returns {object}
*/
class Visitor extends ECMAScriptVisitor {
// lots of method definitions here
const path = require('path');
const {
SemanticArgumentCountMismatchError
} = require(path.resolve('error', 'helper'));
// more methods
}
module.exports = Visitor;
Очевидно, что ошибка должна быть связана с модулем Node 'path'. Но я не вижу, что с этим не так. Что может быть причиной этого?