mirror of
https://github.com/Kugelschieber/asl.git
synced 2026-01-18 12:00:25 +00:00
Fixed ! operator and negative value prefix (e.g. -100).
This commit is contained in:
@@ -379,10 +379,20 @@ func parseExpression(out bool) string {
|
||||
func parseIdentifier() string {
|
||||
output := ""
|
||||
|
||||
if seek("(") {
|
||||
if seek("(") && !accept("!") && !accept("-") {
|
||||
name := get().token
|
||||
next()
|
||||
output = "("+parseFunctionCall(false, name)+")"
|
||||
} else if accept("!") || accept("-") {
|
||||
output = get().token
|
||||
next()
|
||||
|
||||
if !accept("(") {
|
||||
output += get().token
|
||||
next()
|
||||
} else {
|
||||
output += parseTerm()
|
||||
}
|
||||
} else {
|
||||
output = get().token
|
||||
next()
|
||||
|
||||
@@ -68,7 +68,7 @@ func TestParserAssignResult(t *testing.T) {
|
||||
|
||||
func TestParserExpression(t *testing.T) {
|
||||
got := getCompiled(t, "test/parser_expression.asl")
|
||||
want := "x = (1+(2+3))/(6*(someVariable+99-100))-(20)+anotherVariable+([] call foo);\n"
|
||||
want := "x = -(1+(2+3))/(6*(someVariable+99-100))-(20)+!anotherVariable+([] call foo);\n"
|
||||
|
||||
equal(t, got, want)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user