aboutsummaryrefslogtreecommitdiff
path: root/parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'parser.y')
-rw-r--r--parser.y17
1 files changed, 17 insertions, 0 deletions
diff --git a/parser.y b/parser.y
index a916cb3..e88fd22 100644
--- a/parser.y
+++ b/parser.y
@@ -98,6 +98,8 @@
%token <string> syFileName
%token <flag> syIPCFlag
+%token syInTranPayload
+
%left syPlus syMinus
%left syStar syDiv
@@ -365,6 +367,21 @@ TransTypeSpec : TypeSpec
$$->itServerType, $7);
$$->itServerType = $7;
}
+ | TransTypeSpec syInTranPayload syColon
+ syIdentifier syIdentifier
+{
+ $$ = $1;
+
+ if (($$->itTransType != strNULL) && !streql($$->itTransType, $4))
+ warn("conflicting translation types (%s, %s)",
+ $$->itTransType, $4);
+ $$->itTransType = $4;
+
+ if (($$->itInTransPayload != strNULL) && !streql($$->itInTransPayload, $5))
+ warn("conflicting in-translation functions (%s, %s)",
+ $$->itInTransPayload, $5);
+ $$->itInTransPayload = $5;
+}
| TransTypeSpec syOutTran syColon syIdentifier
syIdentifier syLParen syIdentifier syRParen
{