summaryrefslogtreecommitdiff
path: root/src/tparse/tree-value.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/tparse/tree-value.go')
-rw-r--r--src/tparse/tree-value.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/tparse/tree-value.go b/src/tparse/tree-value.go
index ac91873..d851fdc 100644
--- a/src/tparse/tree-value.go
+++ b/src/tparse/tree-value.go
@@ -24,6 +24,8 @@ var UNARY_PRE = map[string]int {
"++": 2,
"--": 2,
"!": 6,
+ "len": 0,
+ "-": 0,
}
var UNARY_POST = map[string]int {
@@ -211,7 +213,14 @@ func parseBinaryOp(tokens *[]Token, tok, max int) (Node) {
}
} else if t.Type == AUGMENT {
order, prs := ORDER[t.Data]
- if prs == false || curl > 0 || brak > 0 || parn > 0 {
+ if t.Data == "-" {
+ _, prs := ORDER[(*tokens)[tok - 1].Data]
+ if prs || (*tokens)[tok - 1].Data == "return" {
+ continue
+ } else if order > highOrder {
+ high, highOrder = tok, order
+ }
+ } else if prs == false || curl > 0 || brak > 0 || parn > 0 {
continue
} else if order > highOrder {
high, highOrder = tok, order