node.js - CLI 程序不做任何事情并忽略我的代码
问题描述
我正在使用 NodeJS 和 TypeScript 为一个项目制作一种编程语言,但它并没有做任何我想让它做的事情。这里绝对是所有的代码:
const fs = require("fs");
const cl = require("chalk");
var args = process.argv.slice(2);
if (args.length !== 1) {
console.log("Error: Only argument should be filename");
} else {
if (!args[0].endsWith(".qu")) {
console.log("Error: File provided is not a Quantum file (*.qu)");
} else {
if (fs.existsSync(args[0])) {
var contents = fs.readFileSync(args[0], 'utf8');
contents = contents.replace(/\r/g, "").split("\n");
var lineNumber = 0;
for (var i = 0; i++; i < contents.length) {
var line = contents[i];
lineNumber++;
if (line.startsWith("printLn")) {
line = line.replace("printLn", "");
if (line.startsWith("(\"")) {
line = line.replace("(\"", "");
if (line.endsWith("\")")) {
line = line.substring(line.length - 2, line.length);
console.log(line);
}
}
} else if (line == "") {
continue;
} else {
console.log(cl.red(`Syntax error at line ${lineNumber}`));
console.log(`\t» ${line}`);
var date = new Date();
var time = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
console.log(cl.red(`File ${args[0]} at ${time}`));
}
}
} else {
console.log("Error: File '" + args[0] + "' does not exist!");
}
}
}
我有一个名为的文件file.qu
,这是它的内容:
printLn("Hello!")
random text - should result in error
当我输入
node . file.qu
什么都没发生!我期待这个:
Hello!
Syntax error at line 2
» random text - should result in error
File 'file.qu' at [current time]
请告诉我有什么问题!
解决方案
推荐阅读
- python - 为什么我的错误没有被except捕获?
- c# - 为多个 idMso 重用相同的上下文菜单
- php - 如何为方形订单项添加说明?
- python - 在列表中创建子列表
- android - 为什么我无法通过 https://play.google.com/apps/publish/ 登录 Google Play 来发布 Android 应用程序?
- javascript - 为什么 ({"word"}) 返回它的长度?
- generics - 存储结构而不在 Rust 中定义泛型类型
- cytoscape.js - cytoscape.js:如何防止相邻的出租车边缘重叠
- php - 在数组中查找重复条目的位置并仅更改第二个重复项
- r - 条件词云 R