Stable Build
If you have come here to learn more about Epoxy, or if you want to use the stable build, I suggest you go to this post before considering this build for production.
Unstable Build
This post is for the people who want to use the unstable release of Epoxy. This release may have a lot of issues, and may not always work as intended. Instead of pushing this to the stable build, I am now doing two separate systems so people using this asset in their game can have a stable version of Epoxy.
v1.5 Additions & Changes
To further the productivity of this language, I have implemented three new syntax features to use, all of them being listed below:
Repeat Keyword
The repeat
keyword allows you to iterate a block of code a given amount of times. In the example below, the as i,m
is an optional part of the syntax, which declares i
as the current iteration, and m
as the max number; the second variable name is optional as well
repeat 100 as i,m do
log(i,m) -- <1..100> 100
cls
Identifier Forcing
Using the `
token, you can encase any character inside two of these to turn it into an identifier
fn `Add Function`(`Number 1`,`Number 2`)
var `The Sum`: `Number 1` + `Number 2`
return `The Sum`
cls
log(`Add Function`(1,2)) -- 3
This also means you can do something like this:
var `var`: "var"
log(`var`) -- var
Multi-Index Syntax
You can now index an object multiple times without restating it
var Object: {
Number1: 1,
["Number 2"]: 2,
}
dvar N1, N2: Object{Number1, ["Number 2"]}
log(N1 + N2) -- 3
…and the changes:
Changes to null
& Unset Keyword
The null
token is no longer the equivalent of nil
, and instead it is now an internal object to this programming language. Any reference of nil present, even during runtime, the language will just convert it to the null
object instead. Due to the intended side effects of this, a new keyword was created to remove indexes from objects, this being the unset
keyword.
Example of this change:
var Object: {
[null]: "Hello!"
}
log(Object[null]) -- Hello!
unset Object[null]
log(Object[null]) -- null
This is one of the major changes that make this build unstable
String Sandboxing
This version of Epoxy now has a custom string object. This string object will inherit the methods of the string
library inside of Epoxy’s library. This change has led to many different changes being made in the code, and is most likely the buggiest feature in the language right now.
Release Information
Epoxy on GitHub (JavaScript Release), also has documentation; not up to date with v1.5 features
[Unstable Build] Epoxy on Roblox
Conclusions
If you find any bugs with this release, let me know and I will work on a patch for said bug. If you have any suggestions, I will review them and they could possibly end up in the language.