From 1a9fb1cb08201aab73c13aa44b2f11c8ba536aad Mon Sep 17 00:00:00 2001 From: "Shea Lewis (Kai)" <355659+kaidesu@users.noreply.github.com> Date: Thu, 5 Oct 2023 01:03:27 -0700 Subject: [PATCH 1/3] bump version --- src/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/version/version.go b/src/version/version.go index e723748..5c02106 100644 --- a/src/version/version.go +++ b/src/version/version.go @@ -1,4 +1,4 @@ package version // Version signifies the current version of Ghost. -const Version = "1.0.0-beta.2" +const Version = "0.17.0" From 955e62cc31e5330e674050d53ea31bd097e1a1e7 Mon Sep 17 00:00:00 2001 From: "Shea Lewis (Kai)" <355659+kaidesu@users.noreply.github.com> Date: Thu, 5 Oct 2023 23:54:58 -0700 Subject: [PATCH 2/3] move out of src directory --- DOCS.md | 310 ------------------ Makefile | 5 - {src/ast => ast}/assign.go | 0 {src/ast => ast}/ast.go | 0 {src/ast => ast}/block.go | 0 {src/ast => ast}/boolean.go | 0 {src/ast => ast}/break.go | 0 {src/ast => ast}/call.go | 0 {src/ast => ast}/case.go | 0 {src/ast => ast}/class.go | 0 {src/ast => ast}/compound.go | 0 {src/ast => ast}/continue.go | 0 {src/ast => ast}/expression.go | 0 {src/ast => ast}/for.go | 0 {src/ast => ast}/for_in.go | 0 {src/ast => ast}/function.go | 0 {src/ast => ast}/identifier.go | 0 {src/ast => ast}/if.go | 0 {src/ast => ast}/import.go | 0 {src/ast => ast}/import_from.go | 0 {src/ast => ast}/index.go | 0 {src/ast => ast}/infix.go | 0 {src/ast => ast}/list.go | 0 {src/ast => ast}/map.go | 0 {src/ast => ast}/method.go | 0 {src/ast => ast}/null.go | 0 {src/ast => ast}/number.go | 0 {src/ast => ast}/prefix.go | 0 {src/ast => ast}/program.go | 0 {src/ast => ast}/property.go | 0 {src/ast => ast}/return.go | 0 {src/ast => ast}/string.go | 0 {src/ast => ast}/switch.go | 0 {src/ast => ast}/ternary.go | 0 {src/ast => ast}/this.go | 0 {src/ast => ast}/while.go | 0 {src/cmd => cmd}/benchmark.go | 0 {src/cmd => cmd}/ghost.go | 0 {src/cmd => cmd}/help.go | 0 {src/evaluator => evaluator}/assign.go | 0 {src/evaluator => evaluator}/block.go | 0 {src/evaluator => evaluator}/boolean.go | 0 {src/evaluator => evaluator}/break.go | 0 {src/evaluator => evaluator}/call.go | 0 {src/evaluator => evaluator}/class.go | 0 {src/evaluator => evaluator}/compound.go | 0 {src/evaluator => evaluator}/continue.go | 0 {src/evaluator => evaluator}/evaluator.go | 0 .../evaluator => evaluator}/evaluator_test.go | 0 {src/evaluator => evaluator}/expressions.go | 0 {src/evaluator => evaluator}/for.go | 0 {src/evaluator => evaluator}/for_in.go | 0 {src/evaluator => evaluator}/function.go | 0 {src/evaluator => evaluator}/identifier.go | 0 {src/evaluator => evaluator}/if.go | 0 {src/evaluator => evaluator}/import.go | 0 {src/evaluator => evaluator}/index.go | 0 {src/evaluator => evaluator}/infix.go | 0 {src/evaluator => evaluator}/list.go | 0 {src/evaluator => evaluator}/map.go | 0 {src/evaluator => evaluator}/method.go | 0 {src/evaluator => evaluator}/null.go | 0 {src/evaluator => evaluator}/number.go | 0 {src/evaluator => evaluator}/prefix.go | 0 {src/evaluator => evaluator}/program.go | 0 {src/evaluator => evaluator}/property.go | 0 {src/evaluator => evaluator}/return.go | 0 {src/evaluator => evaluator}/string.go | 0 {src/evaluator => evaluator}/switch.go | 0 {src/evaluator => evaluator}/ternary.go | 0 {src/evaluator => evaluator}/this.go | 0 {src/evaluator => evaluator}/while.go | 0 {src/ghost => ghost}/ghost.go | 0 src/go.mod => go.mod | 0 src/go.sum => go.sum | 0 {src/library => library}/functions/print.go | 0 {src/library => library}/functions/type.go | 0 {src/library => library}/library.go | 0 {src/library => library}/modules/console.go | 0 {src/library => library}/modules/ghost.go | 0 {src/library => library}/modules/http.go | 0 {src/library => library}/modules/io.go | 0 {src/library => library}/modules/math.go | 0 {src/library => library}/modules/modules.go | 0 {src/library => library}/modules/os.go | 0 {src/library => library}/modules/random.go | 0 {src/library => library}/modules/time.go | 0 {src/log => log}/log.go | 0 {src/object => object}/boolean.go | 0 {src/object => object}/break.go | 0 {src/object => object}/class.go | 0 {src/object => object}/continue.go | 0 {src/object => object}/environment.go | 0 {src/object => object}/error.go | 0 {src/object => object}/function.go | 0 {src/object => object}/instance.go | 0 {src/object => object}/library_function.go | 0 {src/object => object}/library_module.go | 0 {src/object => object}/library_property.go | 0 {src/object => object}/list.go | 0 {src/object => object}/map.go | 0 {src/object => object}/null.go | 0 {src/object => object}/number.go | 0 {src/object => object}/object.go | 0 {src/object => object}/return.go | 0 {src/object => object}/scope.go | 0 {src/object => object}/string.go | 0 {src/parser => parser}/assign.go | 0 {src/parser => parser}/block.go | 0 {src/parser => parser}/boolean.go | 0 {src/parser => parser}/break.go | 0 {src/parser => parser}/call.go | 0 {src/parser => parser}/class.go | 0 {src/parser => parser}/compound.go | 0 {src/parser => parser}/continue.go | 0 {src/parser => parser}/dot.go | 0 {src/parser => parser}/expression.go | 0 {src/parser => parser}/for.go | 0 {src/parser => parser}/function.go | 0 {src/parser => parser}/group.go | 0 {src/parser => parser}/identifier.go | 0 {src/parser => parser}/if.go | 0 {src/parser => parser}/import.go | 0 {src/parser => parser}/index.go | 0 {src/parser => parser}/infix.go | 0 {src/parser => parser}/list.go | 0 {src/parser => parser}/map.go | 0 {src/parser => parser}/null.go | 0 {src/parser => parser}/number.go | 0 {src/parser => parser}/parser.go | 0 {src/parser => parser}/parser_test.go | 0 {src/parser => parser}/prefix.go | 0 {src/parser => parser}/return.go | 0 {src/parser => parser}/statement.go | 0 {src/parser => parser}/string.go | 0 {src/parser => parser}/switch.go | 0 {src/parser => parser}/ternary.go | 0 {src/parser => parser}/this.go | 0 {src/parser => parser}/while.go | 0 {src/repl => repl}/repl.go | 0 {src/scanner => scanner}/scanner.go | 0 {src/scanner => scanner}/scanner_test.go | 0 {src/token => token}/token.go | 0 {src/token => token}/token_test.go | 0 {src/value => value}/value.go | 0 {src/version => version}/version.go | 0 146 files changed, 315 deletions(-) delete mode 100644 DOCS.md rename {src/ast => ast}/assign.go (100%) rename {src/ast => ast}/ast.go (100%) rename {src/ast => ast}/block.go (100%) rename {src/ast => ast}/boolean.go (100%) rename {src/ast => ast}/break.go (100%) rename {src/ast => ast}/call.go (100%) rename {src/ast => ast}/case.go (100%) rename {src/ast => ast}/class.go (100%) rename {src/ast => ast}/compound.go (100%) rename {src/ast => ast}/continue.go (100%) rename {src/ast => ast}/expression.go (100%) rename {src/ast => ast}/for.go (100%) rename {src/ast => ast}/for_in.go (100%) rename {src/ast => ast}/function.go (100%) rename {src/ast => ast}/identifier.go (100%) rename {src/ast => ast}/if.go (100%) rename {src/ast => ast}/import.go (100%) rename {src/ast => ast}/import_from.go (100%) rename {src/ast => ast}/index.go (100%) rename {src/ast => ast}/infix.go (100%) rename {src/ast => ast}/list.go (100%) rename {src/ast => ast}/map.go (100%) rename {src/ast => ast}/method.go (100%) rename {src/ast => ast}/null.go (100%) rename {src/ast => ast}/number.go (100%) rename {src/ast => ast}/prefix.go (100%) rename {src/ast => ast}/program.go (100%) rename {src/ast => ast}/property.go (100%) rename {src/ast => ast}/return.go (100%) rename {src/ast => ast}/string.go (100%) rename {src/ast => ast}/switch.go (100%) rename {src/ast => ast}/ternary.go (100%) rename {src/ast => ast}/this.go (100%) rename {src/ast => ast}/while.go (100%) rename {src/cmd => cmd}/benchmark.go (100%) rename {src/cmd => cmd}/ghost.go (100%) rename {src/cmd => cmd}/help.go (100%) rename {src/evaluator => evaluator}/assign.go (100%) rename {src/evaluator => evaluator}/block.go (100%) rename {src/evaluator => evaluator}/boolean.go (100%) rename {src/evaluator => evaluator}/break.go (100%) rename {src/evaluator => evaluator}/call.go (100%) rename {src/evaluator => evaluator}/class.go (100%) rename {src/evaluator => evaluator}/compound.go (100%) rename {src/evaluator => evaluator}/continue.go (100%) rename {src/evaluator => evaluator}/evaluator.go (100%) rename {src/evaluator => evaluator}/evaluator_test.go (100%) rename {src/evaluator => evaluator}/expressions.go (100%) rename {src/evaluator => evaluator}/for.go (100%) rename {src/evaluator => evaluator}/for_in.go (100%) rename {src/evaluator => evaluator}/function.go (100%) rename {src/evaluator => evaluator}/identifier.go (100%) rename {src/evaluator => evaluator}/if.go (100%) rename {src/evaluator => evaluator}/import.go (100%) rename {src/evaluator => evaluator}/index.go (100%) rename {src/evaluator => evaluator}/infix.go (100%) rename {src/evaluator => evaluator}/list.go (100%) rename {src/evaluator => evaluator}/map.go (100%) rename {src/evaluator => evaluator}/method.go (100%) rename {src/evaluator => evaluator}/null.go (100%) rename {src/evaluator => evaluator}/number.go (100%) rename {src/evaluator => evaluator}/prefix.go (100%) rename {src/evaluator => evaluator}/program.go (100%) rename {src/evaluator => evaluator}/property.go (100%) rename {src/evaluator => evaluator}/return.go (100%) rename {src/evaluator => evaluator}/string.go (100%) rename {src/evaluator => evaluator}/switch.go (100%) rename {src/evaluator => evaluator}/ternary.go (100%) rename {src/evaluator => evaluator}/this.go (100%) rename {src/evaluator => evaluator}/while.go (100%) rename {src/ghost => ghost}/ghost.go (100%) rename src/go.mod => go.mod (100%) rename src/go.sum => go.sum (100%) rename {src/library => library}/functions/print.go (100%) rename {src/library => library}/functions/type.go (100%) rename {src/library => library}/library.go (100%) rename {src/library => library}/modules/console.go (100%) rename {src/library => library}/modules/ghost.go (100%) rename {src/library => library}/modules/http.go (100%) rename {src/library => library}/modules/io.go (100%) rename {src/library => library}/modules/math.go (100%) rename {src/library => library}/modules/modules.go (100%) rename {src/library => library}/modules/os.go (100%) rename {src/library => library}/modules/random.go (100%) rename {src/library => library}/modules/time.go (100%) rename {src/log => log}/log.go (100%) rename {src/object => object}/boolean.go (100%) rename {src/object => object}/break.go (100%) rename {src/object => object}/class.go (100%) rename {src/object => object}/continue.go (100%) rename {src/object => object}/environment.go (100%) rename {src/object => object}/error.go (100%) rename {src/object => object}/function.go (100%) rename {src/object => object}/instance.go (100%) rename {src/object => object}/library_function.go (100%) rename {src/object => object}/library_module.go (100%) rename {src/object => object}/library_property.go (100%) rename {src/object => object}/list.go (100%) rename {src/object => object}/map.go (100%) rename {src/object => object}/null.go (100%) rename {src/object => object}/number.go (100%) rename {src/object => object}/object.go (100%) rename {src/object => object}/return.go (100%) rename {src/object => object}/scope.go (100%) rename {src/object => object}/string.go (100%) rename {src/parser => parser}/assign.go (100%) rename {src/parser => parser}/block.go (100%) rename {src/parser => parser}/boolean.go (100%) rename {src/parser => parser}/break.go (100%) rename {src/parser => parser}/call.go (100%) rename {src/parser => parser}/class.go (100%) rename {src/parser => parser}/compound.go (100%) rename {src/parser => parser}/continue.go (100%) rename {src/parser => parser}/dot.go (100%) rename {src/parser => parser}/expression.go (100%) rename {src/parser => parser}/for.go (100%) rename {src/parser => parser}/function.go (100%) rename {src/parser => parser}/group.go (100%) rename {src/parser => parser}/identifier.go (100%) rename {src/parser => parser}/if.go (100%) rename {src/parser => parser}/import.go (100%) rename {src/parser => parser}/index.go (100%) rename {src/parser => parser}/infix.go (100%) rename {src/parser => parser}/list.go (100%) rename {src/parser => parser}/map.go (100%) rename {src/parser => parser}/null.go (100%) rename {src/parser => parser}/number.go (100%) rename {src/parser => parser}/parser.go (100%) rename {src/parser => parser}/parser_test.go (100%) rename {src/parser => parser}/prefix.go (100%) rename {src/parser => parser}/return.go (100%) rename {src/parser => parser}/statement.go (100%) rename {src/parser => parser}/string.go (100%) rename {src/parser => parser}/switch.go (100%) rename {src/parser => parser}/ternary.go (100%) rename {src/parser => parser}/this.go (100%) rename {src/parser => parser}/while.go (100%) rename {src/repl => repl}/repl.go (100%) rename {src/scanner => scanner}/scanner.go (100%) rename {src/scanner => scanner}/scanner_test.go (100%) rename {src/token => token}/token.go (100%) rename {src/token => token}/token_test.go (100%) rename {src/value => value}/value.go (100%) rename {src/version => version}/version.go (100%) diff --git a/DOCS.md b/DOCS.md deleted file mode 100644 index 4870e1e..0000000 --- a/DOCS.md +++ /dev/null @@ -1,310 +0,0 @@ -# Documentation - -## Error Handling - -- Syntax errors -- Runtime errors -- Line and column are reported for every error - -## Classes - -### Defining - -```dart -class CoffeeMaker { - // -} -``` - -### Constructor - -```dart -class CoffeeMaker { - function constructor() { - print("Calibrating your coffee maker.") - } -} - -maker = CoffeeMaker.new() -``` - -### Methods - -```dart -class CoffeeMaker { - function brew() { - print("Your coffee is now brewing.") - } -} -``` - -### this - -```dart -class CoffeeMaker { - function constructor(recipe = "americano") { - this.recipe = recipe - } - - function setRecipe(recipe) { - this.recipe = recipe - - // Returning 'this' allows you to chain methods - return this - } - - function brew() { - print("Brewing and making your %s.".format(this.recipe)) - } -} - -maker = CoffeeMaker.new() - -maker.setRecipe("latte").brew() -``` - -## Values - -### Lists - -#### Methods - -- `first()` -- `join()` -- `last()` -- `length()` -- `pop()` -- `push()` -- `tail()` -- `toString()` - -### Numbers - -#### Compound operators - -`x = 5; x += 1; // x == 6` -`x = 5; x -= 1; // x == 4` -`x = 5; x *= 2; // x == 10` -`x = 10; x /= 2; // x == 5` - -### Strings - -#### Methods - -- `find()` -- `findAll()` -- `format()` -- `endsWith()` -- `length()` -- `matches()` -- `replace()` -- `split()` -- `startsWith()` -- `toLowerCase()` -- `toUpperCase()` -- `toString()` -- `toNumber()` -- `trim()` -- `trimEnd()` -- `trimStart()` - -## Switch Statements - -The `switch` statement evaluates an expression, matching the expression's value to a `case` clause, and executes statements associated with that `case`, as well as statements in cases that follow the matching `case`. - -```typescript -beverage = "coffee" - -switch (beverage) { - case "water" { - print("Water is $0.75 per bottle.") - } - case "juice" { - print("Juice is $1.25 per bottle.") - } - case "coffee", "latte" { - print("Coffee and lattes are $2.75 per 12oz.") - } -} -``` - -## Modularity - -Ghost employs a simple module system to split and organize code into self-contained files. - -Every ghost file is its own module with its own scope. Importing a file into another does not explicitely merge its scope. For example, two modules can define the same top-level variable with the same name without causing any name collision. - -### Shared Imports - -Ghost keeps track of every file it imports. Importing a module in multiple locations will not execute or load that module every time. The first encounter of the imported module will be the only time its loaded and evaluated. - -### Binding Variables - -All top-level variables within a module are exportable. To actually _import_ data, you may specify any number of identifiers in your import statement: - -```typescript -import Request, Response from "http" -``` - -The above will _import_ and _bind_ the values `Request` and `Response` from the `http` module. This will make `Request` and `Response` available in your file. - -#### Aliases - -You may import a variable under a different name using `as`: - -```typescript -import str as isString from "helpers" -``` - -### Cyclic Imports - -Cyclic imports for the most part are "supported" by Ghost, though they should still be considered a code smell if you ever come across them. Because Ghost keeps track of the modules it imports, it's effectively able to short-circuit itself on cyclic imports: - -```typescript -// main.ghost -import "a"; - -// a.ghost -print("start a"); -import "b"; -print("end a"); - -// b.ghost -print("start b"); -import "c"; -print("end b"); - -// c.ghost -print("start c"); -import "a"; -print("end c"); -``` - -When running the above program, you'll find that it prints the correct output and does not get stuck in an infinite loop: - -``` -start a -start b -start c -end c -end b -end a -``` - -### Importing Imperatively - -To import a file imperatively, simply use the `import` statement: - -```dart -import "beverages" -``` - -This will evaluate the module and run it, but it will not bind any new variables. - -## Standard Library - -### Functions - -- `print()` -- `type()` - -### Console - -#### Methods - -- `console.error()` -- `console.info()` -- `console.log()` -- `console.read()` -- `console.warn()` - -### Ghost - -#### Methods - -- `ghost.abort()` -- `ghost.execute()` -- `ghost.extend()` -- `ghost.identifiers()` - -#### Properties - -- `ghost.version` - -### HTTP - -#### Methods - -- `http.handle()` -- `http.listen()` - -### IO - -#### Methods - -- `io.append()` -- `io.read()` -- `io.write()` - -### Math - -#### Methods - -- `math.abs()` -- `math.cos()` -- `math.isNegative()` -- `math.isPositive()` -- `math.isZero()` -- `math.sin()` -- `math.tan()` - -#### Properties - -- `math.pi` -- `math.e` -- `math.epsilon` -- `math.tau` - -### OS - -#### Methods - -- `os.args()` -- `os.clock()` -- `os.exit()` - -#### Properties - -- `os.name` - -### Random - -#### Methods - -- `random.seed()` -- `random.random()` -- `random.range()` - -#### Properties - -- `random.seed` - -### Time - -#### Methods - -- `time.sleep()` -- `time.now()` - -#### Properties - -- `time.nanosecond` -- `time.microsecond` -- `time.millisecond` -- `time.second` -- `time.minute` -- `time.hour` -- `time.day` -- `time.week` -- `time.month` -- `time.year` diff --git a/Makefile b/Makefile index cf69bf1..f6aa136 100644 --- a/Makefile +++ b/Makefile @@ -3,25 +3,20 @@ GOPATH:=$(shell go env GOPATH) .PHONY: run build build-mac build-linux build-windows test clean run: - @cd src && \ go run cmd/*.go build: build-mac build-linux build-windows build-mac: clean - @cd src && \ GOOS=darwin go build -trimpath -o ../dist/mac/ghost cmd/*.go build-linux: clean - @cd src && \ GOOS=linux go build -trimpath -o ../dist/linux/ghost cmd/*.go build-windows: clean - @cd src && \ GOOS=windows go build -trimpath -o ../dist/windows/ghost.exe cmd/*.go test: - cd src && \ go test -v -race -timeout 5s ./... | sed ''/PASS/s//$$(printf "\033[32mPASS\033[0m")/'' | sed ''/FAIL/s//$$(printf "\033[31mFAIL\033[0m")/'' clean: diff --git a/src/ast/assign.go b/ast/assign.go similarity index 100% rename from src/ast/assign.go rename to ast/assign.go diff --git a/src/ast/ast.go b/ast/ast.go similarity index 100% rename from src/ast/ast.go rename to ast/ast.go diff --git a/src/ast/block.go b/ast/block.go similarity index 100% rename from src/ast/block.go rename to ast/block.go diff --git a/src/ast/boolean.go b/ast/boolean.go similarity index 100% rename from src/ast/boolean.go rename to ast/boolean.go diff --git a/src/ast/break.go b/ast/break.go similarity index 100% rename from src/ast/break.go rename to ast/break.go diff --git a/src/ast/call.go b/ast/call.go similarity index 100% rename from src/ast/call.go rename to ast/call.go diff --git a/src/ast/case.go b/ast/case.go similarity index 100% rename from src/ast/case.go rename to ast/case.go diff --git a/src/ast/class.go b/ast/class.go similarity index 100% rename from src/ast/class.go rename to ast/class.go diff --git a/src/ast/compound.go b/ast/compound.go similarity index 100% rename from src/ast/compound.go rename to ast/compound.go diff --git a/src/ast/continue.go b/ast/continue.go similarity index 100% rename from src/ast/continue.go rename to ast/continue.go diff --git a/src/ast/expression.go b/ast/expression.go similarity index 100% rename from src/ast/expression.go rename to ast/expression.go diff --git a/src/ast/for.go b/ast/for.go similarity index 100% rename from src/ast/for.go rename to ast/for.go diff --git a/src/ast/for_in.go b/ast/for_in.go similarity index 100% rename from src/ast/for_in.go rename to ast/for_in.go diff --git a/src/ast/function.go b/ast/function.go similarity index 100% rename from src/ast/function.go rename to ast/function.go diff --git a/src/ast/identifier.go b/ast/identifier.go similarity index 100% rename from src/ast/identifier.go rename to ast/identifier.go diff --git a/src/ast/if.go b/ast/if.go similarity index 100% rename from src/ast/if.go rename to ast/if.go diff --git a/src/ast/import.go b/ast/import.go similarity index 100% rename from src/ast/import.go rename to ast/import.go diff --git a/src/ast/import_from.go b/ast/import_from.go similarity index 100% rename from src/ast/import_from.go rename to ast/import_from.go diff --git a/src/ast/index.go b/ast/index.go similarity index 100% rename from src/ast/index.go rename to ast/index.go diff --git a/src/ast/infix.go b/ast/infix.go similarity index 100% rename from src/ast/infix.go rename to ast/infix.go diff --git a/src/ast/list.go b/ast/list.go similarity index 100% rename from src/ast/list.go rename to ast/list.go diff --git a/src/ast/map.go b/ast/map.go similarity index 100% rename from src/ast/map.go rename to ast/map.go diff --git a/src/ast/method.go b/ast/method.go similarity index 100% rename from src/ast/method.go rename to ast/method.go diff --git a/src/ast/null.go b/ast/null.go similarity index 100% rename from src/ast/null.go rename to ast/null.go diff --git a/src/ast/number.go b/ast/number.go similarity index 100% rename from src/ast/number.go rename to ast/number.go diff --git a/src/ast/prefix.go b/ast/prefix.go similarity index 100% rename from src/ast/prefix.go rename to ast/prefix.go diff --git a/src/ast/program.go b/ast/program.go similarity index 100% rename from src/ast/program.go rename to ast/program.go diff --git a/src/ast/property.go b/ast/property.go similarity index 100% rename from src/ast/property.go rename to ast/property.go diff --git a/src/ast/return.go b/ast/return.go similarity index 100% rename from src/ast/return.go rename to ast/return.go diff --git a/src/ast/string.go b/ast/string.go similarity index 100% rename from src/ast/string.go rename to ast/string.go diff --git a/src/ast/switch.go b/ast/switch.go similarity index 100% rename from src/ast/switch.go rename to ast/switch.go diff --git a/src/ast/ternary.go b/ast/ternary.go similarity index 100% rename from src/ast/ternary.go rename to ast/ternary.go diff --git a/src/ast/this.go b/ast/this.go similarity index 100% rename from src/ast/this.go rename to ast/this.go diff --git a/src/ast/while.go b/ast/while.go similarity index 100% rename from src/ast/while.go rename to ast/while.go diff --git a/src/cmd/benchmark.go b/cmd/benchmark.go similarity index 100% rename from src/cmd/benchmark.go rename to cmd/benchmark.go diff --git a/src/cmd/ghost.go b/cmd/ghost.go similarity index 100% rename from src/cmd/ghost.go rename to cmd/ghost.go diff --git a/src/cmd/help.go b/cmd/help.go similarity index 100% rename from src/cmd/help.go rename to cmd/help.go diff --git a/src/evaluator/assign.go b/evaluator/assign.go similarity index 100% rename from src/evaluator/assign.go rename to evaluator/assign.go diff --git a/src/evaluator/block.go b/evaluator/block.go similarity index 100% rename from src/evaluator/block.go rename to evaluator/block.go diff --git a/src/evaluator/boolean.go b/evaluator/boolean.go similarity index 100% rename from src/evaluator/boolean.go rename to evaluator/boolean.go diff --git a/src/evaluator/break.go b/evaluator/break.go similarity index 100% rename from src/evaluator/break.go rename to evaluator/break.go diff --git a/src/evaluator/call.go b/evaluator/call.go similarity index 100% rename from src/evaluator/call.go rename to evaluator/call.go diff --git a/src/evaluator/class.go b/evaluator/class.go similarity index 100% rename from src/evaluator/class.go rename to evaluator/class.go diff --git a/src/evaluator/compound.go b/evaluator/compound.go similarity index 100% rename from src/evaluator/compound.go rename to evaluator/compound.go diff --git a/src/evaluator/continue.go b/evaluator/continue.go similarity index 100% rename from src/evaluator/continue.go rename to evaluator/continue.go diff --git a/src/evaluator/evaluator.go b/evaluator/evaluator.go similarity index 100% rename from src/evaluator/evaluator.go rename to evaluator/evaluator.go diff --git a/src/evaluator/evaluator_test.go b/evaluator/evaluator_test.go similarity index 100% rename from src/evaluator/evaluator_test.go rename to evaluator/evaluator_test.go diff --git a/src/evaluator/expressions.go b/evaluator/expressions.go similarity index 100% rename from src/evaluator/expressions.go rename to evaluator/expressions.go diff --git a/src/evaluator/for.go b/evaluator/for.go similarity index 100% rename from src/evaluator/for.go rename to evaluator/for.go diff --git a/src/evaluator/for_in.go b/evaluator/for_in.go similarity index 100% rename from src/evaluator/for_in.go rename to evaluator/for_in.go diff --git a/src/evaluator/function.go b/evaluator/function.go similarity index 100% rename from src/evaluator/function.go rename to evaluator/function.go diff --git a/src/evaluator/identifier.go b/evaluator/identifier.go similarity index 100% rename from src/evaluator/identifier.go rename to evaluator/identifier.go diff --git a/src/evaluator/if.go b/evaluator/if.go similarity index 100% rename from src/evaluator/if.go rename to evaluator/if.go diff --git a/src/evaluator/import.go b/evaluator/import.go similarity index 100% rename from src/evaluator/import.go rename to evaluator/import.go diff --git a/src/evaluator/index.go b/evaluator/index.go similarity index 100% rename from src/evaluator/index.go rename to evaluator/index.go diff --git a/src/evaluator/infix.go b/evaluator/infix.go similarity index 100% rename from src/evaluator/infix.go rename to evaluator/infix.go diff --git a/src/evaluator/list.go b/evaluator/list.go similarity index 100% rename from src/evaluator/list.go rename to evaluator/list.go diff --git a/src/evaluator/map.go b/evaluator/map.go similarity index 100% rename from src/evaluator/map.go rename to evaluator/map.go diff --git a/src/evaluator/method.go b/evaluator/method.go similarity index 100% rename from src/evaluator/method.go rename to evaluator/method.go diff --git a/src/evaluator/null.go b/evaluator/null.go similarity index 100% rename from src/evaluator/null.go rename to evaluator/null.go diff --git a/src/evaluator/number.go b/evaluator/number.go similarity index 100% rename from src/evaluator/number.go rename to evaluator/number.go diff --git a/src/evaluator/prefix.go b/evaluator/prefix.go similarity index 100% rename from src/evaluator/prefix.go rename to evaluator/prefix.go diff --git a/src/evaluator/program.go b/evaluator/program.go similarity index 100% rename from src/evaluator/program.go rename to evaluator/program.go diff --git a/src/evaluator/property.go b/evaluator/property.go similarity index 100% rename from src/evaluator/property.go rename to evaluator/property.go diff --git a/src/evaluator/return.go b/evaluator/return.go similarity index 100% rename from src/evaluator/return.go rename to evaluator/return.go diff --git a/src/evaluator/string.go b/evaluator/string.go similarity index 100% rename from src/evaluator/string.go rename to evaluator/string.go diff --git a/src/evaluator/switch.go b/evaluator/switch.go similarity index 100% rename from src/evaluator/switch.go rename to evaluator/switch.go diff --git a/src/evaluator/ternary.go b/evaluator/ternary.go similarity index 100% rename from src/evaluator/ternary.go rename to evaluator/ternary.go diff --git a/src/evaluator/this.go b/evaluator/this.go similarity index 100% rename from src/evaluator/this.go rename to evaluator/this.go diff --git a/src/evaluator/while.go b/evaluator/while.go similarity index 100% rename from src/evaluator/while.go rename to evaluator/while.go diff --git a/src/ghost/ghost.go b/ghost/ghost.go similarity index 100% rename from src/ghost/ghost.go rename to ghost/ghost.go diff --git a/src/go.mod b/go.mod similarity index 100% rename from src/go.mod rename to go.mod diff --git a/src/go.sum b/go.sum similarity index 100% rename from src/go.sum rename to go.sum diff --git a/src/library/functions/print.go b/library/functions/print.go similarity index 100% rename from src/library/functions/print.go rename to library/functions/print.go diff --git a/src/library/functions/type.go b/library/functions/type.go similarity index 100% rename from src/library/functions/type.go rename to library/functions/type.go diff --git a/src/library/library.go b/library/library.go similarity index 100% rename from src/library/library.go rename to library/library.go diff --git a/src/library/modules/console.go b/library/modules/console.go similarity index 100% rename from src/library/modules/console.go rename to library/modules/console.go diff --git a/src/library/modules/ghost.go b/library/modules/ghost.go similarity index 100% rename from src/library/modules/ghost.go rename to library/modules/ghost.go diff --git a/src/library/modules/http.go b/library/modules/http.go similarity index 100% rename from src/library/modules/http.go rename to library/modules/http.go diff --git a/src/library/modules/io.go b/library/modules/io.go similarity index 100% rename from src/library/modules/io.go rename to library/modules/io.go diff --git a/src/library/modules/math.go b/library/modules/math.go similarity index 100% rename from src/library/modules/math.go rename to library/modules/math.go diff --git a/src/library/modules/modules.go b/library/modules/modules.go similarity index 100% rename from src/library/modules/modules.go rename to library/modules/modules.go diff --git a/src/library/modules/os.go b/library/modules/os.go similarity index 100% rename from src/library/modules/os.go rename to library/modules/os.go diff --git a/src/library/modules/random.go b/library/modules/random.go similarity index 100% rename from src/library/modules/random.go rename to library/modules/random.go diff --git a/src/library/modules/time.go b/library/modules/time.go similarity index 100% rename from src/library/modules/time.go rename to library/modules/time.go diff --git a/src/log/log.go b/log/log.go similarity index 100% rename from src/log/log.go rename to log/log.go diff --git a/src/object/boolean.go b/object/boolean.go similarity index 100% rename from src/object/boolean.go rename to object/boolean.go diff --git a/src/object/break.go b/object/break.go similarity index 100% rename from src/object/break.go rename to object/break.go diff --git a/src/object/class.go b/object/class.go similarity index 100% rename from src/object/class.go rename to object/class.go diff --git a/src/object/continue.go b/object/continue.go similarity index 100% rename from src/object/continue.go rename to object/continue.go diff --git a/src/object/environment.go b/object/environment.go similarity index 100% rename from src/object/environment.go rename to object/environment.go diff --git a/src/object/error.go b/object/error.go similarity index 100% rename from src/object/error.go rename to object/error.go diff --git a/src/object/function.go b/object/function.go similarity index 100% rename from src/object/function.go rename to object/function.go diff --git a/src/object/instance.go b/object/instance.go similarity index 100% rename from src/object/instance.go rename to object/instance.go diff --git a/src/object/library_function.go b/object/library_function.go similarity index 100% rename from src/object/library_function.go rename to object/library_function.go diff --git a/src/object/library_module.go b/object/library_module.go similarity index 100% rename from src/object/library_module.go rename to object/library_module.go diff --git a/src/object/library_property.go b/object/library_property.go similarity index 100% rename from src/object/library_property.go rename to object/library_property.go diff --git a/src/object/list.go b/object/list.go similarity index 100% rename from src/object/list.go rename to object/list.go diff --git a/src/object/map.go b/object/map.go similarity index 100% rename from src/object/map.go rename to object/map.go diff --git a/src/object/null.go b/object/null.go similarity index 100% rename from src/object/null.go rename to object/null.go diff --git a/src/object/number.go b/object/number.go similarity index 100% rename from src/object/number.go rename to object/number.go diff --git a/src/object/object.go b/object/object.go similarity index 100% rename from src/object/object.go rename to object/object.go diff --git a/src/object/return.go b/object/return.go similarity index 100% rename from src/object/return.go rename to object/return.go diff --git a/src/object/scope.go b/object/scope.go similarity index 100% rename from src/object/scope.go rename to object/scope.go diff --git a/src/object/string.go b/object/string.go similarity index 100% rename from src/object/string.go rename to object/string.go diff --git a/src/parser/assign.go b/parser/assign.go similarity index 100% rename from src/parser/assign.go rename to parser/assign.go diff --git a/src/parser/block.go b/parser/block.go similarity index 100% rename from src/parser/block.go rename to parser/block.go diff --git a/src/parser/boolean.go b/parser/boolean.go similarity index 100% rename from src/parser/boolean.go rename to parser/boolean.go diff --git a/src/parser/break.go b/parser/break.go similarity index 100% rename from src/parser/break.go rename to parser/break.go diff --git a/src/parser/call.go b/parser/call.go similarity index 100% rename from src/parser/call.go rename to parser/call.go diff --git a/src/parser/class.go b/parser/class.go similarity index 100% rename from src/parser/class.go rename to parser/class.go diff --git a/src/parser/compound.go b/parser/compound.go similarity index 100% rename from src/parser/compound.go rename to parser/compound.go diff --git a/src/parser/continue.go b/parser/continue.go similarity index 100% rename from src/parser/continue.go rename to parser/continue.go diff --git a/src/parser/dot.go b/parser/dot.go similarity index 100% rename from src/parser/dot.go rename to parser/dot.go diff --git a/src/parser/expression.go b/parser/expression.go similarity index 100% rename from src/parser/expression.go rename to parser/expression.go diff --git a/src/parser/for.go b/parser/for.go similarity index 100% rename from src/parser/for.go rename to parser/for.go diff --git a/src/parser/function.go b/parser/function.go similarity index 100% rename from src/parser/function.go rename to parser/function.go diff --git a/src/parser/group.go b/parser/group.go similarity index 100% rename from src/parser/group.go rename to parser/group.go diff --git a/src/parser/identifier.go b/parser/identifier.go similarity index 100% rename from src/parser/identifier.go rename to parser/identifier.go diff --git a/src/parser/if.go b/parser/if.go similarity index 100% rename from src/parser/if.go rename to parser/if.go diff --git a/src/parser/import.go b/parser/import.go similarity index 100% rename from src/parser/import.go rename to parser/import.go diff --git a/src/parser/index.go b/parser/index.go similarity index 100% rename from src/parser/index.go rename to parser/index.go diff --git a/src/parser/infix.go b/parser/infix.go similarity index 100% rename from src/parser/infix.go rename to parser/infix.go diff --git a/src/parser/list.go b/parser/list.go similarity index 100% rename from src/parser/list.go rename to parser/list.go diff --git a/src/parser/map.go b/parser/map.go similarity index 100% rename from src/parser/map.go rename to parser/map.go diff --git a/src/parser/null.go b/parser/null.go similarity index 100% rename from src/parser/null.go rename to parser/null.go diff --git a/src/parser/number.go b/parser/number.go similarity index 100% rename from src/parser/number.go rename to parser/number.go diff --git a/src/parser/parser.go b/parser/parser.go similarity index 100% rename from src/parser/parser.go rename to parser/parser.go diff --git a/src/parser/parser_test.go b/parser/parser_test.go similarity index 100% rename from src/parser/parser_test.go rename to parser/parser_test.go diff --git a/src/parser/prefix.go b/parser/prefix.go similarity index 100% rename from src/parser/prefix.go rename to parser/prefix.go diff --git a/src/parser/return.go b/parser/return.go similarity index 100% rename from src/parser/return.go rename to parser/return.go diff --git a/src/parser/statement.go b/parser/statement.go similarity index 100% rename from src/parser/statement.go rename to parser/statement.go diff --git a/src/parser/string.go b/parser/string.go similarity index 100% rename from src/parser/string.go rename to parser/string.go diff --git a/src/parser/switch.go b/parser/switch.go similarity index 100% rename from src/parser/switch.go rename to parser/switch.go diff --git a/src/parser/ternary.go b/parser/ternary.go similarity index 100% rename from src/parser/ternary.go rename to parser/ternary.go diff --git a/src/parser/this.go b/parser/this.go similarity index 100% rename from src/parser/this.go rename to parser/this.go diff --git a/src/parser/while.go b/parser/while.go similarity index 100% rename from src/parser/while.go rename to parser/while.go diff --git a/src/repl/repl.go b/repl/repl.go similarity index 100% rename from src/repl/repl.go rename to repl/repl.go diff --git a/src/scanner/scanner.go b/scanner/scanner.go similarity index 100% rename from src/scanner/scanner.go rename to scanner/scanner.go diff --git a/src/scanner/scanner_test.go b/scanner/scanner_test.go similarity index 100% rename from src/scanner/scanner_test.go rename to scanner/scanner_test.go diff --git a/src/token/token.go b/token/token.go similarity index 100% rename from src/token/token.go rename to token/token.go diff --git a/src/token/token_test.go b/token/token_test.go similarity index 100% rename from src/token/token_test.go rename to token/token_test.go diff --git a/src/value/value.go b/value/value.go similarity index 100% rename from src/value/value.go rename to value/value.go diff --git a/src/version/version.go b/version/version.go similarity index 100% rename from src/version/version.go rename to version/version.go From c64b175d46263348e827a2e28820e73770e1ff0a Mon Sep 17 00:00:00 2001 From: "Shea Lewis (Kai)" <355659+kaidesu@users.noreply.github.com> Date: Thu, 5 Oct 2023 23:57:35 -0700 Subject: [PATCH 3/3] update test action --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 17c65b4..4ae6f90 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,6 @@ jobs: - name: Get dependencies run: | - cd src go get -v -t -d ./... if [ -f Gopkg.toml ]; then curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh