diff --git a/bin/main b/bin/main index c2d0d60..43e9b90 100755 Binary files a/bin/main and b/bin/main differ diff --git a/in/simple.asl b/in/simple.asl index 78f034e..425af31 100644 --- a/in/simple.asl +++ b/in/simple.asl @@ -1,35 +1,3 @@ -var _a = 1; -var _b = 2; +while true { -func myFunc(_x, _y) { - if _x < _y { - myFunc(_y, _x); - } -} - -if _a < _b { - if _b < _a { - myFunc(_a, _b+9-(2/2)); - } -} - -if (_a+_b)/2 > 10 { - hint("a"); -} else { - myFunc("multiple", "statements"); - hint("b"); -} - -myFunc(_a, _b); -myFunc(_a, _b); - -var _x = 3; - -switch _x { - case 1: - case 2: - somefunc(2); - default: - somefunc(3); - _x = -1; -} +} \ No newline at end of file diff --git a/in/statements.asl b/in/statements.asl index ab9f9a3..5dab032 100644 --- a/in/statements.asl +++ b/in/statements.asl @@ -1,3 +1,57 @@ -each array { - foo(_x); +func foo(_out) { + hint(_out); } + +func bar(_out) { + hint(reverse(_out)); +} + +func inlineFunction(_multiple, _parameters, _should, _work) { + _a = "Not working yet..."; +} + +var _array; + +each array { + if _x > 200 { + foo(_x); + } else { + bar("nope", _x); + } +} + +var _x = 123; + +for var _i = 0; _i < 10; _i = _i+1; { + _x = _x+1; + _foo = "Foo"; + _bar = "Bar"; + fun(_foo, _bar); +} + +switch _x { + case 1: + case 2: + somefunc(2); + default: + somefunc(3); + _x = -1; +} + +func myFunc(_x, _y) { + if _x < _y { + myFunc(_y, _x); + hint("Rekursiv"); + } +} + +if _a < _b { + if _b < _a { + myFunc(_a, _b+9-(2/2)); + myFunc(_a, _b); + myFunc(_a, _b); + } +} + +myFunc(_a, _b); +myFunc(_a, _b); diff --git a/pkg/linux_amd64/asl.a b/pkg/linux_amd64/asl.a index 7b2e623..a002091 100644 Binary files a/pkg/linux_amd64/asl.a and b/pkg/linux_amd64/asl.a differ diff --git a/src/asl/parser.go b/src/asl/parser.go index 7f3657e..1abf0b7 100644 --- a/src/asl/parser.go +++ b/src/asl/parser.go @@ -156,7 +156,7 @@ func parseForeach() { appendOut("{\n") parseBlock() expect("}") - appendOut("} forEach ("+expr+");") + appendOut("} forEach ("+expr+");\n") } func parseFunction() { @@ -183,7 +183,7 @@ func parseFunctionParameter() { for !accept(")") { name := get().token next() - appendOut(name+" = this select "+strconv.FormatInt(i, 10)+";\n") + appendOut(name+" = _this select "+strconv.FormatInt(i, 10)+";\n") i++ if !accept(")") { diff --git a/src/asl/tokenizer.go b/src/asl/tokenizer.go index 29520db..e9e5526 100644 --- a/src/asl/tokenizer.go +++ b/src/asl/tokenizer.go @@ -1,7 +1,6 @@ package asl import ( - "fmt" "strings" ) @@ -61,13 +60,6 @@ func Tokenize(code []byte) []Token { } } - // TEST - fmt.Println("Tokens:") - for i := range tokens { - fmt.Println(tokens[i].token) - } - fmt.Println("---") - return tokens }