From 203925d9a48d34537bdf6cd25502134df5e91ae7 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Wed, 24 Jan 2024 18:59:13 -0700 Subject: initial commit --- test/parser.spec.ts | 12 ++++++++ test/programs/fib.ts | 1 + test/programs/index.ts | 5 ++++ test/programs/module.ts | 37 ++++++++++++++++++++++++ test/programs/router.ts | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 130 insertions(+) create mode 100644 test/parser.spec.ts create mode 100644 test/programs/fib.ts create mode 100644 test/programs/index.ts create mode 100644 test/programs/module.ts create mode 100644 test/programs/router.ts (limited to 'test') diff --git a/test/parser.spec.ts b/test/parser.spec.ts new file mode 100644 index 0000000..63ec65b --- /dev/null +++ b/test/parser.spec.ts @@ -0,0 +1,12 @@ +import { expect, test } from 'bun:test'; +import { TestPrograms } from './programs'; +import { Parser } from '@/parser'; + +test('fibonacci program', () => { + const parser = new Parser(TestPrograms.Fibonacci); + const result = parser.parse(); + + console.log(result); + + expect(result.errs).toBeEmpty(); +}); diff --git a/test/programs/fib.ts b/test/programs/fib.ts new file mode 100644 index 0000000..11a8b1f --- /dev/null +++ b/test/programs/fib.ts @@ -0,0 +1 @@ +export const FIBONACCI_PROG = `PLEASE OF asdf`; diff --git a/test/programs/index.ts b/test/programs/index.ts new file mode 100644 index 0000000..af4170d --- /dev/null +++ b/test/programs/index.ts @@ -0,0 +1,5 @@ +import { FIBONACCI_PROG } from './fib'; + +export namespace TestPrograms { + export const Fibonacci = FIBONACCI_PROG; +} diff --git a/test/programs/module.ts b/test/programs/module.ts new file mode 100644 index 0000000..a27b51f --- /dev/null +++ b/test/programs/module.ts @@ -0,0 +1,37 @@ +export const MOD_PROG = ` +WE MADE Node WITH + RUMOR HAS IT + T a AND + Cons b + END OF STORY + +STUFF OF FibonacciI LOOKS LIKE + RUMOR HAS IT + DISCOVER HOW TO fibonacci + WITH Int a, Int b, Int n + GIVES YOU Int + END OF STORY + +EVERYTHING CHANGED WHEN FibonacciImpl + WHICH LOOKS LIKE FibonacciI + EXISTS +RUMOR HAS IT + DISCOVER HOW TO fibonacci + WITH Int a, Int b, Int n + GIVES YOU Int + RUMOR HAS IT + WHAT IF n < 1 + SHOCKING DEVELOPMENT b + LIES! RUMOR HAS IT + SHOCKING DEVELOPMENT + fibonacci OF b, a + b, n - 1 + END OF STORY + END OF STORY +END OF STORY + +EXPERTS CLAIM limit TO BE Int 10 +YOU WON'T WANT TO MISS 'First 10 Fibonacci numbers' +EXPERTS CLAIM nothing TO BE fibonacci OF 0, 1, limit + +PLEASE LIKE AND SUBSCRIBE +`; diff --git a/test/programs/router.ts b/test/programs/router.ts new file mode 100644 index 0000000..2d2dcb5 --- /dev/null +++ b/test/programs/router.ts @@ -0,0 +1,75 @@ +export const HTTP_BRAINSTORM_PROG = ` +WE MADE Cookie WITH +RUMOR HAS IT + String key, + String value, + Maybe(String) expires, + Maybe(Boolean) secure, + Maybe(Boolean) httpOnly, + Maybe(String) sameSite, +END OF STORY + +ONLY OPTIONS OF HttpMethod ARE +RUMOR HAS IT + Get, + Post, + Delete, + Patch, + Put, +END OF STORY + +WE MADE Request WITH +RUMOR HAS IT + HttpMethod method, + String path, + Maybe(List(Cookie)) cookies, + List(String[2]) headers, + List(String[2]) query, +END OF STORY + +WE MADE Response WITH +RUMOR HAS IT + String response, + Maybe(List(String[2])) headers, + Maybe(List(String[2])) cookies, +END OF STORY + +STUFF OF Controller LOOKS LIKE +RUMOR HAS IT + DISCOVER HOW TO respond + WITH Request req + GIVES YOU Response +END OF STORY + +EVERYTHING CHANGED WHEN BasicController + WHICH LOOKS LIKE Controller + EXISTS +RUMOR HAS IT + PRACTICALLY IMPOSSIBLE TO HAVE BasicController + WITHOUT + Maybe(Int) initialCount + RUMOR HAS IT + EXPERTS CLAIM count TO BE Int + IS DATING initialCount WHO IS + RUMOR HAS IT + Someone(c) SO c + Nobody SO 0 + END OF STORY + END OF STORY + + DISCOVER HOW TO respond + WITH Request req + GIVES YOU Response + RUMOR HAS IT + EXPERTS CLAIM res TO BE Response MADE OF + RUMOR HAS IT + EXPERTS CLAIM response TO BE Int.toString OF + MY OWN count + END OF STORY + + SHOCKING DEVELOPMENT res + END OF STORY +END OF STORY + +PLEASE LIKE AND SUBSCRIBE +`; -- cgit v1.2.3-70-g09d2