resources/messages/attributeDescriptions/extends.html (33 lines of code) (raw):
<html>
<body>
Base implementation class or super rule for PSI classes. AST nodes produced by rules extending the same rule will be collapsed by parser.
<h2>Examples:</h2>
<pre><code>
{
extends(".*_expr")=expr
}
// due to "extends" attribute the AST is "flat"
expr ::= assign_expr
| conditional_group
| add_group
| between_expr
| mul_group
| unary_group
| exp_expr
| factorial_expr
| call_expr
| ref_expr
| primary_group
// improve PSI class hierarchy with common BinaryExpr class
// no parsing code is generated for fake rules
fake binary_expr ::= expression + {
methods = [
left="expression[0]"
right="expression[1]"]
}
add_expr ::= expr '+' expr {extends=binary_expr}
// stubs
stub_element ::= {extends="com.sample.StubBase<?>" stubClass="com.sample.StubElementStub"}
</code></pre>
</body>
</html>