summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-02-23 17:27:16 -0700
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-02-23 17:27:16 -0700
commite8e9ee18f29b2557fdc514c4322f5446484c4d58 (patch)
tree1d44fde6ca06f4c377d5cbf3d5ec9b31746ef012 /test
parentd0d6aae1e56428f597f69f5c9cfb261afe671f5d (diff)
downloadcps-interpreter-e8e9ee18f29b2557fdc514c4322f5446484c4d58.tar.gz
cps-interpreter-e8e9ee18f29b2557fdc514c4322f5446484c4d58.zip
simple parser
Diffstat (limited to 'test')
-rw-r--r--test/logger.ts8
-rw-r--r--test/parser.spec.ts7
-rw-r--r--test/programs/add-1-3.cps2
-rw-r--r--test/programs/index.ts7
4 files changed, 24 insertions, 0 deletions
diff --git a/test/logger.ts b/test/logger.ts
new file mode 100644
index 0000000..2eb523b
--- /dev/null
+++ b/test/logger.ts
@@ -0,0 +1,8 @@
+import { ConsoleTracingLogger } from '@/utils';
+
+export const testingLogger = new ConsoleTracingLogger('test', [
+ 'info',
+ 'warn',
+ 'error',
+ 'debug',
+]);
diff --git a/test/parser.spec.ts b/test/parser.spec.ts
new file mode 100644
index 0000000..e174383
--- /dev/null
+++ b/test/parser.spec.ts
@@ -0,0 +1,7 @@
+import { expect, test } from 'bun:test';
+import { TestPrograms } from './programs';
+import { peggyParse } from '@/parser';
+
+test('Primitive Operations', async () => {
+ const ast = peggyParse(await TestPrograms.AddOneThree);
+});
diff --git a/test/programs/add-1-3.cps b/test/programs/add-1-3.cps
new file mode 100644
index 0000000..95b9939
--- /dev/null
+++ b/test/programs/add-1-3.cps
@@ -0,0 +1,2 @@
+PRIMOP(+, [INT 1, INT 2], [u],
+ [APP(LABEL identity, [VAR u])]) \ No newline at end of file
diff --git a/test/programs/index.ts b/test/programs/index.ts
new file mode 100644
index 0000000..e0403fd
--- /dev/null
+++ b/test/programs/index.ts
@@ -0,0 +1,7 @@
+import { join } from 'path';
+
+export namespace TestPrograms {
+ export const AddOneThree = Bun.file(
+ join(import.meta.dir + '/add-1-3.cps'),
+ ).text();
+}