@katnip-org/compiler 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +5 -0
- package/README.md +42 -0
- package/build/cli.d.ts +2 -0
- package/build/cli.js +141 -0
- package/build/cli.js.map +1 -0
- package/build/codegen/SB3Generator.d.ts +1 -0
- package/build/codegen/SB3Generator.js +2 -0
- package/build/codegen/SB3Generator.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.js +26 -0
- package/build/index.js.map +1 -0
- package/build/ir/IRGenerator.d.ts +1 -0
- package/build/ir/IRGenerator.js +2 -0
- package/build/ir/IRGenerator.js.map +1 -0
- package/build/ir/IRNode.d.ts +1 -0
- package/build/ir/IRNode.js +2 -0
- package/build/ir/IRNode.js.map +1 -0
- package/build/lexer/Lexer.d.ts +69 -0
- package/build/lexer/Lexer.js +441 -0
- package/build/lexer/Lexer.js.map +1 -0
- package/build/lexer/LexerState.d.ts +14 -0
- package/build/lexer/LexerState.js +16 -0
- package/build/lexer/LexerState.js.map +1 -0
- package/build/lexer/Token.d.ts +105 -0
- package/build/lexer/Token.js +114 -0
- package/build/lexer/Token.js.map +1 -0
- package/build/parser/AST-nodes.d.ts +230 -0
- package/build/parser/AST-nodes.js +10 -0
- package/build/parser/AST-nodes.js.map +1 -0
- package/build/parser/BindingPowerTable.d.ts +8 -0
- package/build/parser/BindingPowerTable.js +37 -0
- package/build/parser/BindingPowerTable.js.map +1 -0
- package/build/parser/Parser.d.ts +208 -0
- package/build/parser/Parser.js +1215 -0
- package/build/parser/Parser.js.map +1 -0
- package/build/semantic/InternalTypes.d.ts +43 -0
- package/build/semantic/InternalTypes.js +95 -0
- package/build/semantic/InternalTypes.js.map +1 -0
- package/build/semantic/SemanticAnalyzer.d.ts +109 -0
- package/build/semantic/SemanticAnalyzer.js +998 -0
- package/build/semantic/SemanticAnalyzer.js.map +1 -0
- package/build/semantic/StdlibLoader.d.ts +18 -0
- package/build/semantic/StdlibLoader.js +42 -0
- package/build/semantic/StdlibLoader.js.map +1 -0
- package/build/semantic/SymbolTable.d.ts +64 -0
- package/build/semantic/SymbolTable.js +28 -0
- package/build/semantic/SymbolTable.js.map +1 -0
- package/build/utils/ErrorReporter.d.ts +29 -0
- package/build/utils/ErrorReporter.js +84 -0
- package/build/utils/ErrorReporter.js.map +1 -0
- package/build/utils/Logger.d.ts +32 -0
- package/build/utils/Logger.js +62 -0
- package/build/utils/Logger.js.map +1 -0
- package/build/utils/colors.d.ts +8 -0
- package/build/utils/colors.js +14 -0
- package/build/utils/colors.js.map +1 -0
- package/package.json +58 -0
- package/stdlib/clone.knip +5 -0
- package/stdlib/console.knip +6 -0
- package/stdlib/control.knip +3 -0
- package/stdlib/dict.knip +7 -0
- package/stdlib/events.knip +3 -0
- package/stdlib/list.knip +10 -0
- package/stdlib/looks.knip +4 -0
- package/stdlib/math.knip +7 -0
- package/stdlib/motion.knip +25 -0
- package/stdlib/pen.knip +14 -0
- package/stdlib/prelude.knip +25 -0
- package/stdlib/str.knip +3 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#> motion.knip ~ sprite motion blocks. <#
|
|
2
|
+
|
|
3
|
+
public enum Target { RANDOM, MOUSE }
|
|
4
|
+
public enum RotationStyle { LEFT, RIGHT }
|
|
5
|
+
|
|
6
|
+
proc move(@opcode = "motion_movesteps", steps: num) -> void {}
|
|
7
|
+
proc turn(@opcode = "motion_turnright", degrees: num) -> void {}
|
|
8
|
+
|
|
9
|
+
proc goTo(@opcode = "motion_goto", position: Target | str) -> void {}
|
|
10
|
+
proc goTo(@opcode = "motion_gotoxy", x: num, y: num) -> void {}
|
|
11
|
+
proc glideTo(@opcode = "motion_glideto", time: num, position: Target | str) -> void {}
|
|
12
|
+
proc glideTo(@opcode = "motion_glidetoxy", time: num, x: num, y: num) -> void {}
|
|
13
|
+
|
|
14
|
+
proc point(@opcode = "motion_pointindirection", degrees: num) -> void {}
|
|
15
|
+
proc point(@opcode = "motion_pointtowards", target: Target) -> void {}
|
|
16
|
+
|
|
17
|
+
proc changeX(@opcode = "motion_changexby", dX: num) -> void {}
|
|
18
|
+
proc setX(@opcode = "motion_setx", x: num) -> void {}
|
|
19
|
+
proc changeY(@opcode = "motion_changeyby", dY: num) -> void {}
|
|
20
|
+
proc setY(@opcode = "motion_sety", y: num) -> void {}
|
|
21
|
+
|
|
22
|
+
proc ifOnEdgeBounce(@opcode = "motion_ifonedgebounce") -> void {}
|
|
23
|
+
proc setRotationStyle(@opcode = "motion_setrotationstyle", style: RotationStyle) -> void {}
|
|
24
|
+
|
|
25
|
+
proc getPosition(@opcode = "katnip_motion_position") -> (num, num) {}
|
package/stdlib/pen.knip
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#> pen.knip ~ pen extension blocks. <#
|
|
2
|
+
|
|
3
|
+
public enum ColorParam { COLOR, SATURATION, BRIGHTNESS, TRANSPARENCY }
|
|
4
|
+
|
|
5
|
+
proc down(@opcode = "pen_penDown") -> void {}
|
|
6
|
+
proc up(@opcode = "pen_penUp") -> void {}
|
|
7
|
+
proc clear(@opcode = "pen_clear") -> void {}
|
|
8
|
+
proc setHex(@opcode = "pen_setPenColorToColor", hex: str) -> void {}
|
|
9
|
+
|
|
10
|
+
proc setAttr(@opcode = "pen_setPenColorParamTo", attr: ColorParam, value: num) -> void {}
|
|
11
|
+
proc changeAttr(@opcode = "pen_changePenColorParamBy", attr: ColorParam, dA: num) -> void {}
|
|
12
|
+
|
|
13
|
+
proc setSize(@opcode = "pen_setPenSizeTo", size: num) -> void {}
|
|
14
|
+
proc changeSize(@opcode = "pen_changePenSizeBy", dS: num) -> void {}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#> prelude.knip ~ bare global builtins, available without a namespace. <#
|
|
2
|
+
|
|
3
|
+
proc typeof(@opcode = "katnip_typeof", value: any) -> str {} # TODO: use the katnip one
|
|
4
|
+
|
|
5
|
+
# casts
|
|
6
|
+
proc Num(@opcode = "katnip_cast_num", value: any) -> num {}
|
|
7
|
+
proc Str(@opcode = "katnip_cast_str", value: any) -> str {}
|
|
8
|
+
proc Bool(@opcode = "katnip_cast_bool", value: any) -> bool {}
|
|
9
|
+
proc List(@opcode = "katnip_cast_list", value: any) -> list<str> {}
|
|
10
|
+
|
|
11
|
+
proc wait(@opcode = "control_wait", seconds: num) -> void {}
|
|
12
|
+
|
|
13
|
+
# iter helpers
|
|
14
|
+
proc range(@opcode = "katnip_range", stop: num) -> list<num> {}
|
|
15
|
+
proc range(@opcode = "katnip_range", start: num, stop: num, step: num = 1) -> list<num> {}
|
|
16
|
+
|
|
17
|
+
proc zip(@opcode = "katnip_zip", l1: list<T>, l2: list<U>) -> (list<T>, list<U>) {}
|
|
18
|
+
proc enumerate(@opcode = "katnip_enumerate", items: list<T>) -> (list<num>, list<T>) {}
|
|
19
|
+
|
|
20
|
+
# constants
|
|
21
|
+
public true: bool = "true" == "true";
|
|
22
|
+
public false: bool = "false" == "";
|
|
23
|
+
|
|
24
|
+
# misc
|
|
25
|
+
proc len(@opcode = "operator_length", input: str) -> num {}
|
package/stdlib/str.knip
ADDED