This commit is contained in:
Marvin Blum
2015-09-21 22:00:01 +02:00
parent 1c02007ac3
commit 316bbd5e2f
6 changed files with 392 additions and 392 deletions

BIN
bin/main

Binary file not shown.

Binary file not shown.

View File

@@ -164,12 +164,12 @@ func parseForeach() {
appendOut("{\n")
parseBlock()
expect("}")
appendOut("} forEach ("+expr+");\n")
appendOut("} forEach (" + expr + ");\n")
}
func parseFunction() {
expect("func")
appendOut(get().token+" = {\n")
appendOut(get().token + " = {\n")
next()
expect("(")
parseFunctionParameter()
@@ -183,7 +183,7 @@ func parseFunction() {
func parseFunctionParameter() {
// empty parameter list
if accept("{") {
return;
return
}
i := int64(0)
@@ -191,7 +191,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(")") {
@@ -238,10 +238,10 @@ func parseStatement() {
} else if name == "$" {
name = get().token
next()
parseBuildinFunctionCall(name);
parseBuildinFunctionCall(name)
} else {
parseFunctionCall()
appendOut(name+";\n")
appendOut(name + ";\n")
}
if !end() {
@@ -251,7 +251,7 @@ func parseStatement() {
func parseAssignment() {
expect("=")
appendOut(" = "+get().token)
appendOut(" = " + get().token)
next()
expect(";")
appendOut(";\n")
@@ -273,7 +273,7 @@ func parseBuildinFunctionCall(name string) {
expect(")")
appendOut("] ")
expect("(")
appendOut(name+" [")
appendOut(name + " [")
parseParameter()
expect(")")
expect(";")

View File

@@ -22,7 +22,7 @@ func accept(token string) bool {
func expect(token string) {
if !tokenEqual(token, get()) {
panic("Parse error, expected '"+token+"' but was '"+get().token+"'")
panic("Parse error, expected '" + token + "' but was '" + get().token + "'")
}
next()

View File

@@ -1,11 +1,11 @@
package asl
import (
"strings"
"fmt"
"strings"
)
type Token struct{
type Token struct {
token string
}
@@ -116,13 +116,13 @@ func skipMultiLineComment(code []byte, i int) int {
i++
}
return i+1
return i + 1
}
func byteArrayContains(haystack []byte, needle byte) bool {
for i := range haystack {
if haystack[i] == needle {
return true;
return true
}
}
@@ -132,7 +132,7 @@ func byteArrayContains(haystack []byte, needle byte) bool {
func stringArrayContains(haystack []string, needle string) bool {
for i := range haystack {
if haystack[i] == needle {
return true;
return true
}
}

View File

@@ -1,12 +1,12 @@
package main
import (
"io/ioutil"
"asl"
"fmt"
"io/ioutil"
)
func main(){
func main() {
// read test file
code, _ := ioutil.ReadFile("in/simple.asl")
token := asl.Tokenize(code)