| Extracted from Pike v7.8 release 866 at 2018-02-09.

[Top]
7.2::
LR
LR.rule

# Method LR.rule()->create()

Method create

  `void LR.rule(int nt, array(string|int) r, function|string|void a)`

Description

  Create a BNF rule.

Example

      The rule
      	   rule : nonterminal ":" symbols ";" { add_rule };
         might be created as
      	   rule(4, ({ 9, ";", 5, ";" }), "add_rule");
         where 4 corresponds to the nonterminal "rule", 9 to "nonterminal"
         and 5 to "symbols", and the function "add_rule" is too be called
         when this rule is reduced.

Parameter `nt`

  Non-terminal to reduce to.

Parameter `r`

  Symbol sequence that reduces to nt.

Parameter `a`

  Action to do when reducing according to this rule. function - Call this function. string - Call this function by name in the object given to the parser. The function is called with arguments corresponding to the values of the elements of the rule. The return value of the function will become the value of this non-terminal. The default rule is to return the first argument.