diff options
Diffstat (limited to 'src/usr/diag/prdf/common/rule/prdrCompile.y')
-rw-r--r-- | src/usr/diag/prdf/common/rule/prdrCompile.y | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/usr/diag/prdf/common/rule/prdrCompile.y b/src/usr/diag/prdf/common/rule/prdrCompile.y index a76df8e13..0553e8c5a 100644 --- a/src/usr/diag/prdf/common/rule/prdrCompile.y +++ b/src/usr/diag/prdf/common/rule/prdrCompile.y @@ -684,7 +684,7 @@ rule: PRDR_RULE PRDR_ID '{' ruleexpr ';' '}' ';' | PRDR_RULE PRDR_ID '{' PRDR_ID ':' ruleexpr ';' '}' ';' { g_rules[*$2] = new ExprOp1(Prdr::RULE, - new ExprAttnLink($4, $6, NULL, NULL, NULL, NULL, NULL, NULL)); + new ExprAttnLink($4, $6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)); delete $2; delete $4; } @@ -693,7 +693,7 @@ rule: PRDR_RULE PRDR_ID '{' ruleexpr ';' '}' ';' '}' ';' { g_rules[*$2] = new ExprOp1(Prdr::RULE, - new ExprAttnLink($4, $6, $8, $10, NULL, NULL, NULL, NULL)); + new ExprAttnLink($4, $6, $8, $10, NULL, NULL, NULL, NULL, NULL, NULL)); delete $2; delete $4; delete $8; @@ -704,7 +704,7 @@ rule: PRDR_RULE PRDR_ID '{' ruleexpr ';' '}' ';' '}' ';' { g_rules[*$2] = new ExprOp1(Prdr::RULE, - new ExprAttnLink($4, $6, $8, $10, $12, $14, NULL, NULL)); + new ExprAttnLink($4, $6, $8, $10, $12, $14, NULL, NULL, NULL, NULL)); delete $2; delete $4; delete $8; @@ -717,13 +717,29 @@ rule: PRDR_RULE PRDR_ID '{' ruleexpr ';' '}' ';' '}' ';' { g_rules[*$2] = new ExprOp1(Prdr::RULE, - new ExprAttnLink($4, $6, $8, $10, $12, $14, $16, $18)); + new ExprAttnLink($4, $6, $8, $10, $12, $14, $16, $18, NULL, NULL)); delete $2; delete $4; delete $8; delete $12; delete $16; } + | PRDR_RULE PRDR_ID '{' PRDR_ID ':' ruleexpr ';' + PRDR_ID ':' ruleexpr ';' + PRDR_ID ':' ruleexpr ';' + PRDR_ID ':' ruleexpr ';' + PRDR_ID ':' ruleexpr ';' + '}' ';' + { + g_rules[*$2] = new ExprOp1(Prdr::RULE, + new ExprAttnLink($4, $6, $8, $10, $12, $14, $16, $18, $20, $22)); + delete $2; + delete $4; + delete $8; + delete $12; + delete $16; + delete $20; + } ; ruleexpr: ruleexpr_small { $$ = $1; } |