You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+30-9Lines changed: 30 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -13,27 +13,36 @@ An experimental language based on Skript (with no pre-eminent DSL dependencies)
13
13
14
14
### Visit the [documentation](https://moderocky.gitbook.io/byteskript/) and wiki [here](https://moderocky.gitbook.io/byteskript/).
15
15
16
-
ByteSkript draws heavily from the original [Skript](https://github.com/SkriptLang/Skript/) language design, with some minor structural adaptations to strengthen the language grammar, and to remove some unnecessary programming jargon. ByteSkript also aims to increase interoperability with existing JVM languages.
16
+
ByteSkript draws heavily from the original [Skript](https://github.com/SkriptLang/Skript/) language design, with some minor structural adaptations to strengthen the language grammar, to remove some unnecessary jargon and make the language more reliable. ByteSkript also increases interoperability with existing JVM languages.
17
17
18
18
{% hint style="info" %}
19
19
**ByteSkript is not affiliated with**[**SkriptLang**](https://github.com/SkriptLang/Skript/)**.**\
20
-
****ByteSkript is a completely new implementation of the general guide and style of the 'Skript' language, with its own language specification, goals and licence. 
20
+
ByteSkript is a completely **new** implementation of the general guide and style of the 'Skript' language, with its own language specification, goals and licence.
21
21
22
22
For clarity: SkriptLang's Skript implementation will be referred to as 'original' or 'minecraft' Skript.
23
23
{% endhint %}
24
24
25
25
### Goals
26
26
27
-
1. Provide a more efficient, compiled alternative to original Skript.
28
-
2. Provide a stricter, stronger interpretation of the language.
29
-
3. Provide a version of Skript with no built-in domain dependencies.
30
-
4. Provide a version of Skript applicable to multiple domains.
27
+
1. Provide a more efficient, compiled alternative to original Skript.\
28
+
Code will be compiled to JVM bytecode, with efficiency approaching or exceeding bytecode produced by `javac`.
29
+
2. Provide a stricter, stronger interpretation of the Skript language.\
30
+
Structures and language elements follow stricter rules to prevent inconsistency.
31
+
3. Provide a version of Skript with no built-in domain dependencies.\
32
+
No third-party libraries should be required to run scripts.
33
+
4. Provide a version of Skript applicable to multiple domains.\
34
+
An extensible API should be provided to allow creation of syntax libraries.
31
35
32
36
### Non-goals
33
37
34
-
1. Not a replacement of the original Skript.
35
-
2. Provide no built-in domain-specific functionality.
36
-
3. No alteration to language fundamentals.
38
+
1. Not a replacement of the original Skript.\
39
+
There will be no built-in minecraft functionality.
40
+
2. Provide no built-in domain-specific functionality.\
41
+
The built-in Skript language library will have no syntax for third-party libraries or domains.\
42
+
A minecraft server will not be required to run scripts.
43
+
3. No alteration to language fundamentals.\
44
+
The layout, look, readability and core language components should keep parity with original Skript.\
45
+
Some small changes will be made to improve readability and compile accuracy.
37
46
38
47
Skript is designed to be beginner-friendly. Ideally, a user with no experience should be able to read Skript code and understand its function. All instructions are written in basic English, avoiding niche programming terms and symbols wherever possible.
39
48
@@ -115,3 +124,15 @@ Syntax methods are given an annotation, and the class they belong to is register
115
124
{% hint style="info" %}
116
125
The v2 API is used internally by all of the I/O handler syntax. A lot of these are also forced to extract or bridge.
117
126
{% endhint %}
127
+
128
+
### Libraries Used
129
+
130
+
*[ObjectWeb ASM](https://asm.ow2.io)\
131
+
A bytecode-assembling library used internally by the Java JDK.\
132
+
Used for compiling complex syntax.
133
+
*[Mirror](https://github.com/Moderocky/Mirror)\
134
+
An on-the-fly member access compiler, alternative to Java reflection.\
135
+
Used for compiling dynamic method handles at runtime.
0 commit comments