From c21a41e9b0c0e4eb1dd9541004a132e7cbb93d76 Mon Sep 17 00:00:00 2001 From: Forest Belton Date: Mon, 13 Sep 2021 20:52:43 -0400 Subject: [PATCH] Read input program from file --- example.gby | 3 +++ lib/main.ts | 16 +++++++++++----- package-lock.json | 27 +++++++++++++++------------ package.json | 1 + 4 files changed, 30 insertions(+), 17 deletions(-) create mode 100644 example.gby diff --git a/example.gby b/example.gby new file mode 100644 index 0000000..a040d15 --- /dev/null +++ b/example.gby @@ -0,0 +1,3 @@ +u8 x; + +x <- 1; diff --git a/lib/main.ts b/lib/main.ts index 9c7a4f6..6ee0b6d 100644 --- a/lib/main.ts +++ b/lib/main.ts @@ -1,9 +1,15 @@ +import { promises } from "fs" import { compile } from "./compile" -const output = compile(` -u8 x; +const { readFile } = promises -x <- 1; -`) +if (process.argv.length !== 3) { + console.error("usage: gbuoy ") + process.exit(1) +} -console.log(output) +const fileName = process.argv[2] +readFile(fileName, { encoding: "utf-8" }).then(source => { + const output = compile(source) + console.log(output) +}) diff --git a/package-lock.json b/package-lock.json index 65b9694..dc6f3fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,14 +8,21 @@ "name": "gbuoy", "version": "1.0.0", "license": "MIT", - "dependencies": { - "systemjs": "^6.10.3" + "bin": { + "gbuoy": "gbuoy.js" }, "devDependencies": { + "@types/node": "^16.9.1", "peggy": "^1.2.0", "typescript": "^4.4.3" } }, + "node_modules/@types/node": { + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", + "dev": true + }, "node_modules/peggy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/peggy/-/peggy-1.2.0.tgz", @@ -28,11 +35,6 @@ "node": ">=10" } }, - "node_modules/systemjs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-6.10.3.tgz", - "integrity": "sha512-mXwfLJdaADqWg1J5+Z0bGQEdcXSe+ePPTfzffMB29aVls5cXveRl0vneSV/19t3SfuUBsAraLP8W/g5u9cmYXA==" - }, "node_modules/typescript": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", @@ -48,17 +50,18 @@ } }, "dependencies": { + "@types/node": { + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", + "dev": true + }, "peggy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/peggy/-/peggy-1.2.0.tgz", "integrity": "sha512-PQ+NKpAobImfMprYQtc4Egmyi29bidRGEX0kKjCU5uuW09s0Cthwqhfy7mLkwcB4VcgacE5L/ZjruD/kOPCUUw==", "dev": true }, - "systemjs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-6.10.3.tgz", - "integrity": "sha512-mXwfLJdaADqWg1J5+Z0bGQEdcXSe+ePPTfzffMB29aVls5cXveRl0vneSV/19t3SfuUBsAraLP8W/g5u9cmYXA==" - }, "typescript": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", diff --git a/package.json b/package.json index f81782c..99e8da1 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "devDependencies": { + "@types/node": "^16.9.1", "peggy": "^1.2.0", "typescript": "^4.4.3" },