Fix parser for partial type signatures (WIP).

This commit is contained in:
Rik van der Kleij 2019-05-24 14:58:07 +02:00
parent 251ceee147
commit 9a5f60916d
34 changed files with 292 additions and 349 deletions

View File

@ -7,6 +7,7 @@ import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiBuilder.Marker;
import com.intellij.lang.PsiParser;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.IFileElementType;
import static intellij.haskell.psi.HaskellParserUtil.*;
import static intellij.haskell.psi.HaskellTypes.*;
@ -23,180 +24,10 @@ public class HaskellParser implements PsiParser, LightPsiParser {
boolean r;
b = adapt_builder_(t, b, this, null);
Marker m = enter_section_(b, 0, _COLLAPSE_, null);
if (t == HS_CCONTEXT) {
r = ccontext(b, 0);
} else if (t == HS_CDECL_DATA_DECLARATION) {
r = cdecl_data_declaration(b, 0);
} else if (t == HS_CDECLS) {
r = cdecls(b, 0);
} else if (t == HS_CIDECLS) {
r = cidecls(b, 0);
} else if (t == HS_CLASS_DECLARATION) {
r = class_declaration(b, 0);
} else if (t == HS_CLAZZ) {
r = clazz(b, 0);
} else if (t == HS_CNAME) {
r = cname(b, 0);
} else if (t == HS_CNAME_DOT_DOT) {
r = cname_dot_dot(b, 0);
} else if (t == HS_COMMENTS) {
r = comments(b, 0);
} else if (t == HS_CON) {
r = con(b, 0);
} else if (t == HS_CONID) {
r = conid(b, 0);
} else if (t == HS_CONOP) {
r = conop(b, 0);
} else if (t == HS_CONSTR) {
r = constr(b, 0);
} else if (t == HS_CONSTR_1) {
r = constr1(b, 0);
} else if (t == HS_CONSTR_2) {
r = constr2(b, 0);
} else if (t == HS_CONSTR_3) {
r = constr3(b, 0);
} else if (t == HS_CONSYM) {
r = consym(b, 0);
} else if (t == HS_DATA_DECLARATION) {
r = data_declaration(b, 0);
} else if (t == HS_DATA_DECLARATION_DERIVING) {
r = data_declaration_deriving(b, 0);
} else if (t == HS_DEFAULT_DECLARATION) {
r = default_declaration(b, 0);
} else if (t == HS_DERIVING_DECLARATION) {
r = deriving_declaration(b, 0);
} else if (t == HS_DOT_DOT) {
r = dot_dot(b, 0);
} else if (t == HS_EXPORT) {
r = export(b, 0);
} else if (t == HS_EXPORTS) {
r = exports(b, 0);
} else if (t == HS_EXPRESSION) {
r = expression(b, 0);
} else if (t == HS_FIELDDECL) {
r = fielddecl(b, 0);
} else if (t == HS_FILE_HEADER) {
r = file_header(b, 0);
} else if (t == HS_FIXITY_DECLARATION) {
r = fixity_declaration(b, 0);
} else if (t == HS_FOREIGN_DECLARATION) {
r = foreign_declaration(b, 0);
} else if (t == HS_GENERAL_PRAGMA_CONTENT) {
r = general_pragma_content(b, 0);
} else if (t == HS_GTYCON) {
r = gtycon(b, 0);
} else if (t == HS_IMPORT_DECLARATION) {
r = import_declaration(b, 0);
} else if (t == HS_IMPORT_DECLARATIONS) {
r = import_declarations(b, 0);
} else if (t == HS_IMPORT_EMPTY_SPEC) {
r = import_empty_spec(b, 0);
} else if (t == HS_IMPORT_HIDING) {
r = import_hiding(b, 0);
} else if (t == HS_IMPORT_HIDING_SPEC) {
r = import_hiding_spec(b, 0);
} else if (t == HS_IMPORT_ID) {
r = import_id(b, 0);
} else if (t == HS_IMPORT_IDS_SPEC) {
r = import_ids_spec(b, 0);
} else if (t == HS_IMPORT_PACKAGE_NAME) {
r = import_package_name(b, 0);
} else if (t == HS_IMPORT_QUALIFIED) {
r = import_qualified(b, 0);
} else if (t == HS_IMPORT_QUALIFIED_AS) {
r = import_qualified_as(b, 0);
} else if (t == HS_IMPORT_SPEC) {
r = import_spec(b, 0);
} else if (t == HS_INST) {
r = inst(b, 0);
} else if (t == HS_INSTANCE_DECLARATION) {
r = instance_declaration(b, 0);
} else if (t == HS_INSTVAR) {
r = instvar(b, 0);
} else if (t == HS_KIND_SIGNATURE) {
r = kind_signature(b, 0);
} else if (t == HS_LIST_TYPE) {
r = list_type(b, 0);
} else if (t == HS_MODID) {
r = modid(b, 0);
} else if (t == HS_MODULE_BODY) {
r = module_body(b, 0);
} else if (t == HS_MODULE_DECLARATION) {
r = module_declaration(b, 0);
} else if (t == HS_NEWCONSTR) {
r = newconstr(b, 0);
} else if (t == HS_NEWCONSTR_FIELDDECL) {
r = newconstr_fielddecl(b, 0);
} else if (t == HS_NEWTYPE_DECLARATION) {
r = newtype_declaration(b, 0);
} else if (t == HS_PRAGMA) {
r = pragma(b, 0);
} else if (t == HS_Q_CON) {
r = q_con(b, 0);
} else if (t == HS_Q_CON_QUALIFIER) {
r = q_con_qualifier(b, 0);
} else if (t == HS_Q_CON_QUALIFIER_1) {
r = q_con_qualifier1(b, 0);
} else if (t == HS_Q_CON_QUALIFIER_2) {
r = q_con_qualifier2(b, 0);
} else if (t == HS_Q_CON_QUALIFIER_3) {
r = q_con_qualifier3(b, 0);
} else if (t == HS_Q_CON_QUALIFIER_4) {
r = q_con_qualifier4(b, 0);
} else if (t == HS_Q_NAME) {
r = q_name(b, 0);
} else if (t == HS_Q_NAMES) {
r = q_names(b, 0);
} else if (t == HS_Q_VAR_CON) {
r = q_var_con(b, 0);
} else if (t == HS_QUALIFIER) {
r = qualifier(b, 0);
} else if (t == HS_RESERVED_ID) {
r = reserved_id(b, 0);
} else if (t == HS_SCONTEXT) {
r = scontext(b, 0);
} else if (t == HS_SHEBANG_LINE) {
r = shebang_line(b, 0);
} else if (t == HS_SIMPLECLASS) {
r = simpleclass(b, 0);
} else if (t == HS_SIMPLETYPE) {
r = simpletype(b, 0);
} else if (t == HS_TEXT_LITERAL) {
r = text_literal(b, 0);
} else if (t == HS_TOP_DECLARATION) {
r = top_declaration(b, 0);
} else if (t == HS_TOP_DECLARATION_LINE) {
r = top_declaration_line(b, 0);
} else if (t == HS_TTYPE) {
r = ttype(b, 0);
} else if (t == HS_TTYPE_1) {
r = ttype1(b, 0);
} else if (t == HS_TTYPE_2) {
r = ttype2(b, 0);
} else if (t == HS_TYPE_DECLARATION) {
r = type_declaration(b, 0);
} else if (t == HS_TYPE_EQUALITY) {
r = type_equality(b, 0);
} else if (t == HS_TYPE_FAMILY_DECLARATION) {
r = type_family_declaration(b, 0);
} else if (t == HS_TYPE_FAMILY_TYPE) {
r = type_family_type(b, 0);
} else if (t == HS_TYPE_INSTANCE_DECLARATION) {
r = type_instance_declaration(b, 0);
} else if (t == HS_TYPE_SIGNATURE) {
r = type_signature(b, 0);
} else if (t == HS_VAR) {
r = var(b, 0);
} else if (t == HS_VAR_CON) {
r = var_con(b, 0);
} else if (t == HS_VARID) {
r = varid(b, 0);
} else if (t == HS_VAROP) {
r = varop(b, 0);
} else if (t == HS_VARSYM) {
r = varsym(b, 0);
} else {
if (t instanceof IFileElementType) {
r = parse_root_(t, b, 0);
} else {
r = false;
}
exit_section_(b, 0, m, t, r, true, TRUE_CONDITION);
}
@ -771,7 +602,7 @@ public class HaskellParser implements PsiParser, LightPsiParser {
}
/* ********************************************************** */
// (atype | TILDE)+
// (atype | TILDE | UNDERSCORE)+
static boolean btype(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "btype")) return false;
boolean r;
@ -786,12 +617,13 @@ public class HaskellParser implements PsiParser, LightPsiParser {
return r;
}
// atype | TILDE
// atype | TILDE | UNDERSCORE
private static boolean btype_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "btype_0")) return false;
boolean r;
r = atype(b, l + 1);
if (!r) r = consumeToken(b, HS_TILDE);
if (!r) r = consumeToken(b, HS_UNDERSCORE);
return r;
}

View File

@ -52,18 +52,22 @@ public class HaskellClassDeclarationImpl extends HaskellCompositeElementImpl imp
return PsiTreeUtil.getChildrenOfTypeAsList(this, HaskellTtype.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}

View File

@ -48,14 +48,17 @@ public class HaskellCnameImpl extends HaskellCompositeElementImpl implements Has
return PsiTreeUtil.getChildOfType(this, HaskellVarop.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public HaskellNamedElement getIdentifierElement() {
return HaskellPsiImplUtil.getIdentifierElement(this);
}
@Override
public Option<String> getQualifierName() {
return HaskellPsiImplUtil.getQualifierName(this);
}

View File

@ -1,14 +1,15 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import intellij.haskell.psi.HaskellCon;
import intellij.haskell.psi.HaskellConid;
import intellij.haskell.psi.HaskellConsym;
import intellij.haskell.psi.HaskellVisitor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class HaskellConImpl extends HaskellCNameElementImpl implements HaskellCon {
@ -37,8 +38,9 @@ public class HaskellConImpl extends HaskellCNameElementImpl implements HaskellCo
return PsiTreeUtil.getChildOfType(this, HaskellConsym.class);
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
}

View File

@ -32,22 +32,27 @@ public class HaskellConidImpl extends HaskellNamedStubBasedPsiElementBase<Haskel
else super.accept(visitor);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -1,14 +1,15 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import intellij.haskell.psi.HaskellConid;
import intellij.haskell.psi.HaskellConop;
import intellij.haskell.psi.HaskellConsym;
import intellij.haskell.psi.HaskellVisitor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class HaskellConopImpl extends HaskellCNameElementImpl implements HaskellConop {
@ -37,8 +38,9 @@ public class HaskellConopImpl extends HaskellCNameElementImpl implements Haskell
return PsiTreeUtil.getChildOfType(this, HaskellConsym.class);
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
}

View File

@ -32,22 +32,27 @@ public class HaskellConsymImpl extends HaskellNamedStubBasedPsiElementBase<Haske
else super.accept(visitor);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -82,22 +82,27 @@ public class HaskellDataDeclarationImpl extends HaskellCompositeElementImpl impl
return PsiTreeUtil.getChildrenOfTypeAsList(this, HaskellTypeSignature.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
@Override
public HaskellNamedElement getDataTypeConstructor() {
return HaskellPsiImplUtil.getDataTypeConstructor(this);
}

View File

@ -1,18 +1,18 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.navigation.ItemPresentation;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import com.intellij.navigation.ItemPresentation;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import scala.Option;
import scala.collection.Seq;
import java.util.List;
public class HaskellDefaultDeclarationImpl extends HaskellCompositeElementImpl implements HaskellDefaultDeclaration {
public HaskellDefaultDeclarationImpl(ASTNode node) {
@ -40,20 +40,24 @@ public class HaskellDefaultDeclarationImpl extends HaskellCompositeElementImpl i
return PsiTreeUtil.getChildOfType(this, HaskellTypeSignature.class);
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
}

View File

@ -1,15 +1,13 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.navigation.ItemPresentation;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import com.intellij.navigation.ItemPresentation;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import scala.Option;
import scala.collection.Seq;
@ -46,20 +44,24 @@ public class HaskellDerivingDeclarationImpl extends HaskellCompositeElementImpl
return PsiTreeUtil.getChildOfType(this, HaskellScontext.class);
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
}

View File

@ -1,15 +1,15 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.navigation.ItemPresentation;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import com.intellij.navigation.ItemPresentation;
import intellij.haskell.psi.HaskellExpression;
import intellij.haskell.psi.HaskellForeignDeclaration;
import intellij.haskell.psi.HaskellNamedElement;
import intellij.haskell.psi.HaskellVisitor;
import org.jetbrains.annotations.NotNull;
import scala.Option;
import scala.collection.Seq;
@ -34,20 +34,24 @@ public class HaskellForeignDeclarationImpl extends HaskellCompositeElementImpl i
return notNullChild(PsiTreeUtil.getChildOfType(this, HaskellExpression.class));
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
}

View File

@ -60,6 +60,7 @@ public class HaskellImportDeclarationImpl extends HaskellCompositeElementImpl im
return PsiTreeUtil.getChildOfType(this, HaskellPragma.class);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}

View File

@ -70,18 +70,22 @@ public class HaskellInstanceDeclarationImpl extends HaskellCompositeElementImpl
return PsiTreeUtil.getChildrenOfTypeAsList(this, HaskellVarCon.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}

View File

@ -42,22 +42,27 @@ public class HaskellModidImpl extends HaskellNamedStubBasedPsiElementBase<Haskel
return PsiTreeUtil.getStubChildrenOfTypeAsList(this, HaskellConid.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -44,18 +44,22 @@ public class HaskellModuleDeclarationImpl extends HaskellCompositeElementImpl im
return PsiTreeUtil.getChildOfType(this, HaskellPragma.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}

View File

@ -56,22 +56,27 @@ public class HaskellNewtypeDeclarationImpl extends HaskellCompositeElementImpl i
return PsiTreeUtil.getChildOfType(this, HaskellTtype.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
@Override
public HaskellNamedElement getDataTypeConstructor() {
return HaskellPsiImplUtil.getDataTypeConstructor(this);
}

View File

@ -34,22 +34,27 @@ public class HaskellQConQualifier1Impl extends HaskellQualifierElementImpl imple
return notNullChild(PsiTreeUtil.getChildOfType(this, HaskellConid.class));
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -36,22 +36,27 @@ public class HaskellQConQualifier2Impl extends HaskellQualifierElementImpl imple
return PsiTreeUtil.getChildrenOfTypeAsList(this, HaskellConid.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -36,22 +36,27 @@ public class HaskellQConQualifier3Impl extends HaskellQualifierElementImpl imple
return PsiTreeUtil.getChildrenOfTypeAsList(this, HaskellConid.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -36,22 +36,27 @@ public class HaskellQConQualifier4Impl extends HaskellQualifierElementImpl imple
return PsiTreeUtil.getChildrenOfTypeAsList(this, HaskellConid.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -36,14 +36,17 @@ public class HaskellQNameImpl extends HaskellCompositeElementImpl implements Has
return PsiTreeUtil.getChildOfType(this, HaskellVarCon.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public HaskellNamedElement getIdentifierElement() {
return HaskellPsiImplUtil.getIdentifierElement(this);
}
@Override
public Option<String> getQualifierName() {
return HaskellPsiImplUtil.getQualifierName(this);
}

View File

@ -1,14 +1,12 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class HaskellQVarConImpl extends HaskellCompositeElementImpl implements HaskellQVarCon {
@ -55,12 +53,14 @@ public class HaskellQVarConImpl extends HaskellCompositeElementImpl implements H
return PsiTreeUtil.getChildOfType(this, HaskellVarsym.class);
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
public HaskellNamedElement getIdentifierElement() {
return HaskellPsiImplUtil.getIdentifierElement(this);
}
@Override
public HaskellNamedElement getIdentifierElement() {
return HaskellPsiImplUtil.getIdentifierElement(this);
}
}

View File

@ -36,22 +36,27 @@ public class HaskellQualifierImpl extends HaskellQualifierElementImpl implements
return PsiTreeUtil.getChildrenOfTypeAsList(this, HaskellConid.class);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -44,6 +44,7 @@ public class HaskellSimpletypeImpl extends HaskellCompositeElementImpl implement
return PsiTreeUtil.getChildrenOfTypeAsList(this, HaskellTypeSignature.class);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}

View File

@ -1,18 +1,18 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.navigation.ItemPresentation;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import com.intellij.navigation.ItemPresentation;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import scala.Option;
import scala.collection.Seq;
import java.util.List;
public class HaskellTypeDeclarationImpl extends HaskellCompositeElementImpl implements HaskellTypeDeclaration {
public HaskellTypeDeclarationImpl(ASTNode node) {
@ -58,20 +58,24 @@ public class HaskellTypeDeclarationImpl extends HaskellCompositeElementImpl impl
return PsiTreeUtil.getChildOfType(this, HaskellTypeSignature.class);
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
}

View File

@ -1,15 +1,13 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.navigation.ItemPresentation;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import com.intellij.navigation.ItemPresentation;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import scala.Option;
import scala.collection.Seq;
@ -40,20 +38,24 @@ public class HaskellTypeFamilyDeclarationImpl extends HaskellCompositeElementImp
return notNullChild(PsiTreeUtil.getChildOfType(this, HaskellTypeFamilyType.class));
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
}

View File

@ -1,15 +1,15 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.navigation.ItemPresentation;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import com.intellij.navigation.ItemPresentation;
import intellij.haskell.psi.HaskellExpression;
import intellij.haskell.psi.HaskellNamedElement;
import intellij.haskell.psi.HaskellTypeInstanceDeclaration;
import intellij.haskell.psi.HaskellVisitor;
import org.jetbrains.annotations.NotNull;
import scala.Option;
import scala.collection.Seq;
@ -34,20 +34,24 @@ public class HaskellTypeInstanceDeclarationImpl extends HaskellCompositeElementI
return notNullChild(PsiTreeUtil.getChildOfType(this, HaskellExpression.class));
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
}

View File

@ -1,18 +1,17 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.navigation.ItemPresentation;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import com.intellij.navigation.ItemPresentation;
import org.jetbrains.annotations.NotNull;
import scala.Option;
import scala.collection.Seq;
import java.util.List;
public class HaskellTypeSignatureImpl extends HaskellCompositeElementImpl implements HaskellTypeSignature {
public HaskellTypeSignatureImpl(ASTNode node) {
@ -46,20 +45,24 @@ public class HaskellTypeSignatureImpl extends HaskellCompositeElementImpl implem
return notNullChild(PsiTreeUtil.getChildOfType(this, HaskellTtype.class));
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
@Override
public Seq<HaskellNamedElement> getIdentifierElements() {
return HaskellPsiImplUtil.getIdentifierElements(this);
}
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
@Override
public Option<String> getModuleName() {
return HaskellPsiImplUtil.getModuleName(this);
}
}

View File

@ -1,14 +1,12 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class HaskellVarConImpl extends HaskellCompositeElementImpl implements HaskellVarCon {
@ -49,12 +47,14 @@ public class HaskellVarConImpl extends HaskellCompositeElementImpl implements Ha
return PsiTreeUtil.getChildOfType(this, HaskellVarsym.class);
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
public HaskellNamedElement getIdentifierElement() {
return HaskellPsiImplUtil.getIdentifierElement(this);
}
@Override
public HaskellNamedElement getIdentifierElement() {
return HaskellPsiImplUtil.getIdentifierElement(this);
}
}

View File

@ -1,14 +1,15 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import intellij.haskell.psi.HaskellVar;
import intellij.haskell.psi.HaskellVarid;
import intellij.haskell.psi.HaskellVarsym;
import intellij.haskell.psi.HaskellVisitor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class HaskellVarImpl extends HaskellCNameElementImpl implements HaskellVar {
@ -37,8 +38,9 @@ public class HaskellVarImpl extends HaskellCNameElementImpl implements HaskellVa
return PsiTreeUtil.getChildOfType(this, HaskellVarsym.class);
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
}

View File

@ -32,22 +32,27 @@ public class HaskellVaridImpl extends HaskellNamedStubBasedPsiElementBase<Haskel
else super.accept(visitor);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -1,14 +1,15 @@
// This is a generated file. Not intended for manual editing.
package intellij.haskell.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static intellij.haskell.psi.HaskellTypes.*;
import intellij.haskell.psi.*;
import intellij.haskell.psi.HaskellVarid;
import intellij.haskell.psi.HaskellVarop;
import intellij.haskell.psi.HaskellVarsym;
import intellij.haskell.psi.HaskellVisitor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class HaskellVaropImpl extends HaskellCNameElementImpl implements HaskellVarop {
@ -37,8 +38,9 @@ public class HaskellVaropImpl extends HaskellCNameElementImpl implements Haskell
return PsiTreeUtil.getChildOfType(this, HaskellVarsym.class);
}
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
}

View File

@ -32,22 +32,27 @@ public class HaskellVarsymImpl extends HaskellNamedStubBasedPsiElementBase<Haske
else super.accept(visitor);
}
@Override
public String getName() {
return HaskellPsiImplUtil.getName(this);
}
@Override
public PsiElement setName(String newName) {
return HaskellPsiImplUtil.setName(this, newName);
}
@Override
public HaskellNamedElement getNameIdentifier() {
return HaskellPsiImplUtil.getNameIdentifier(this);
}
@Override
public PsiReference getReference() {
return HaskellPsiImplUtil.getReference(this);
}
@Override
public ItemPresentation getPresentation() {
return HaskellPsiImplUtil.getPresentation(this);
}

View File

@ -192,7 +192,7 @@ ttype2 ::= ("forall" | FORALL)? onl ttype (onl DOUBLE_RIGHT
ttype ::= "!"? (btype (oonls RIGHT_ARROW oonls ttype)* | list_type q_name* | LEFT_PAREN RIGHT_ARROW RIGHT_PAREN)
private btype ::= (atype | TILDE)+ // generalization because left recursive is not supported
private btype ::= (atype | TILDE | UNDERSCORE)+ // generalization because left recursive is not supported and UNDERSCORE because of partial type signatures
simpletype ::= ttype | (q_name | LEFT_PAREN RIGHT_PAREN)+ |
q_name* oonls LEFT_PAREN q_name RIGHT_PAREN oonls q_name* |