-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #10 from mystborn/dev
Dev
- Loading branch information
Showing
231 changed files
with
13,190 additions
and
15,241 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,55 @@ | ||
# TaffyScript | ||
## What is TaffyScript? | ||
Taffy is a dynamic programming language based heavily off of Gamemaker language, | ||
which is the scripting language used inside of the game engine Gamemaker. For more info, check out the [wiki](https://github.com/mystborn/TaffyScript/wiki). | ||
TaffyScript is a dynamic programming language designed to be embedded into .NET applications. The primary purpose of the language is to be used for implementing game logic, and for the easy addition of mod support. However, it can be used as a general purpose language if desired. Originally it was based off of the [GameMaker Language](https://docs.yoyogames.com/source/dadiospice/002_reference/001_gml%20language%20overview/), but it no longer bares much resemblance. For more info, check out the [wiki](https://github.com/mystborn/TaffyScript/wiki). | ||
|
||
_Psst. I've added something to the contributing section of this page. Please check it out._ | ||
## Nuget | ||
Both the TaffyScript implementation and it's base class library are available via nuget: | ||
* https://www.nuget.org/packages/TaffyScript/ | ||
* https://www.nuget.org/packages/TaffyScript.BCL/ | ||
|
||
You can use these to use TaffyScript projects inside of .NET projects | ||
|
||
## Features | ||
* Built in C# | ||
* Compiles into a valid .NET assembly | ||
* Dynamic Typing | ||
* Does not use DLR | ||
* Accessable from existing .NET projects | ||
* Import external .NET methods and types | ||
* Basic Reflection | ||
|
||
## Sounds Great! How Can I Get it? | ||
You can now download a precompiled binary from the [releases](https://github.com/mystborn/TaffyScript/releases) page! Please note that TaffyScript is windows only. | ||
|
||
## Example Code | ||
```cs | ||
script main { | ||
show_debug_message("Hello, World!"); | ||
var user = new obj_user(); | ||
print("Hello, World!"); | ||
var user = new obj_user("Script"); | ||
print_user(user); | ||
user.name = "Taffy"; | ||
user.destroy(); | ||
show_debug_message("Closing..."); | ||
print_user(user); | ||
print("Closing..."); | ||
} | ||
|
||
script print_user(user) { | ||
print("User: " + user.name); | ||
} | ||
|
||
object obj_user { | ||
event create { | ||
name = ""; | ||
script create(name) { | ||
self.name = ""; | ||
} | ||
|
||
event destroy { | ||
show_debug_message("Goodbye, " + name); | ||
script greet { | ||
print("Hello, " + name); | ||
} | ||
} | ||
|
||
// Output: | ||
// Hello World! | ||
// Goodbye, Taffy | ||
// User: Script | ||
// User: Taffy | ||
// Closing... | ||
``` | ||
|
||
|
@@ -51,4 +73,17 @@ Both the TaffyScript implementation and it's base class library are available vi | |
You can use these to use TaffyScript projects inside of .NET project | ||
|
||
## Want to contribute? | ||
The easiest way to contibute is to look at issues with the `opinion wanted` label. These are issues asking about feature requests that I want some user input on. Otherwise, check out the contributing.ms file in the root of the repo. If you have any further questions, please don't hesitate to ask! | ||
Occasionally I'll add issues with the `opinion wanted` label. These are issues asking about new features or language changes that I want some additional feedback on. The easiest way to contribute is to comment on those. | ||
|
||
Alternatively, I have a very, _very_, rough draft of my plans for the language on [this](https://trello.com/b/suLDsBDJ/taffyscript) Trello board. If you want to pick anything up from that, it would certainly be a big help. If you have any further questions, you can ask me on Discord (I prefer this way, as I'm almost always online). My username is mystborn#0264. Alternatively, you can shoot me an email at [email protected], but I don't check it as often as I should. | ||
|
||
## General Roadmap | ||
The following are some general things I'd like to add to the language at some point in the future. A slightly more detailed roadmap can be found on the [trello](https://trello.com/b/suLDsBDJ/taffyscript) page. | ||
|
||
* Documentation Website (High Priority) | ||
* Just a general github pages site detailing how to use the language as well as major library documentation | ||
* Tests | ||
* Currently the tests make sure certain things work, but a larger set of tests is needed to make sure things _break in the right way_. | ||
* Runtime Interpreter | ||
* Base Class Library | ||
* The BCL is extremely barebones currently. For example, it doesn't have any file handling, date/time handling, or networking scripts. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.