|
@@ -1849,8 +1849,18 @@ node_t *parse_call(list_t *tokens, size_t *pos) {
|
|
|
return a;
|
|
|
}
|
|
|
|
|
|
+node_t *parse_dereference(list_t *tokens, size_t *pos) {
|
|
|
+ if (MATCH(RAISE)) {
|
|
|
+ node_t *a = parse_dereference(tokens, pos);
|
|
|
+
|
|
|
+ return NODE1(DEREFERENCE, a);
|
|
|
+ }
|
|
|
+
|
|
|
+ return parse_call(tokens, pos);
|
|
|
+}
|
|
|
+
|
|
|
node_t *parse_postfix(list_t *tokens, size_t *pos) {
|
|
|
- node_t *a = parse_call(tokens, pos);
|
|
|
+ node_t *a = parse_dereference(tokens, pos);
|
|
|
|
|
|
if (CLIFF)
|
|
|
return a;
|
|
@@ -1916,10 +1926,6 @@ node_t *parse_unary(list_t *tokens, size_t *pos) {
|
|
|
node_t *a = parse_unary(tokens, pos);
|
|
|
|
|
|
return NODE1(BNOT, a);
|
|
|
- } else if (MATCH(RAISE)) {
|
|
|
- node_t *a = parse_unary(tokens, pos);
|
|
|
-
|
|
|
- return NODE1(DEREFERENCE, a);
|
|
|
} else if (MATCH(PLUSPLUS)) {
|
|
|
node_t *a = parse_postfix(tokens, pos);
|
|
|
|