// ---- GeneratedTypes.java -----------------
//header.txt
package generated;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.PsiElement;
import com.intellij.lang.ASTNode;
import generated.psi.impl.*;
public interface GeneratedTypes {
IElementType BINARY = new IElementType("BINARY", null);
IElementType EXPRESSION = new IElementType("EXPRESSION", null);
IElementType OPERATOR = new IElementType("OPERATOR", null);
IElementType VALUE = new IElementType("VALUE", null);
IElementType ID = new IElementType("id", null);
IElementType LOWCASEKWD1 = new IElementType("lowcasekwd1", null);
IElementType MY_SOMETHING = new IElementType("something", null);
IElementType UPCASEKWD1 = new IElementType("UPCASEKWD1", null);
class Factory {
public static PsiElement createElement(ASTNode node) {
IElementType type = node.getElementType();
if (type == BINARY) {
return new XBinaryImpl(node);
}
else if (type == EXPRESSION) {
return new XExpressionImpl(node);
}
else if (type == OPERATOR) {
return new XOperatorImpl(node);
}
else if (type == VALUE) {
return new XValueImpl(node);
}
throw new AssertionError("Unknown element type: " + type);
}
}
}
// ---- XBinary.java -----------------
//header.txt
package generated.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface XBinary extends XComposite {
@NotNull
List<XExpression> getExpressionList();
@NotNull
XOperator getOperator();
@Nullable
List<XExpression> getAlias();
@NotNull
XExpression getLeft();
@Nullable
XExpression getRight();
@NotNull
XOperator getOp();
@NotNull
XValue getLeftLeft();
@Nullable
XValue getRightRight();
@Nullable
XExpression getLast();
@NotNull
XExpression getFirst();
@Nullable
XValue getRightLeft();
@Nullable
XValue getLeftRight();
@Nullable
XValue getBadIndex();
}
// ---- XExpression.java -----------------
//header.txt
package generated.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface XExpression extends XComposite {
@NotNull
List<XValue> getValueList();
}
// ---- XOperator.java -----------------
//header.txt
package generated.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface XOperator extends XComposite {
}
// ---- XRenameList.java -----------------
//header.txt
package generated.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface XRenameList extends XComposite {
@NotNull
List<XSomeChild> getSomeChildren();
@Nullable
XSomeChild getFirst();
@Nullable
PsiElement getFirstSmth();
@Nullable
XSomeChild getLast();
}
// ---- XSomeChild.java -----------------
//header.txt
package generated.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface XSomeChild extends XComposite {
@NotNull
XSomeGrandChild getSomeGrandChild();
@NotNull
PsiElement getSomething2();
@NotNull
PsiElement getSmth1();
@NotNull
PsiElement getSmth2();
}
// ---- XSomeGrandChild.java -----------------
//header.txt
package generated.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface XSomeGrandChild extends XComposite {
@NotNull
PsiElement getMySomething();
@Nullable
PsiElement getSomething2();
}
// ---- XSomeRoot.java -----------------
//header.txt
package generated.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface XSomeRoot extends XComposite {
@NotNull
XSomeChild getSomeChild();
@NotNull
PsiElement getChildSomething();
@NotNull
PsiElement getChildSomething2();
@NotNull
XSomeGrandChild getGrandChild();
@NotNull
PsiElement getGrandChildSomethin();
@Nullable
PsiElement getGrandChildSomethin2();
}
// ---- XTokenDefaults.java -----------------
//header.txt
package generated.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface XTokenDefaults extends XComposite {
@NotNull
PsiElement getNodef();
}
// ---- XValue.java -----------------
//header.txt
package generated.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface XValue extends XComposite {
@NotNull
PsiElement getId();
}
// ---- XBinaryImpl.java -----------------
//header.txt
package generated.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import static generated.GeneratedTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import generated.psi.*;
public class XBinaryImpl extends ASTWrapperPsiElement implements XBinary {
public XBinaryImpl(ASTNode node) {
super(node);
}
@Override
@NotNull
public List<XExpression> getExpressionList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, XExpression.class);
}
@Override
@NotNull
public XOperator getOperator() {
return findNotNullChildByClass(XOperator.class);
}
@Override
@Nullable
public List<XExpression> getAlias() {
return getExpressionList();
}
@Override
@NotNull
public XExpression getLeft() {
List<XExpression> p1 = getExpressionList();
return p1.get(0);
}
@Override
@Nullable
public XExpression getRight() {
List<XExpression> p1 = getExpressionList();
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@NotNull
public XOperator getOp() {
return getOperator();
}
@Override
@NotNull
public XValue getLeftLeft() {
List<XExpression> p1 = getExpressionList();
XExpression p2 = p1.get(0);
List<XValue> p3 = p2.getValueList();
return p3.get(0);
}
@Override
@Nullable
public XValue getRightRight() {
List<XExpression> p1 = getExpressionList();
XExpression p2 = p1.size() < 2 ? null : p1.get(1);
if (p2 == null) return null;
List<XValue> p3 = p2.getValueList();
return p3.size() < 2 ? null : p3.get(1);
}
@Override
@Nullable
public XExpression getLast() {
List<XExpression> p1 = getExpressionList();
return p1.isEmpty()? null : p1.get(p1.size() - 1);
}
@Override
@NotNull
public XExpression getFirst() {
List<XExpression> p1 = getExpressionList();
return p1.get(0);
}
@Override
@Nullable
public XValue getRightLeft() {
List<XExpression> p1 = getExpressionList();
XExpression p2 = p1.size() < 2 ? null : p1.get(1);
if (p2 == null) return null;
List<XValue> p3 = p2.getValueList();
return p3.get(0);
}
@Override
@Nullable
public XValue getLeftRight() {
List<XExpression> p1 = getExpressionList();
XExpression p2 = p1.get(0);
List<XValue> p3 = p2.getValueList();
return p3.size() < 2 ? null : p3.get(1);
}
@Override
@Nullable
public XValue getBadIndex() {
List<XExpression> p1 = getExpressionList();
XExpression p2 = p1.size() - 1 < bad_index ? null : p1.get(bad_index);
if (p2 == null) return null;
List<XValue> p3 = p2.getValueList();
return p3.size() - 1 < wrong_turn ? null : p3.get(wrong_turn);
}
}
// ---- XExpressionImpl.java -----------------
//header.txt
package generated.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import static generated.GeneratedTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import generated.psi.*;
public class XExpressionImpl extends ASTWrapperPsiElement implements XExpression {
public XExpressionImpl(ASTNode node) {
super(node);
}
@Override
@NotNull
public List<XValue> getValueList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, XValue.class);
}
}
// ---- XOperatorImpl.java -----------------
//header.txt
package generated.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import static generated.GeneratedTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import generated.psi.*;
public class XOperatorImpl extends ASTWrapperPsiElement implements XOperator {
public XOperatorImpl(ASTNode node) {
super(node);
}
}
// ---- XRenameListImpl.java -----------------
//header.txt
package generated.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import static generated.GeneratedTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import generated.psi.*;
public class XRenameListImpl extends ASTWrapperPsiElement implements XRenameList {
public XRenameListImpl(ASTNode node) {
super(node);
}
@Override
@NotNull
public List<XSomeChild> getSomeChildren() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, XSomeChild.class);
}
@Override
@Nullable
public XSomeChild getFirst() {
List<XSomeChild> p1 = getSomeChildren();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public PsiElement getFirstSmth() {
List<XSomeChild> p1 = getSomeChildren();
XSomeChild p2 = p1.size() < 1 ? null : p1.get(0);
if (p2 == null) return null;
return p2.getSmth1();
}
@Override
@Nullable
public XSomeChild getLast() {
List<XSomeChild> p1 = getSomeChildren();
return p1.isEmpty()? null : p1.get(p1.size() - 1);
}
}
// ---- XSomeChildImpl.java -----------------
//header.txt
package generated.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import static generated.GeneratedTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import generated.psi.*;
public class XSomeChildImpl extends ASTWrapperPsiElement implements XSomeChild {
public XSomeChildImpl(ASTNode node) {
super(node);
}
@Override
@NotNull
public XSomeGrandChild getSomeGrandChild() {
return findNotNullChildByClass(XSomeGrandChild.class);
}
@Override
@NotNull
public PsiElement getSomething2() {
return findNotNullChildByType(SOMETHING2);
}
@Override
@NotNull
public PsiElement getSmth1() {
return findNotNullChildByType(MY_SOMETHING);
}
@Override
@NotNull
public PsiElement getSmth2() {
return getSmth1();
}
}
// ---- XSomeGrandChildImpl.java -----------------
//header.txt
package generated.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import static generated.GeneratedTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import generated.psi.*;
public class XSomeGrandChildImpl extends ASTWrapperPsiElement implements XSomeGrandChild {
public XSomeGrandChildImpl(ASTNode node) {
super(node);
}
@Override
@NotNull
public PsiElement getMySomething() {
return findNotNullChildByType(MY_SOMETHING);
}
@Override
@Nullable
public PsiElement getSomething2() {
return findChildByType(SOMETHING2);
}
}
// ---- XSomeRootImpl.java -----------------
//header.txt
package generated.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import static generated.GeneratedTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import generated.psi.*;
public class XSomeRootImpl extends ASTWrapperPsiElement implements XSomeRoot {
public XSomeRootImpl(ASTNode node) {
super(node);
}
@Override
@NotNull
public XSomeChild getSomeChild() {
return findNotNullChildByClass(XSomeChild.class);
}
@Override
@NotNull
public PsiElement getChildSomething() {
XSomeChild p1 = getSomeChild();
return p1.getSmth1();
}
@Override
@NotNull
public PsiElement getChildSomething2() {
XSomeChild p1 = getSomeChild();
return p1.getSomething2();
}
@Override
@NotNull
public XSomeGrandChild getGrandChild() {
XSomeChild p1 = getSomeChild();
return p1.getSomeGrandChild();
}
@Override
@NotNull
public PsiElement getGrandChildSomethin() {
XSomeChild p1 = getSomeChild();
XSomeGrandChild p2 = p1.getSomeGrandChild();
return p2.getMySomething();
}
@Override
@Nullable
public PsiElement getGrandChildSomethin2() {
XSomeChild p1 = getSomeChild();
XSomeGrandChild p2 = p1.getSomeGrandChild();
return p2.getSomething2();
}
}
// ---- XTokenDefaultsImpl.java -----------------
//header.txt
package generated.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import static generated.GeneratedTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import generated.psi.*;
public class XTokenDefaultsImpl extends ASTWrapperPsiElement implements XTokenDefaults {
public XTokenDefaultsImpl(ASTNode node) {
super(node);
}
@Override
@NotNull
public PsiElement getNodef() {
return findNotNullChildByType(NODEF);
}
}
// ---- XValueImpl.java -----------------
//header.txt
package generated.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import static generated.GeneratedTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import generated.psi.*;
public class XValueImpl extends ASTWrapperPsiElement implements XValue {
public XValueImpl(ASTNode node) {
super(node);
}
@Override
@NotNull
public PsiElement getId() {
return findNotNullChildByType(ID);
}
}