summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2021-10-30 02:22:35 -0400
committerKyle Gunger <kgunger12@gmail.com>2021-10-30 02:22:35 -0400
commite7c01fe5ebcb8e30c229a41125cdb318e9adcf8a (patch)
tree738d0ee288471ce0d2981dd27e19d3b07607e1da
parentbe0f69df2c0fc4bc8f64e8d51aa06b4b56f3401d (diff)
[AST] Properly address "return"
-rw-r--r--src/tparse/tree-statement.go4
-rw-r--r--src/tparse/type.go1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/tparse/tree-statement.go b/src/tparse/tree-statement.go
index 9280253..262bd6f 100644
--- a/src/tparse/tree-statement.go
+++ b/src/tparse/tree-statement.go
@@ -184,6 +184,10 @@ func keywordStatement(tokens *[]Token, tok, max int) (Node, int) {
tmp.Data = (*tokens)[tok]
tok++
// Check for a numerical value and dip
+ case "return":
+ if (*tokens)[tok].Type != DELIMIT || (*tokens)[tok].Data == "{" || (*tokens)[tok].Data == "(" {
+ tmp, tok = parseValue(tokens, tok, max)
+ }
case "alloc", "salloc":
// Parse value list
tmp, tok = parseValueList(tokens, tok, max)
diff --git a/src/tparse/type.go b/src/tparse/type.go
index b4ab2fe..1e51889 100644
--- a/src/tparse/type.go
+++ b/src/tparse/type.go
@@ -102,6 +102,7 @@ var RESWORD = map[string]int{
"loop": KEYWORD,
"continue": KEYWORD,
"break": KEYWORD,
+ "return": KEYWORD,
"match": KEYWORD,
"case": KEYWORD,