/******************************************************************************* * Copyright (c) 2009-2015 CWI * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * * Jurgen J. Vinju - Jurgen.Vinju@cwi.nl - CWI * * Tijs van der Storm - Tijs.van.der.Storm@cwi.nl * * Paul Klint - Paul.Klint@cwi.nl - CWI * * Mark Hills - Mark.Hills@cwi.nl (CWI) * * Arnold Lankamp - Arnold.Lankamp@cwi.nl * * Michael Steindorfer - Michael.Steindorfer@cwi.nl - CWI *******************************************************************************/ package org.rascalmpl.ast; import org.rascalmpl.value.IConstructor; import org.rascalmpl.value.ISourceLocation; public abstract class Kind extends AbstractAST { public Kind(ISourceLocation src, IConstructor node) { super(src /* we forget node on purpose */); } public boolean isAlias() { return false; } static public class Alias extends Kind { // Production: sig("Alias",[],breakable=false) public Alias(ISourceLocation src, IConstructor node ) { super(src, node); } @Override public boolean isAlias() { return true; } @Override public <T> T accept(IASTVisitor<T> visitor) { return visitor.visitKindAlias(this); } @Override protected void addForLineNumber(int $line, java.util.List<AbstractAST> $result) { if (getLocation().getBeginLine() == $line) { $result.add(this); } ISourceLocation $l; } @Override public boolean equals(Object o) { if (!(o instanceof Alias)) { return false; } Alias tmp = (Alias) o; return true ; } @Override public int hashCode() { return 269 ; } @Override public Object clone() { return newInstance(getClass(), src, (IConstructor) null ); } } public boolean isAll() { return false; } static public class All extends Kind { // Production: sig("All",[],breakable=false) public All(ISourceLocation src, IConstructor node ) { super(src, node); } @Override public boolean isAll() { return true; } @Override public <T> T accept(IASTVisitor<T> visitor) { return visitor.visitKindAll(this); } @Override protected void addForLineNumber(int $line, java.util.List<AbstractAST> $result) { if (getLocation().getBeginLine() == $line) { $result.add(this); } ISourceLocation $l; } @Override public boolean equals(Object o) { if (!(o instanceof All)) { return false; } All tmp = (All) o; return true ; } @Override public int hashCode() { return 293 ; } @Override public Object clone() { return newInstance(getClass(), src, (IConstructor) null ); } } public boolean isAnno() { return false; } static public class Anno extends Kind { // Production: sig("Anno",[],breakable=false) public Anno(ISourceLocation src, IConstructor node ) { super(src, node); } @Override public boolean isAnno() { return true; } @Override public <T> T accept(IASTVisitor<T> visitor) { return visitor.visitKindAnno(this); } @Override protected void addForLineNumber(int $line, java.util.List<AbstractAST> $result) { if (getLocation().getBeginLine() == $line) { $result.add(this); } ISourceLocation $l; } @Override public boolean equals(Object o) { if (!(o instanceof Anno)) { return false; } Anno tmp = (Anno) o; return true ; } @Override public int hashCode() { return 757 ; } @Override public Object clone() { return newInstance(getClass(), src, (IConstructor) null ); } } public boolean isData() { return false; } static public class Data extends Kind { // Production: sig("Data",[],breakable=false) public Data(ISourceLocation src, IConstructor node ) { super(src, node); } @Override public boolean isData() { return true; } @Override public <T> T accept(IASTVisitor<T> visitor) { return visitor.visitKindData(this); } @Override protected void addForLineNumber(int $line, java.util.List<AbstractAST> $result) { if (getLocation().getBeginLine() == $line) { $result.add(this); } ISourceLocation $l; } @Override public boolean equals(Object o) { if (!(o instanceof Data)) { return false; } Data tmp = (Data) o; return true ; } @Override public int hashCode() { return 829 ; } @Override public Object clone() { return newInstance(getClass(), src, (IConstructor) null ); } } public boolean isFunction() { return false; } static public class Function extends Kind { // Production: sig("Function",[],breakable=false) public Function(ISourceLocation src, IConstructor node ) { super(src, node); } @Override public boolean isFunction() { return true; } @Override public <T> T accept(IASTVisitor<T> visitor) { return visitor.visitKindFunction(this); } @Override protected void addForLineNumber(int $line, java.util.List<AbstractAST> $result) { if (getLocation().getBeginLine() == $line) { $result.add(this); } ISourceLocation $l; } @Override public boolean equals(Object o) { if (!(o instanceof Function)) { return false; } Function tmp = (Function) o; return true ; } @Override public int hashCode() { return 47 ; } @Override public Object clone() { return newInstance(getClass(), src, (IConstructor) null ); } } public boolean isModule() { return false; } static public class Module extends Kind { // Production: sig("Module",[],breakable=false) public Module(ISourceLocation src, IConstructor node ) { super(src, node); } @Override public boolean isModule() { return true; } @Override public <T> T accept(IASTVisitor<T> visitor) { return visitor.visitKindModule(this); } @Override protected void addForLineNumber(int $line, java.util.List<AbstractAST> $result) { if (getLocation().getBeginLine() == $line) { $result.add(this); } ISourceLocation $l; } @Override public boolean equals(Object o) { if (!(o instanceof Module)) { return false; } Module tmp = (Module) o; return true ; } @Override public int hashCode() { return 257 ; } @Override public Object clone() { return newInstance(getClass(), src, (IConstructor) null ); } } public boolean isTag() { return false; } static public class Tag extends Kind { // Production: sig("Tag",[],breakable=false) public Tag(ISourceLocation src, IConstructor node ) { super(src, node); } @Override public boolean isTag() { return true; } @Override public <T> T accept(IASTVisitor<T> visitor) { return visitor.visitKindTag(this); } @Override protected void addForLineNumber(int $line, java.util.List<AbstractAST> $result) { if (getLocation().getBeginLine() == $line) { $result.add(this); } ISourceLocation $l; } @Override public boolean equals(Object o) { if (!(o instanceof Tag)) { return false; } Tag tmp = (Tag) o; return true ; } @Override public int hashCode() { return 367 ; } @Override public Object clone() { return newInstance(getClass(), src, (IConstructor) null ); } } public boolean isVariable() { return false; } static public class Variable extends Kind { // Production: sig("Variable",[],breakable=false) public Variable(ISourceLocation src, IConstructor node ) { super(src, node); } @Override public boolean isVariable() { return true; } @Override public <T> T accept(IASTVisitor<T> visitor) { return visitor.visitKindVariable(this); } @Override protected void addForLineNumber(int $line, java.util.List<AbstractAST> $result) { if (getLocation().getBeginLine() == $line) { $result.add(this); } ISourceLocation $l; } @Override public boolean equals(Object o) { if (!(o instanceof Variable)) { return false; } Variable tmp = (Variable) o; return true ; } @Override public int hashCode() { return 421 ; } @Override public Object clone() { return newInstance(getClass(), src, (IConstructor) null ); } } public boolean isView() { return false; } static public class View extends Kind { // Production: sig("View",[],breakable=false) public View(ISourceLocation src, IConstructor node ) { super(src, node); } @Override public boolean isView() { return true; } @Override public <T> T accept(IASTVisitor<T> visitor) { return visitor.visitKindView(this); } @Override protected void addForLineNumber(int $line, java.util.List<AbstractAST> $result) { if (getLocation().getBeginLine() == $line) { $result.add(this); } ISourceLocation $l; } @Override public boolean equals(Object o) { if (!(o instanceof View)) { return false; } View tmp = (View) o; return true ; } @Override public int hashCode() { return 577 ; } @Override public Object clone() { return newInstance(getClass(), src, (IConstructor) null ); } } }