summaryrefslogtreecommitdiff
path: root/admin/grammars/c.by
diff options
context:
space:
mode:
Diffstat (limited to 'admin/grammars/c.by')
-rw-r--r--admin/grammars/c.by19
1 files changed, 15 insertions, 4 deletions
diff --git a/admin/grammars/c.by b/admin/grammars/c.by
index fa85689c13b..0fd8a33f25a 100644
--- a/admin/grammars/c.by
+++ b/admin/grammars/c.by
@@ -1113,8 +1113,8 @@ functionname
;
function-pointer
- : LPAREN STAR symbol RPAREN
- ( (concat "*" $3) )
+ : LPAREN STAR opt-symbol RPAREN
+ ( (concat "*" ,(car $3)) )
| LPAREN symbol RPAREN
( $2 )
;
@@ -1154,14 +1154,25 @@ type-cast-list
: open-paren typeformbase close-paren
;
+opt-brackets-after-symbol
+ : brackets-after-symbol
+ | ;; EMPTY
+ ;
+
brackets-after-symbol
: PAREN_BLCK
| BRACK_BLCK
;
multi-stage-dereference
- : namespace-symbol brackets-after-symbol PERIOD multi-stage-dereference ;; method call
- | namespace-symbol brackets-after-symbol MINUS GREATER multi-stage-dereference ;;method call
+ : namespace-symbol opt-brackets-after-symbol
+ PERIOD multi-stage-dereference ;; method call
+ | namespace-symbol opt-brackets-after-symbol
+ MINUS GREATER multi-stage-dereference ;;method call
+ | namespace-symbol opt-brackets-after-symbol
+ PERIOD namespace-symbol opt-brackets-after-symbol
+ | namespace-symbol opt-brackets-after-symbol
+ MINUS GREATER namespace-symbol opt-brackets-after-symbol
| namespace-symbol brackets-after-symbol
;