Compare commits
No commits in common. "47420740dfe09f0a7dbb2b46b8291a7b985d0fd4" and "20ea25761ac1a66398488d6b79e752cb05bb296f" have entirely different histories.
47420740df
...
20ea25761a
2
justfile
2
justfile
|
@ -3,4 +3,4 @@ repl:
|
||||||
clj -X:repl
|
clj -X:repl
|
||||||
|
|
||||||
build:
|
build:
|
||||||
shadow-cljs release module
|
shadow-cljs release node
|
||||||
|
|
4100
package-lock.json
generated
4100
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
|
@ -3,14 +3,12 @@
|
||||||
"version": "0.1.0-alpha.7.9",
|
"version": "0.1.0-alpha.7.9",
|
||||||
"description": "A Ludus interpreter in a pure JS function.",
|
"description": "A Ludus interpreter in a pure JS function.",
|
||||||
"main": "target/js/ludus.js",
|
"main": "target/js/ludus.js",
|
||||||
"type": "module",
|
|
||||||
"directories": {},
|
"directories": {},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "Scott Richmond",
|
"author": "Scott Richmond",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"files": "target/js/*",
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"shadow-cljs": "^2.26.0",
|
"shadow-cljs": "^2.26.0"
|
||||||
"tap": "^18.6.1"
|
},
|
||||||
}
|
"dependencies": {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,13 +5,9 @@
|
||||||
|
|
||||||
:builds
|
:builds
|
||||||
{:node {:target :node-library
|
{:node {:target :node-library
|
||||||
:output-to "target/js/ludus.js"
|
:output-to "target/js/ludus.js"
|
||||||
:exports {:run ludus.node/run}
|
:exports {:run ludus.node/run}
|
||||||
:modules {:main {:entries [ludus.node]}}}
|
:modules {:main {:entries [ludus.node]}}}
|
||||||
:module {:target :esm
|
|
||||||
:output-dir "target/js"
|
|
||||||
:modules {:ludus {:exports {run ludus.node/run test ludus.node/run-test}}}
|
|
||||||
}
|
|
||||||
:browser {:target :browser
|
:browser {:target :browser
|
||||||
:output-dir "target/js"
|
:output-dir "target/js"
|
||||||
:asset-path "target"
|
:asset-path "target"
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
|
|
||||||
(defn test-run [source] (run source true))
|
(defn test-run [source] (run source true))
|
||||||
|
|
||||||
(comment
|
(do
|
||||||
|
|
||||||
(def source "
|
(def source "
|
||||||
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
& EXPECT (:true, :false, :true, :false)
|
|
||||||
let true_literal = if true then :true else :false
|
|
||||||
let false_literal = if false then :true else :false
|
|
||||||
let truthy = if :truthy then :true else :false
|
|
||||||
let falsy = if nil then :true else :false
|
|
||||||
|
|
||||||
(true_literal, false_literal, truthy, falsy)
|
|
|
@ -1,2 +0,0 @@
|
||||||
& EXPECT [:one, 2, "three"]
|
|
||||||
[:one, 2, "three"]
|
|
|
@ -1,2 +0,0 @@
|
||||||
& EXPECT 12.123
|
|
||||||
12.123
|
|
|
@ -1,2 +0,0 @@
|
||||||
& EXPECT 42
|
|
||||||
42
|
|
|
@ -1,2 +0,0 @@
|
||||||
& EXPECT "foo"
|
|
||||||
"foo"
|
|
|
@ -1,2 +0,0 @@
|
||||||
& EXPECT (true, false, nil)
|
|
||||||
(true, false, nil)
|
|
|
@ -1,30 +0,0 @@
|
||||||
import {run} from "../target/js/ludus.js"
|
|
||||||
import * as fs from "node:fs/promises"
|
|
||||||
import t from "tap"
|
|
||||||
|
|
||||||
const case_path = "./cases"
|
|
||||||
const files = await fs.readdir(case_path)
|
|
||||||
|
|
||||||
for (const file of files) {
|
|
||||||
const source = await fs.readFile(`${case_path}/${file}`, {encoding: "utf8"})
|
|
||||||
const first_line = source.split("\n")[0]
|
|
||||||
const expected = first_line.split("EXPECT")[1].trim()
|
|
||||||
if (expected === "PANIC") expect_panic(file, source)
|
|
||||||
else expect_result(file, source, expected)
|
|
||||||
}
|
|
||||||
|
|
||||||
function expect_panic(file, source) {
|
|
||||||
const result = run(source).errors[0]
|
|
||||||
t.test(`testing ${file}: EXPECT PANIC`, t => {
|
|
||||||
t.ok(result)
|
|
||||||
t.end()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function expect_result(file, source, expected) {
|
|
||||||
const result = run(source).result
|
|
||||||
t.test(`testing ${file}: EXPECT ${expected}, GOT ${result}`, t => {
|
|
||||||
t.equal(expected, result)
|
|
||||||
t.end()
|
|
||||||
})
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user