"trait" instead of "trait class"

virtual -> open
 "final" introduced
 "wraps" dropped
This commit is contained in:
Andrey Breslav
2011-09-09 16:16:05 +04:00
parent 704a876537
commit 16dcbd41cb
94 changed files with 537 additions and 532 deletions
@@ -127,7 +127,7 @@ public interface JetTokens {
JetKeywordToken GET_KEYWORD = JetKeywordToken.softKeyword("get"); JetKeywordToken GET_KEYWORD = JetKeywordToken.softKeyword("get");
JetKeywordToken SET_KEYWORD = JetKeywordToken.softKeyword("set"); JetKeywordToken SET_KEYWORD = JetKeywordToken.softKeyword("set");
JetKeywordToken ABSTRACT_KEYWORD = JetKeywordToken.softKeyword("abstract"); JetKeywordToken ABSTRACT_KEYWORD = JetKeywordToken.softKeyword("abstract");
JetKeywordToken VIRTUAL_KEYWORD = JetKeywordToken.softKeyword("virtual"); JetKeywordToken VIRTUAL_KEYWORD = JetKeywordToken.softKeyword("open");
JetKeywordToken ENUM_KEYWORD = JetKeywordToken.softKeyword("enum"); JetKeywordToken ENUM_KEYWORD = JetKeywordToken.softKeyword("enum");
JetKeywordToken OPEN_KEYWORD = JetKeywordToken.softKeyword("open"); JetKeywordToken OPEN_KEYWORD = JetKeywordToken.softKeyword("open");
JetKeywordToken ATTRIBUTE_KEYWORD = JetKeywordToken.softKeyword("attribute"); JetKeywordToken ATTRIBUTE_KEYWORD = JetKeywordToken.softKeyword("attribute");
+1 -1
View File
@@ -21,7 +21,7 @@ fun countOnes(x : INumber) = if (x == 0) 0 else mostSignificantBit(x) + countOne
fun Int.matchMask(mask : Int) = this and mask == mask fun Int.matchMask(mask : Int) = this and mask == mask
virtual class INumber<T : this> : IComparable<T> { open class INumber<T : this> : IComparable<T> {
val bits : Int val bits : Int
[operator] fun plus(other : T) : T [operator] fun plus(other : T) : T
[operator] fun shl(bits : Int) : T [operator] fun shl(bits : Int) : T
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IPushPop<T> { open class IPushPop<T> {
val isEmpty : Boolean val isEmpty : Boolean
fun push(item : T) fun push(item : T)
fun pop() : T fun pop() : T
+2 -2
View File
@@ -1,9 +1,9 @@
virtual class Builder<E, R> { open class Builder<E, R> {
[operator] fun plusAssign(item : E) [operator] fun plusAssign(item : E)
fun result() : R fun result() : R
} }
virtual class Buildable { open class Buildable {
fun newBuilder<E, R>() : Builder<E, R> fun newBuilder<E, R>() : Builder<E, R>
} }
+2 -2
View File
@@ -2,11 +2,11 @@
These declarations are "shallow" in the sense that they are not really compiled, only the type-checker uses them These declarations are "shallow" in the sense that they are not really compiled, only the type-checker uses them
*/ */
virtual class ReadOnlyArray<out T> : ISized { open class ReadOnlyArray<out T> : ISized {
[operator] fun get(index : Int) : T [operator] fun get(index : Int) : T
} }
virtual class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant open class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant
[operator] fun set(index : Int, value : T) [operator] fun set(index : Int, value : T)
} }
+4 -4
View File
@@ -1,15 +1,15 @@
virtual class IEquality { open class IEquality {
fun equals(other : Any) : Boolean fun equals(other : Any) : Boolean
= (this as java.lang.Object).equals(other as java.lang.Object) = (this as java.lang.Object).equals(other as java.lang.Object)
} }
virtual class IHashable : IEquality { open class IHashable : IEquality {
val hashCode : Integer val hashCode : Integer
get() = (this as java.lang.Object).hashCode() get() = (this as java.lang.Object).hashCode()
} }
virtual class IMap<K, V> { open class IMap<K, V> {
fun get(key : K) : V fun get(key : K) : V
fun set(key : K, value : V) : V fun set(key : K, value : V) : V
fun remove(key : K) : V fun remove(key : K) : V
@@ -21,7 +21,7 @@ class HashableWrapper wraps (val obj : Any) : IHashable
[inline] fun Any.hashable() : HashableWrapper = new HashableWrapper(this) [inline] fun Any.hashable() : HashableWrapper = new HashableWrapper(this)
virtual class IHashingStrategy<K> { open class IHashingStrategy<K> {
fun equals(a : K, b : K) : Boolean fun equals(a : K, b : K) : Boolean
fun hashCode(a : K) : Integer fun hashCode(a : K) : Integer
} }
+1 -1
View File
@@ -1,3 +1,3 @@
virtual class IIterable<out T> { open class IIterable<out T> {
fun iterator() : IIterator<T> fun iterator() : IIterator<T>
} }
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IIterator<out T> { open class IIterator<out T> {
fun next() : T fun next() : T
val hasNext : Boolean val hasNext : Boolean
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IList<out T> : IIterable<T>, ISized { open class IList<out T> : IIterable<T>, ISized {
[operator] fun get(index : Int) : T [operator] fun get(index : Int) : T
val isEmpty : Boolean val isEmpty : Boolean
} }
@@ -1,3 +1,3 @@
virtual class IMutableIterable<out T> : IIterable<T> { open class IMutableIterable<out T> : IIterable<T> {
fun mutableIterator() : IMutableIterator<T> fun mutableIterator() : IMutableIterator<T>
} }
@@ -1,4 +1,4 @@
virtual class IMutableIterator<out T> : IIterator<T> { open class IMutableIterator<out T> : IIterator<T> {
fun remove() : T fun remove() : T
/* /*
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IMutableList<T> : IList<T>, IMutableIterable<T> { open class IMutableList<T> : IList<T>, IMutableIterable<T> {
fun set(index : Int, value : T) : T fun set(index : Int, value : T) : T
fun add(index : Int, value : T) fun add(index : Int, value : T)
fun remove(index : Int) : T fun remove(index : Int) : T
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IMutableSet<T> : ISet<T>, IMutableIterable<T> { open class IMutableSet<T> : ISet<T>, IMutableIterable<T> {
fun add(item : T) : Boolean fun add(item : T) : Boolean
fun remove(item : T) : Boolean fun remove(item : T) : Boolean
} }
+1 -1
View File
@@ -1,3 +1,3 @@
virtual class ISet<T> : IIterable<T>, ISized { open class ISet<T> : IIterable<T>, ISized {
fun contains(item : T) : Boolean fun contains(item : T) : Boolean
} }
+1 -1
View File
@@ -1,3 +1,3 @@
virtual class ISized { open class ISized {
val size : Int val size : Int
} }
+2 -2
View File
@@ -1,8 +1,8 @@
virtual class IAdder<in T> { open class IAdder<in T> {
fun add(item : T) : Boolean fun add(item : T) : Boolean
} }
virtual class ICloseable { open class ICloseable {
fun close() fun close()
} }
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IMap<in K, out V> { open class IMap<in K, out V> {
} }
@@ -1,4 +1,4 @@
virtual class IPriorityQueue<T> { open class IPriorityQueue<T> {
fun extract() : T fun extract() : T
fun add(item : T) fun add(item : T)
val isEmpty : Boolean val isEmpty : Boolean
+1 -1
View File
@@ -1,3 +1,3 @@
virtual class IComparable<in T> { open class IComparable<in T> {
fun compareTo(other : T) : Int fun compareTo(other : T) : Int
} }
+2 -2
View File
@@ -17,9 +17,9 @@ internal class Example<X, T : Comparable<X>>(protected val x : Foo<X, T>, y : So
*/ */
class class
: modifiers "class" SimpleName : modifiers ("class" | "trait") SimpleName
typeParameters? typeParameters?
("wraps" valueParameters? | modifiers valueParameters?)? modifiers ("(" primaryConstructorParameter{","} ")")?
(":" annotations delegationSpecifier{","})? (":" annotations delegationSpecifier{","})?
typeConstraints typeConstraints
(classBody? | enumClassBody) (classBody? | enumClassBody)
+2 -4
View File
@@ -115,17 +115,15 @@ ref
try try
Soft: Soft:
wraps -- in a class header
where -- in class, function and type headers where -- in class, function and type headers
by -- in a class header (Delegation specifier) by -- in a class header (Delegation specifier)
lazy -- in a property/parameter declaration
get, set -- in a property definition get, set -- in a property definition
import import
final
abstract abstract
virtual
enum enum
open open
attribute annotation
override override
private private
public public
+3 -2
View File
@@ -17,7 +17,7 @@ modifier
classModifier classModifier
: "abstract" : "abstract"
: "virtual" : "final"
: "enum" : "enum"
: "open" : "open"
: "attribute" : "attribute"
@@ -25,7 +25,8 @@ classModifier
memberModifier memberModifier
: "override" : "override"
: "virtual" : "open"
: "final"
: "abstract" : "abstract"
; ;
+5 -5
View File
@@ -40,12 +40,12 @@ fun Any?.equals(other : Any?) : Boolean// = this === other
// Returns "null" for null // Returns "null" for null
fun Any?.toString() : String// = this === other fun Any?.toString() : String// = this === other
trait class Iterator<out T> { trait Iterator<out T> {
fun next() : T fun next() : T
abstract fun hasNext() : Boolean abstract fun hasNext() : Boolean
} }
trait class Iterable<out T> { trait Iterable<out T> {
fun iterator() : Iterator<T> fun iterator() : Iterator<T>
} }
@@ -56,11 +56,11 @@ class Array<T>(val size : Int) {
fun iterator() : Iterator<T> fun iterator() : Iterator<T>
} }
trait class Comparable<in T> { trait Comparable<in T> {
fun compareTo(other : T) : Int fun compareTo(other : T) : Int
} }
trait class Hashable { trait Hashable {
fun hashCode() : Int fun hashCode() : Int
fun equals(other : Any?) : Boolean fun equals(other : Any?) : Boolean
} }
@@ -92,7 +92,7 @@ class String() : Comparable<String> {
fun trim(): String fun trim(): String
} }
trait class Range<in T : Comparable<T>> { trait Range<in T : Comparable<T>> {
fun contains(item : T) : Boolean fun contains(item : T) : Boolean
} }
@@ -34,9 +34,9 @@ public class MutableClassDescriptor extends MutableDeclarationDescriptor impleme
private final ClassKind kind; private final ClassKind kind;
private JetType superclassType; private JetType superclassType;
public MutableClassDescriptor(@NotNull BindingTrace trace, @NotNull DeclarationDescriptor containingDeclaration, @NotNull JetScope outerScope) { // public MutableClassDescriptor(@NotNull BindingTrace trace, @NotNull DeclarationDescriptor containingDeclaration, @NotNull JetScope outerScope) {
this(trace, containingDeclaration, outerScope, ClassKind.CLASS); // this(trace, containingDeclaration, outerScope, ClassKind.CLASS);
} // }
public MutableClassDescriptor(@NotNull BindingTrace trace, @NotNull DeclarationDescriptor containingDeclaration, @NotNull JetScope outerScope, ClassKind kind) { public MutableClassDescriptor(@NotNull BindingTrace trace, @NotNull DeclarationDescriptor containingDeclaration, @NotNull JetScope outerScope, ClassKind kind) {
super(containingDeclaration); super(containingDeclaration);
@@ -20,7 +20,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create( private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create(
INTEGER_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, OPEN_QUOTE, RAW_STRING_LITERAL, INTEGER_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, OPEN_QUOTE, RAW_STRING_LITERAL,
NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, TRAIT_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
FUN_KEYWORD, FOR_KEYWORD, NULL_KEYWORD, FUN_KEYWORD, FOR_KEYWORD, NULL_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD,
CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, TRY_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, TRY_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD,
@@ -79,6 +79,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
LBRACKET, // attribute LBRACKET, // attribute
FUN_KEYWORD, FUN_KEYWORD,
VAL_KEYWORD, VAR_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
TRAIT_KEYWORD,
CLASS_KEYWORD, CLASS_KEYWORD,
TYPE_KEYWORD TYPE_KEYWORD
), ),
@@ -1236,7 +1237,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private JetNodeType parseLocalDeclarationRest(boolean isEnum) { private JetNodeType parseLocalDeclarationRest(boolean isEnum) {
IElementType keywordToken = tt(); IElementType keywordToken = tt();
JetNodeType declType = null; JetNodeType declType = null;
if (keywordToken == CLASS_KEYWORD) { if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) {
declType = myJetParsing.parseClass(isEnum); declType = myJetParsing.parseClass(isEnum);
} }
else if (keywordToken == FUN_KEYWORD) { else if (keywordToken == FUN_KEYWORD) {
@@ -28,13 +28,13 @@ public class JetParsing extends AbstractJetParsing {
} }
} }
private static final TokenSet TOPLEVEL_OBJECT_FIRST = TokenSet.create(TYPE_KEYWORD, CLASS_KEYWORD, private static final TokenSet TOPLEVEL_OBJECT_FIRST = TokenSet.create(TYPE_KEYWORD, TRAIT_KEYWORD, CLASS_KEYWORD,
FUN_KEYWORD, VAL_KEYWORD, NAMESPACE_KEYWORD); FUN_KEYWORD, VAL_KEYWORD, NAMESPACE_KEYWORD);
private static final TokenSet ENUM_MEMBER_FIRST = TokenSet.create(TYPE_KEYWORD, CLASS_KEYWORD, private static final TokenSet ENUM_MEMBER_FIRST = TokenSet.create(TYPE_KEYWORD, TRAIT_KEYWORD, CLASS_KEYWORD,
FUN_KEYWORD, VAL_KEYWORD, IDENTIFIER); FUN_KEYWORD, VAL_KEYWORD, IDENTIFIER);
private static final TokenSet CLASS_NAME_RECOVERY_SET = TokenSet.orSet(TokenSet.create(LT, WRAPS_KEYWORD, LPAR, COLON, LBRACE), TOPLEVEL_OBJECT_FIRST); private static final TokenSet CLASS_NAME_RECOVERY_SET = TokenSet.orSet(TokenSet.create(LT, LPAR, COLON, LBRACE), TOPLEVEL_OBJECT_FIRST);
private static final TokenSet TYPE_PARAMETER_GT_RECOVERY_SET = TokenSet.create(WHERE_KEYWORD, WRAPS_KEYWORD, LPAR, COLON, LBRACE, GT); private static final TokenSet TYPE_PARAMETER_GT_RECOVERY_SET = TokenSet.create(WHERE_KEYWORD, LPAR, COLON, LBRACE, GT);
private static final TokenSet PARAMETER_NAME_RECOVERY_SET = TokenSet.create(COLON, EQ, COMMA, RPAR); private static final TokenSet PARAMETER_NAME_RECOVERY_SET = TokenSet.create(COLON, EQ, COMMA, RPAR);
private static final TokenSet NAMESPACE_NAME_RECOVERY_SET = TokenSet.create(DOT, EOL_OR_SEMICOLON); private static final TokenSet NAMESPACE_NAME_RECOVERY_SET = TokenSet.create(DOT, EOL_OR_SEMICOLON);
/*package*/ static final TokenSet TYPE_REF_FIRST = TokenSet.create(LBRACKET, IDENTIFIER, FUN_KEYWORD, LPAR, CAPITALIZED_THIS_KEYWORD); /*package*/ static final TokenSet TYPE_REF_FIRST = TokenSet.create(LBRACKET, IDENTIFIER, FUN_KEYWORD, LPAR, CAPITALIZED_THIS_KEYWORD);
@@ -227,7 +227,7 @@ public class JetParsing extends AbstractJetParsing {
if (keywordToken == NAMESPACE_KEYWORD) { if (keywordToken == NAMESPACE_KEYWORD) {
declType = parseNamespaceBlock(); declType = parseNamespaceBlock();
} }
else if (keywordToken == CLASS_KEYWORD) { else if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) {
declType = parseClass(detector.isDetected()); declType = parseClass(detector.isDetected());
} }
else if (keywordToken == FUN_KEYWORD) { else if (keywordToken == FUN_KEYWORD) {
@@ -404,36 +404,28 @@ public class JetParsing extends AbstractJetParsing {
/* /*
* class * class
* : modifiers "class" SimpleName * : modifiers ("class" | "trait") SimpleName
* typeParameters? * typeParameters?
* ( * modifiers ("(" primaryConstructorParameter{","} ")")?
* ("wraps" "(" primaryConstructorParameter{","} ")") |
* (modifiers "(" primaryConstructorParameter{","} ")"))?
* (":" attributes delegationSpecifier{","})? * (":" attributes delegationSpecifier{","})?
* typeConstraints * typeConstraints
* (classBody? | enumClassBody) * (classBody? | enumClassBody)
* ; * ;
*/ */
public JetNodeType parseClass(boolean enumClass) { public JetNodeType parseClass(boolean enumClass) {
assert _at(CLASS_KEYWORD); assert _atSet(CLASS_KEYWORD, TRAIT_KEYWORD);
advance(); // CLASS_KEYWORD advance(); // CLASS_KEYWORD or TRAIT_KEYWORD
expect(IDENTIFIER, "Class name expected", CLASS_NAME_RECOVERY_SET); expect(IDENTIFIER, "Class name expected", CLASS_NAME_RECOVERY_SET);
boolean typeParametersDeclared = parseTypeParameterList(TYPE_PARAMETER_GT_RECOVERY_SET); boolean typeParametersDeclared = parseTypeParameterList(TYPE_PARAMETER_GT_RECOVERY_SET);
if (at(WRAPS_KEYWORD)) { if (parseModifierList(PRIMARY_CONSTRUCTOR_MODIFIER_LIST, false)) {
advance(); // WRAPS_KEYWORD
parseValueParameterList(false, TokenSet.create(COLON, LBRACE)); parseValueParameterList(false, TokenSet.create(COLON, LBRACE));
} }
else { else {
if (parseModifierList(PRIMARY_CONSTRUCTOR_MODIFIER_LIST, false)) { if (at(LPAR)) {
parseValueParameterList(false, TokenSet.create(COLON, LBRACE)); parseValueParameterList(false, TokenSet.create(COLON, LBRACE));
} }
else {
if (at(LPAR)) {
parseValueParameterList(false, TokenSet.create(COLON, LBRACE));
}
}
} }
if (at(COLON)) { if (at(COLON)) {
@@ -601,8 +593,11 @@ public class JetParsing extends AbstractJetParsing {
declType = parseClass(isEnum); declType = parseClass(isEnum);
} }
} }
else if (keywordToken == TRAIT_KEYWORD) {
declType = parseClass(isEnum);
}
else if (keywordToken == FUN_KEYWORD) { else if (keywordToken == FUN_KEYWORD) {
declType = parseFunction(); declType = parseFunction();
} }
else if (keywordToken == VAL_KEYWORD || keywordToken == VAR_KEYWORD) { else if (keywordToken == VAL_KEYWORD || keywordToken == VAR_KEYWORD) {
declType = parseProperty(); declType = parseProperty();
@@ -5,6 +5,7 @@ import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetNodeTypes; import org.jetbrains.jet.JetNodeTypes;
import org.jetbrains.jet.lexer.JetTokens;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@@ -114,4 +115,8 @@ public class JetClass extends JetTypeParameterListOwner implements JetClassOrObj
} }
return getName(); return getName();
} }
public boolean isTrait() {
return findChildByType(JetTokens.TRAIT_KEYWORD) != null;
}
} }
@@ -694,7 +694,7 @@ public class ClassDescriptorResolver {
); );
trace.record(BindingContext.CONSTRUCTOR, declarationToTrace, constructorDescriptor); trace.record(BindingContext.CONSTRUCTOR, declarationToTrace, constructorDescriptor);
if (modifierList != null) { if (modifierList != null) {
modifierList.checkNotContains(trace, JetTokens.ABSTRACT_KEYWORD, JetTokens.VIRTUAL_KEYWORD, JetTokens.OVERRIDE_KEYWORD); modifierList.checkNotContains(trace, JetTokens.ABSTRACT_KEYWORD, JetTokens.OPEN_KEYWORD, JetTokens.OVERRIDE_KEYWORD, JetTokens.FINAL_KEYWORD);
} }
return constructorDescriptor.initialize( return constructorDescriptor.initialize(
typeParameters, typeParameters,
@@ -167,7 +167,7 @@ public class TopDownAnalyzer {
@Override @Override
public void visitClass(JetClass klass) { public void visitClass(JetClass klass) {
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(trace, owner, outerScope); MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(trace, owner, outerScope, getClassKind(klass));
if (klass.hasModifier(JetTokens.ENUM_KEYWORD)) { if (klass.hasModifier(JetTokens.ENUM_KEYWORD)) {
MutableClassDescriptor classObjectDescriptor = new MutableClassDescriptor(trace, mutableClassDescriptor, outerScope, ClassKind.OBJECT); MutableClassDescriptor classObjectDescriptor = new MutableClassDescriptor(trace, mutableClassDescriptor, outerScope, ClassKind.OBJECT);
@@ -201,7 +201,7 @@ public class TopDownAnalyzer {
classes.put(enumEntry, classDescriptor); classes.put(enumEntry, classDescriptor);
} }
else { else {
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(trace, classObjectDescriptor, outerScope); MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(trace, classObjectDescriptor, outerScope, ClassKind.CLASS); // TODO : Special kind for enum entry classes?
visitClassOrObject( visitClassOrObject(
enumEntry, enumEntry,
(Map) classes, (Map) classes,
@@ -267,6 +267,14 @@ public class TopDownAnalyzer {
} }
} }
@NotNull
private ClassKind getClassKind(@NotNull JetClass jetClass) {
if (jetClass.isTrait()) return ClassKind.TRAIT;
if (jetClass.hasModifier(JetTokens.ANNOTATION_KEYWORD)) return ClassKind.ANNOTATION_CLASS;
if (jetClass.hasModifier(JetTokens.ENUM_KEYWORD)) return ClassKind.ENUM_CLASS;
return ClassKind.CLASS;
}
private void processImports(@NotNull JetNamespace namespace, @NotNull WriteThroughScope namespaceScope, @NotNull JetScope outerScope) { private void processImports(@NotNull JetNamespace namespace, @NotNull WriteThroughScope namespaceScope, @NotNull JetScope outerScope) {
List<JetImportDirective> importDirectives = namespace.getImportDirectives(); List<JetImportDirective> importDirectives = namespace.getImportDirectives();
for (JetImportDirective importDirective : importDirectives) { for (JetImportDirective importDirective : importDirectives) {
@@ -164,6 +164,7 @@ LONG_TEMPLATE_ENTRY_END=\}
"while" { return JetTokens.WHILE_KEYWORD ;} "while" { return JetTokens.WHILE_KEYWORD ;}
"break" { return JetTokens.BREAK_KEYWORD ;} "break" { return JetTokens.BREAK_KEYWORD ;}
"class" { return JetTokens.CLASS_KEYWORD ;} "class" { return JetTokens.CLASS_KEYWORD ;}
"trait" { return JetTokens.TRAIT_KEYWORD ;}
"throw" { return JetTokens.THROW_KEYWORD ;} "throw" { return JetTokens.THROW_KEYWORD ;}
"false" { return JetTokens.FALSE_KEYWORD ;} "false" { return JetTokens.FALSE_KEYWORD ;}
"when" { return JetTokens.WHEN_KEYWORD ;} "when" { return JetTokens.WHEN_KEYWORD ;}
@@ -119,17 +119,15 @@ public interface JetTokens {
JetToken COMMA = new JetToken("COMMA"); JetToken COMMA = new JetToken("COMMA");
JetToken EOL_OR_SEMICOLON = new JetToken("EOL_OR_SEMICOLON"); JetToken EOL_OR_SEMICOLON = new JetToken("EOL_OR_SEMICOLON");
JetKeywordToken WRAPS_KEYWORD = JetKeywordToken.softKeyword("wraps");
JetKeywordToken IMPORT_KEYWORD = JetKeywordToken.softKeyword("import"); JetKeywordToken IMPORT_KEYWORD = JetKeywordToken.softKeyword("import");
JetKeywordToken WHERE_KEYWORD = JetKeywordToken.softKeyword("where"); JetKeywordToken WHERE_KEYWORD = JetKeywordToken.softKeyword("where");
JetKeywordToken BY_KEYWORD = JetKeywordToken.softKeyword("by"); JetKeywordToken BY_KEYWORD = JetKeywordToken.softKeyword("by");
JetKeywordToken GET_KEYWORD = JetKeywordToken.softKeyword("get"); JetKeywordToken GET_KEYWORD = JetKeywordToken.softKeyword("get");
JetKeywordToken SET_KEYWORD = JetKeywordToken.softKeyword("set"); JetKeywordToken SET_KEYWORD = JetKeywordToken.softKeyword("set");
JetKeywordToken ABSTRACT_KEYWORD = JetKeywordToken.softKeyword("abstract"); JetKeywordToken ABSTRACT_KEYWORD = JetKeywordToken.softKeyword("abstract");
JetKeywordToken VIRTUAL_KEYWORD = JetKeywordToken.softKeyword("virtual");
JetKeywordToken ENUM_KEYWORD = JetKeywordToken.softKeyword("enum"); JetKeywordToken ENUM_KEYWORD = JetKeywordToken.softKeyword("enum");
JetKeywordToken OPEN_KEYWORD = JetKeywordToken.softKeyword("open"); JetKeywordToken OPEN_KEYWORD = JetKeywordToken.softKeyword("open");
JetKeywordToken ATTRIBUTE_KEYWORD = JetKeywordToken.softKeyword("attribute"); JetKeywordToken ANNOTATION_KEYWORD = JetKeywordToken.softKeyword("annotation");
JetKeywordToken OVERRIDE_KEYWORD = JetKeywordToken.softKeyword("override"); JetKeywordToken OVERRIDE_KEYWORD = JetKeywordToken.softKeyword("override");
JetKeywordToken PRIVATE_KEYWORD = JetKeywordToken.softKeyword("private"); JetKeywordToken PRIVATE_KEYWORD = JetKeywordToken.softKeyword("private");
JetKeywordToken PUBLIC_KEYWORD = JetKeywordToken.softKeyword("public"); JetKeywordToken PUBLIC_KEYWORD = JetKeywordToken.softKeyword("public");
@@ -144,23 +142,23 @@ public interface JetTokens {
// TODO: support this as an annotation on arguments. Then, they it probably can not be a soft keyword // TODO: support this as an annotation on arguments. Then, they it probably can not be a soft keyword
JetKeywordToken REF_KEYWORD = JetKeywordToken.softKeyword("ref"); JetKeywordToken REF_KEYWORD = JetKeywordToken.softKeyword("ref");
TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, TRAIT_KEYWORD,
THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, FOR_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, FOR_KEYWORD,
NULL_KEYWORD, NULL_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD,
IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD,
ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, TRY_KEYWORD, WHEN_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, TRY_KEYWORD, WHEN_KEYWORD,
NOT_IN, NOT_IS, CAPITALIZED_THIS_KEYWORD, AS_SAFE, TRAIT_KEYWORD NOT_IN, NOT_IS, CAPITALIZED_THIS_KEYWORD, AS_SAFE
); );
TokenSet SOFT_KEYWORDS = TokenSet.create(WRAPS_KEYWORD, IMPORT_KEYWORD, WHERE_KEYWORD, BY_KEYWORD, GET_KEYWORD, TokenSet SOFT_KEYWORDS = TokenSet.create(IMPORT_KEYWORD, WHERE_KEYWORD, BY_KEYWORD, GET_KEYWORD,
SET_KEYWORD, ABSTRACT_KEYWORD, VIRTUAL_KEYWORD, ENUM_KEYWORD, OPEN_KEYWORD, ATTRIBUTE_KEYWORD, SET_KEYWORD, ABSTRACT_KEYWORD, ENUM_KEYWORD, OPEN_KEYWORD, ANNOTATION_KEYWORD,
OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD, PROTECTED_KEYWORD, OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD, PROTECTED_KEYWORD,
CATCH_KEYWORD, FINALLY_KEYWORD, REF_KEYWORD, OUT_KEYWORD, FINAL_KEYWORD CATCH_KEYWORD, FINALLY_KEYWORD, REF_KEYWORD, OUT_KEYWORD, FINAL_KEYWORD
); );
TokenSet MODIFIER_KEYWORDS = TokenSet.create(ABSTRACT_KEYWORD, VIRTUAL_KEYWORD, ENUM_KEYWORD, TokenSet MODIFIER_KEYWORDS = TokenSet.create(ABSTRACT_KEYWORD, ENUM_KEYWORD,
OPEN_KEYWORD, ATTRIBUTE_KEYWORD, OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD, OPEN_KEYWORD, ANNOTATION_KEYWORD, OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD,
PROTECTED_KEYWORD, REF_KEYWORD, OUT_KEYWORD, IN_KEYWORD, FINAL_KEYWORD PROTECTED_KEYWORD, REF_KEYWORD, OUT_KEYWORD, IN_KEYWORD, FINAL_KEYWORD
); );
TokenSet WHITE_SPACE_OR_COMMENT_BIT_SET = TokenSet.create(WHITE_SPACE, BLOCK_COMMENT, EOL_COMMENT, DOC_COMMENT); TokenSet WHITE_SPACE_OR_COMMENT_BIT_SET = TokenSet.create(WHITE_SPACE, BLOCK_COMMENT, EOL_COMMENT, DOC_COMMENT);
+279 -271
View File
@@ -1,4 +1,4 @@
/* The following code was generated by JFlex 1.4.3 on 7/12/11 9:55 PM */ /* The following code was generated by JFlex 1.4.3 on 9/9/11 2:48 PM */
/* It's an automatically generated code. Do not modify it. */ /* It's an automatically generated code. Do not modify it. */
package org.jetbrains.jet.lexer; package org.jetbrains.jet.lexer;
@@ -14,7 +14,7 @@ import org.jetbrains.jet.lexer.JetTokens;
/** /**
* This class is a scanner generated by * This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3 * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
* on 7/12/11 9:55 PM from the specification file * on 9/9/11 2:48 PM from the specification file
* <tt>/Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex</tt> * <tt>/Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex</tt>
*/ */
class _JetLexer implements FlexLexer { class _JetLexer implements FlexLexer {
@@ -44,70 +44,70 @@ class _JetLexer implements FlexLexer {
"\11\0\1\3\1\13\1\0\1\3\23\0\1\3\1\60\1\25\1\77"+ "\11\0\1\3\1\13\1\0\1\3\23\0\1\3\1\60\1\25\1\77"+
"\1\7\1\70\1\65\1\23\1\73\1\74\1\12\1\62\1\76\1\21"+ "\1\7\1\70\1\65\1\23\1\73\1\74\1\12\1\62\1\76\1\21"+
"\1\17\1\11\1\14\11\1\1\67\1\75\1\63\1\57\1\64\1\61"+ "\1\17\1\11\1\14\11\1\1\67\1\75\1\63\1\57\1\64\1\61"+
"\1\10\1\2\1\16\2\2\1\20\1\2\5\4\1\4\3\4\1\22"+ "\1\10\1\2\1\16\2\2\1\20\1\2\11\4\1\22\3\4\1\54"+
"\3\4\1\54\3\4\1\15\2\4\1\71\1\24\1\72\1\0\1\4"+ "\3\4\1\15\2\4\1\71\1\24\1\72\1\0\1\4\1\6\1\31"+
"\1\6\1\31\1\44\1\36\1\56\1\33\1\52\1\4\1\47\1\41"+ "\1\44\1\36\1\56\1\33\1\52\1\4\1\47\1\41\1\45\1\51"+
"\1\45\1\51\1\50\1\32\1\30\1\37\1\35\1\4\1\43\1\34"+ "\1\50\1\32\1\30\1\37\1\35\1\4\1\43\1\34\1\40\1\42"+
"\1\40\1\42\1\55\1\46\1\15\1\53\1\4\1\26\1\66\1\27"+ "\1\55\1\46\1\15\1\53\1\4\1\26\1\66\1\27\54\0\1\4"+
"\54\0\1\4\12\0\1\4\4\0\1\4\5\0\27\4\1\0\37\4"+ "\12\0\1\4\4\0\1\4\5\0\27\4\1\0\37\4\1\0\u013f\4"+
"\1\0\u013f\4\31\0\162\4\4\0\14\4\16\0\5\4\11\0\1\4"+ "\31\0\162\4\4\0\14\4\16\0\5\4\11\0\1\4\213\0\1\4"+
"\213\0\1\4\13\0\1\4\1\0\3\4\1\0\1\4\1\0\24\4"+ "\13\0\1\4\1\0\3\4\1\0\1\4\1\0\24\4\1\0\54\4"+
"\1\0\54\4\1\0\46\4\1\0\5\4\4\0\202\4\10\0\105\4"+ "\1\0\46\4\1\0\5\4\4\0\202\4\10\0\105\4\1\0\46\4"+
"\1\0\46\4\2\0\2\4\6\0\20\4\41\0\46\4\2\0\1\4"+ "\2\0\2\4\6\0\20\4\41\0\46\4\2\0\1\4\7\0\47\4"+
"\7\0\47\4\110\0\33\4\5\0\3\4\56\0\32\4\5\0\13\4"+ "\110\0\33\4\5\0\3\4\56\0\32\4\5\0\13\4\25\0\12\5"+
"\25\0\12\5\4\0\2\4\1\0\143\4\1\0\1\4\17\0\2\4"+ "\4\0\2\4\1\0\143\4\1\0\1\4\17\0\2\4\7\0\2\4"+
"\7\0\2\4\12\5\3\4\2\0\1\4\20\0\1\4\1\0\36\4"+ "\12\5\3\4\2\0\1\4\20\0\1\4\1\0\36\4\35\0\3\4"+
"\35\0\3\4\60\0\46\4\13\0\1\4\u0152\0\66\4\3\0\1\4"+ "\60\0\46\4\13\0\1\4\u0152\0\66\4\3\0\1\4\22\0\1\4"+
"\22\0\1\4\7\0\12\4\4\0\12\5\25\0\10\4\2\0\2\4"+ "\7\0\12\4\4\0\12\5\25\0\10\4\2\0\2\4\2\0\26\4"+
"\2\0\26\4\1\0\7\4\1\0\1\4\3\0\4\4\3\0\1\4"+ "\1\0\7\4\1\0\1\4\3\0\4\4\3\0\1\4\36\0\2\4"+
"\36\0\2\4\1\0\3\4\4\0\12\5\2\4\23\0\6\4\4\0"+ "\1\0\3\4\4\0\12\5\2\4\23\0\6\4\4\0\2\4\2\0"+
"\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0\2\4\1\0"+ "\26\4\1\0\7\4\1\0\2\4\1\0\2\4\1\0\2\4\37\0"+
"\2\4\37\0\4\4\1\0\1\4\7\0\12\5\2\0\3\4\20\0"+ "\4\4\1\0\1\4\7\0\12\5\2\0\3\4\20\0\11\4\1\0"+
"\11\4\1\0\3\4\1\0\26\4\1\0\7\4\1\0\2\4\1\0"+ "\3\4\1\0\26\4\1\0\7\4\1\0\2\4\1\0\5\4\3\0"+
"\5\4\3\0\1\4\22\0\1\4\17\0\2\4\4\0\12\5\25\0"+ "\1\4\22\0\1\4\17\0\2\4\4\0\12\5\25\0\10\4\2\0"+
"\10\4\2\0\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0"+ "\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0\5\4\3\0"+
"\5\4\3\0\1\4\36\0\2\4\1\0\3\4\4\0\12\5\1\0"+ "\1\4\36\0\2\4\1\0\3\4\4\0\12\5\1\0\1\4\21\0"+
"\1\4\21\0\1\4\1\0\6\4\3\0\3\4\1\0\4\4\3\0"+ "\1\4\1\0\6\4\3\0\3\4\1\0\4\4\3\0\2\4\1\0"+
"\2\4\1\0\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0"+ "\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0\10\4\1\0"+
"\10\4\1\0\3\4\55\0\11\5\25\0\10\4\1\0\3\4\1\0"+ "\3\4\55\0\11\5\25\0\10\4\1\0\3\4\1\0\27\4\1\0"+
"\27\4\1\0\12\4\1\0\5\4\46\0\2\4\4\0\12\5\25\0"+ "\12\4\1\0\5\4\46\0\2\4\4\0\12\5\25\0\10\4\1\0"+
"\10\4\1\0\3\4\1\0\27\4\1\0\12\4\1\0\5\4\3\0"+ "\3\4\1\0\27\4\1\0\12\4\1\0\5\4\3\0\1\4\40\0"+
"\1\4\40\0\1\4\1\0\2\4\4\0\12\5\25\0\10\4\1\0"+ "\1\4\1\0\2\4\4\0\12\5\25\0\10\4\1\0\3\4\1\0"+
"\3\4\1\0\27\4\1\0\20\4\46\0\2\4\4\0\12\5\25\0"+ "\27\4\1\0\20\4\46\0\2\4\4\0\12\5\25\0\22\4\3\0"+
"\22\4\3\0\30\4\1\0\11\4\1\0\1\4\2\0\7\4\72\0"+ "\30\4\1\0\11\4\1\0\1\4\2\0\7\4\72\0\60\4\1\0"+
"\60\4\1\0\2\4\14\0\7\4\11\0\12\5\47\0\2\4\1\0"+ "\2\4\14\0\7\4\11\0\12\5\47\0\2\4\1\0\1\4\2\0"+
"\1\4\2\0\2\4\1\0\1\4\2\0\1\4\6\0\4\4\1\0"+ "\2\4\1\0\1\4\2\0\1\4\6\0\4\4\1\0\7\4\1\0"+
"\7\4\1\0\3\4\1\0\1\4\1\0\1\4\2\0\2\4\1\0"+ "\3\4\1\0\1\4\1\0\1\4\2\0\2\4\1\0\4\4\1\0"+
"\4\4\1\0\2\4\11\0\1\4\2\0\5\4\1\0\1\4\11\0"+ "\2\4\11\0\1\4\2\0\5\4\1\0\1\4\11\0\12\5\2\0"+
"\12\5\2\0\2\4\42\0\1\4\37\0\12\5\26\0\10\4\1\0"+ "\2\4\42\0\1\4\37\0\12\5\26\0\10\4\1\0\42\4\35\0"+
"\42\4\35\0\4\4\164\0\42\4\1\0\5\4\1\0\2\4\25\0"+ "\4\4\164\0\42\4\1\0\5\4\1\0\2\4\25\0\12\5\6\0"+
"\12\5\6\0\6\4\112\0\46\4\12\0\51\4\7\0\132\4\5\0"+ "\6\4\112\0\46\4\12\0\51\4\7\0\132\4\5\0\104\4\5\0"+
"\104\4\5\0\122\4\6\0\7\4\1\0\77\4\1\0\1\4\1\0"+ "\122\4\6\0\7\4\1\0\77\4\1\0\1\4\1\0\4\4\2\0"+
"\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0\47\4\1\0"+ "\7\4\1\0\1\4\1\0\4\4\2\0\47\4\1\0\1\4\1\0"+
"\1\4\1\0\4\4\2\0\37\4\1\0\1\4\1\0\4\4\2\0"+ "\4\4\2\0\37\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0"+
"\7\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0\7\4\1\0"+ "\1\4\1\0\4\4\2\0\7\4\1\0\7\4\1\0\27\4\1\0"+
"\27\4\1\0\37\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0"+ "\37\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0\47\4\1\0"+
"\47\4\1\0\23\4\16\0\11\5\56\0\125\4\14\0\u026c\4\2\0"+ "\23\4\16\0\11\5\56\0\125\4\14\0\u026c\4\2\0\10\4\12\0"+
"\10\4\12\0\32\4\5\0\113\4\25\0\15\4\1\0\4\4\16\0"+ "\32\4\5\0\113\4\25\0\15\4\1\0\4\4\16\0\22\4\16\0"+
"\22\4\16\0\22\4\16\0\15\4\1\0\3\4\17\0\64\4\43\0"+ "\22\4\16\0\15\4\1\0\3\4\17\0\64\4\43\0\1\4\4\0"+
"\1\4\4\0\1\4\3\0\12\5\46\0\12\5\6\0\130\4\10\0"+ "\1\4\3\0\12\5\46\0\12\5\6\0\130\4\10\0\51\4\127\0"+
"\51\4\127\0\35\4\51\0\12\5\36\4\2\0\5\4\u038b\0\154\4"+ "\35\4\51\0\12\5\36\4\2\0\5\4\u038b\0\154\4\224\0\234\4"+
"\224\0\234\4\4\0\132\4\6\0\26\4\2\0\6\4\2\0\46\4"+ "\4\0\132\4\6\0\26\4\2\0\6\4\2\0\46\4\2\0\6\4"+
"\2\0\6\4\2\0\10\4\1\0\1\4\1\0\1\4\1\0\1\4"+ "\2\0\10\4\1\0\1\4\1\0\1\4\1\0\1\4\1\0\37\4"+
"\1\0\37\4\2\0\65\4\1\0\7\4\1\0\1\4\3\0\3\4"+ "\2\0\65\4\1\0\7\4\1\0\1\4\3\0\3\4\1\0\7\4"+
"\1\0\7\4\3\0\4\4\2\0\6\4\4\0\15\4\5\0\3\4"+ "\3\0\4\4\2\0\6\4\4\0\15\4\5\0\3\4\1\0\7\4"+
"\1\0\7\4\164\0\1\4\15\0\1\4\202\0\1\4\4\0\1\4"+ "\164\0\1\4\15\0\1\4\202\0\1\4\4\0\1\4\2\0\12\4"+
"\2\0\12\4\1\0\1\4\3\0\5\4\6\0\1\4\1\0\1\4"+ "\1\0\1\4\3\0\5\4\6\0\1\4\1\0\1\4\1\0\1\4"+
"\1\0\1\4\1\0\4\4\1\0\3\4\1\0\7\4\3\0\3\4"+ "\1\0\4\4\1\0\3\4\1\0\7\4\3\0\3\4\5\0\5\4"+
"\5\0\5\4\u0ebb\0\2\4\52\0\5\4\5\0\2\4\4\0\126\4"+ "\u0ebb\0\2\4\52\0\5\4\5\0\2\4\4\0\126\4\6\0\3\4"+
"\6\0\3\4\1\0\132\4\1\0\4\4\5\0\50\4\4\0\136\4"+ "\1\0\132\4\1\0\4\4\5\0\50\4\4\0\136\4\21\0\30\4"+
"\21\0\30\4\70\0\20\4\u0200\0\u19b6\4\112\0\u51a6\4\132\0\u048d\4"+ "\70\0\20\4\u0200\0\u19b6\4\112\0\u51a6\4\132\0\u048d\4\u0773\0\u2ba4\4"+
"\u0773\0\u2ba4\4\u215c\0\u012e\4\2\0\73\4\225\0\7\4\14\0\5\4"+ "\u215c\0\u012e\4\2\0\73\4\225\0\7\4\14\0\5\4\5\0\1\4"+
"\5\0\1\4\1\0\12\4\1\0\15\4\1\0\5\4\1\0\1\4"+ "\1\0\12\4\1\0\15\4\1\0\5\4\1\0\1\4\1\0\2\4"+
"\1\0\2\4\1\0\2\4\1\0\154\4\41\0\u016b\4\22\0\100\4"+ "\1\0\2\4\1\0\154\4\41\0\u016b\4\22\0\100\4\2\0\66\4"+
"\2\0\66\4\50\0\14\4\164\0\5\4\1\0\207\4\23\0\12\5"+ "\50\0\14\4\164\0\5\4\1\0\207\4\23\0\12\5\7\0\32\4"+
"\7\0\32\4\6\0\32\4\13\0\131\4\3\0\6\4\2\0\6\4"+ "\6\0\32\4\13\0\131\4\3\0\6\4\2\0\6\4\2\0\6\4"+
"\2\0\6\4\2\0\3\4\43\0"; "\2\0\3\4\43\0";
/** /**
* Translates characters to character classes * Translates characters to character classes
@@ -132,16 +132,16 @@ class _JetLexer implements FlexLexer {
"\1\0\1\66\1\67\1\70\1\71\1\72\1\73\1\74"+ "\1\0\1\66\1\67\1\70\1\71\1\72\1\73\1\74"+
"\1\75\1\76\1\77\1\100\1\0\1\101\1\102\1\0"+ "\1\75\1\76\1\77\1\100\1\0\1\101\1\102\1\0"+
"\1\103\1\43\1\3\2\0\1\50\1\104\4\0\1\105"+ "\1\103\1\43\1\3\2\0\1\50\1\104\4\0\1\105"+
"\2\3\1\106\5\3\1\107\10\3\1\110\1\111\1\3"+ "\2\3\1\106\6\3\1\107\10\3\1\110\1\111\1\3"+
"\1\112\1\113\1\114\1\115\1\116\1\117\1\0\1\40"+ "\1\112\1\113\1\114\1\115\1\116\1\117\1\0\1\40"+
"\1\44\1\45\1\0\2\104\1\43\2\0\1\3\1\120"+ "\1\44\1\45\1\0\2\104\1\43\2\0\1\3\1\120"+
"\1\121\3\3\1\122\1\123\1\3\1\124\2\3\1\125"+ "\1\121\4\3\1\122\1\123\1\3\1\124\2\3\1\125"+
"\2\3\1\126\1\100\1\50\2\0\2\3\1\127\1\3"+ "\2\3\1\126\1\100\1\50\2\0\2\3\1\127\1\3"+
"\1\130\1\3\1\131\1\132\1\133\1\105\2\3\1\134"+ "\1\130\1\131\1\3\1\132\1\133\1\134\1\105\2\3"+
"\1\135\3\3\1\136\1\137"; "\1\135\1\136\3\3\1\137\1\140";
private static int [] zzUnpackAction() { private static int [] zzUnpackAction() {
int [] result = new int[210]; int [] result = new int[213];
int offset = 0; int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result; return result;
@@ -183,19 +183,19 @@ class _JetLexer implements FlexLexer {
"\0\u0100\0\u0100\0\u0100\0\u0100\0\u0100\0\u0100\0\u1480\0\u14c0"+ "\0\u0100\0\u0100\0\u0100\0\u0100\0\u0100\0\u0100\0\u1480\0\u14c0"+
"\0\u0100\0\u0100\0\u1500\0\u0100\0\u1540\0\u0100\0\u1580\0\u15c0"+ "\0\u0100\0\u0100\0\u1500\0\u0100\0\u1540\0\u0100\0\u1580\0\u15c0"+
"\0\u1600\0\u1640\0\u1680\0\u16c0\0\u1700\0\u1740\0\u1780\0\u17c0"+ "\0\u1600\0\u1640\0\u1680\0\u16c0\0\u1700\0\u1740\0\u1780\0\u17c0"+
"\0\u1800\0\u0100\0\u1840\0\u1880\0\u18c0\0\u1900\0\u1940\0\u0180"+ "\0\u1800\0\u0100\0\u1840\0\u1880\0\u18c0\0\u1900\0\u1940\0\u1980"+
"\0\u1980\0\u19c0\0\u1a00\0\u1a40\0\u1a80\0\u1ac0\0\u1b00\0\u1b40"+ "\0\u0180\0\u19c0\0\u1a00\0\u1a40\0\u1a80\0\u1ac0\0\u1b00\0\u1b40"+
"\0\u0180\0\u0180\0\u1b80\0\u0180\0\u0180\0\u0100\0\u0100\0\u0100"+ "\0\u1b80\0\u0180\0\u0180\0\u1bc0\0\u0180\0\u0180\0\u0100\0\u0100"+
"\0\u0100\0\u1bc0\0\u0100\0\u0100\0\u0100\0\u1c00\0\u1c40\0\u0100"+ "\0\u0100\0\u0100\0\u1c00\0\u0100\0\u0100\0\u0100\0\u1c40\0\u1c80"+
"\0\u1c80\0\u1540\0\u1cc0\0\u1d00\0\u0180\0\u0180\0\u1d40\0\u1d80"+ "\0\u0100\0\u1cc0\0\u1540\0\u1d00\0\u1d40\0\u0180\0\u0180\0\u1d80"+
"\0\u1dc0\0\u0180\0\u0180\0\u1e00\0\u0180\0\u1e40\0\u1e80\0\u0180"+ "\0\u1dc0\0\u1e00\0\u1e40\0\u0180\0\u0180\0\u1e80\0\u0180\0\u1ec0"+
"\0\u1ec0\0\u1f00\0\u0180\0\u0100\0\u0100\0\u1f40\0\u1f80\0\u1fc0"+ "\0\u1f00\0\u0180\0\u1f40\0\u1f80\0\u0180\0\u0100\0\u0100\0\u1fc0"+
"\0\u2000\0\u0180\0\u2040\0\u0180\0\u2080\0\u0180\0\u0180\0\u0180"+ "\0\u2000\0\u2040\0\u2080\0\u0180\0\u20c0\0\u0180\0\u0180\0\u2100"+
"\0\u0100\0\u20c0\0\u2100\0\u0180\0\u0180\0\u2140\0\u2180\0\u21c0"+ "\0\u0180\0\u0180\0\u0180\0\u0100\0\u2140\0\u2180\0\u0180\0\u0180"+
"\0\u0180\0\u0180"; "\0\u21c0\0\u2200\0\u2240\0\u0180\0\u0180";
private static int [] zzUnpackRowMap() { private static int [] zzUnpackRowMap() {
int [] result = new int[210]; int [] result = new int[213];
int offset = 0; int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result; return result;
@@ -315,110 +315,114 @@ class _JetLexer implements FlexLexer {
"\5\0\1\7\1\215\25\7\22\0\2\7\1\0\2\7"+ "\5\0\1\7\1\215\25\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\15\7"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\15\7"+
"\1\216\11\7\22\0\2\7\1\0\2\7\6\0\3\7"+ "\1\216\11\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\12\7\1\217\10\7"+ "\1\0\1\7\1\0\1\7\5\0\1\7\1\217\10\7"+
"\1\220\3\7\22\0\2\7\1\0\2\7\6\0\3\7"+ "\1\220\10\7\1\221\3\7\22\0\2\7\1\0\2\7"+
"\1\0\1\7\1\0\1\7\5\0\11\7\1\221\1\7"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\11\7"+
"\1\222\13\7\22\0\2\7\1\0\2\7\6\0\3\7"+ "\1\222\1\7\1\223\13\7\22\0\2\7\1\0\2\7"+
"\1\0\1\7\1\0\1\7\5\0\5\7\1\223\21\7"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\5\7"+
"\1\224\21\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\10\7\1\225\16\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\10\7\1\224\16\7\22\0\2\7"+ "\1\0\1\7\5\0\3\7\1\226\23\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\3\7\1\225\23\7\22\0\2\7\1\0\2\7"+ "\5\0\3\7\1\227\5\7\1\230\15\7\22\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\3\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\1\226\5\7\1\227\15\7\22\0\2\7\1\0\2\7"+ "\5\0\20\7\1\231\6\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\13\7"+
"\1\232\13\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\1\233\26\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\11\7\1\234\15\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\13\7\1\235\4\7\1\236\6\7\100\0\1\237\50\0"+
"\1\240\3\0\1\241\122\0\1\242\21\0\2\167\1\0"+
"\2\167\6\0\3\167\1\0\1\167\1\0\1\167\5\0"+
"\27\167\23\0\1\243\1\0\1\243\10\0\2\243\1\0"+
"\1\243\1\0\1\243\5\0\27\243\22\0\2\173\1\0"+
"\2\173\1\244\5\0\3\173\1\0\1\173\1\0\1\173"+
"\5\0\27\173\22\0\1\175\12\0\1\175\64\0\2\177"+
"\1\0\2\177\1\245\5\0\3\177\1\0\1\177\1\0"+
"\1\177\5\0\27\177\22\0\2\200\1\0\2\200\1\246"+
"\5\0\3\200\1\0\1\200\1\0\1\200\5\0\27\200"+
"\21\0\12\201\1\247\65\201\11\250\1\251\1\202\65\250"+
"\1\0\1\114\12\0\1\114\64\0\2\252\11\0\1\252"+
"\1\0\1\252\1\174\1\252\10\0\1\252\1\0\1\252"+
"\2\0\1\252\5\0\1\252\5\0\1\252\3\0\1\252"+
"\22\0\1\175\12\0\1\175\4\0\1\253\40\0\1\253"+
"\34\0\1\174\60\0\25\207\1\254\52\207\1\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\3\7\1\255\23\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\20\7"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\20\7"+
"\1\230\6\7\22\0\2\7\1\0\2\7\6\0\3\7"+ "\1\256\6\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\13\7\1\231\13\7"+ "\1\0\1\7\1\0\1\7\5\0\3\7\1\257\23\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\1\232\26\7\22\0\2\7\1\0"+ "\1\0\1\7\5\0\10\7\1\260\16\7\22\0\2\7"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\11\7\1\233\15\7\22\0\2\7\1\0\2\7\6\0"+ "\5\0\4\7\1\261\22\7\22\0\2\7\1\0\2\7"+
"\3\7\1\0\1\7\1\0\1\7\5\0\13\7\1\234"+
"\4\7\1\235\6\7\100\0\1\236\50\0\1\237\3\0"+
"\1\240\122\0\1\241\21\0\2\167\1\0\2\167\6\0"+
"\3\167\1\0\1\167\1\0\1\167\5\0\27\167\23\0"+
"\1\242\1\0\1\242\10\0\2\242\1\0\1\242\1\0"+
"\1\242\5\0\27\242\22\0\2\173\1\0\2\173\1\243"+
"\5\0\3\173\1\0\1\173\1\0\1\173\5\0\27\173"+
"\22\0\1\175\12\0\1\175\64\0\2\177\1\0\2\177"+
"\1\244\5\0\3\177\1\0\1\177\1\0\1\177\5\0"+
"\27\177\22\0\2\200\1\0\2\200\1\245\5\0\3\200"+
"\1\0\1\200\1\0\1\200\5\0\27\200\21\0\12\201"+
"\1\246\65\201\11\247\1\250\1\202\65\247\1\0\1\114"+
"\12\0\1\114\64\0\2\251\11\0\1\251\1\0\1\251"+
"\1\174\1\251\10\0\1\251\1\0\1\251\2\0\1\251"+
"\5\0\1\251\5\0\1\251\3\0\1\251\22\0\1\175"+
"\12\0\1\175\4\0\1\252\40\0\1\252\34\0\1\174"+
"\60\0\25\207\1\253\52\207\1\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\3\7"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\3\7"+
"\1\254\23\7\22\0\2\7\1\0\2\7\6\0\3\7"+ "\1\262\23\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\20\7\1\255\6\7"+ "\1\0\1\7\1\0\1\7\5\0\11\7\1\263\15\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\3\7\1\256\23\7\22\0\2\7"+ "\1\0\1\7\5\0\3\7\1\264\23\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\10\7\1\257\16\7\22\0\2\7\1\0\2\7"+ "\5\0\4\7\1\265\22\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\4\7"+
"\1\260\22\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\3\7\1\261\23\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\3\7\1\262\23\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\4\7\1\263\22\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\7\7"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\7\7"+
"\1\264\17\7\22\0\2\7\1\0\2\7\6\0\3\7"+ "\1\266\17\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\3\7\1\265\23\7"+ "\1\0\1\7\1\0\1\7\5\0\3\7\1\267\23\7"+
"\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\0\1\7\5\0\12\7\1\266\14\7\22\0\2\7"+ "\1\0\1\7\5\0\12\7\1\270\14\7\22\0\2\7"+
"\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+
"\5\0\1\7\1\267\25\7\22\0\2\7\1\0\2\7"+ "\5\0\1\7\1\271\25\7\22\0\2\7\1\0\2\7"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\1\270"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\1\272"+
"\26\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ "\26\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\20\7\1\271\6\7\22\0"+ "\1\7\1\0\1\7\5\0\20\7\1\273\6\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\4\7\1\272\22\7\22\0\2\7\1\0"+ "\1\7\5\0\4\7\1\274\22\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\4\7\1\273\22\7\22\0\2\242\1\0\2\242\1\274"+ "\4\7\1\275\22\7\22\0\2\243\1\0\2\243\1\276"+
"\5\0\3\242\1\0\1\242\1\0\1\242\5\0\27\242"+ "\5\0\3\243\1\0\1\243\1\0\1\243\5\0\27\243"+
"\21\0\11\201\1\275\1\246\65\201\12\247\1\276\65\247"+ "\21\0\11\201\1\277\1\247\65\201\12\250\1\300\65\250"+
"\1\0\2\251\11\0\1\251\1\0\1\251\1\0\1\251"+ "\1\0\2\252\11\0\1\252\1\0\1\252\1\0\1\252"+
"\1\0\1\205\6\0\1\251\1\0\1\251\1\0\1\205"+ "\1\0\1\205\6\0\1\252\1\0\1\252\1\0\1\205"+
"\1\251\5\0\1\251\5\0\1\251\3\0\1\251\21\0"+ "\1\252\5\0\1\252\5\0\1\252\3\0\1\252\21\0"+
"\25\207\1\277\52\207\1\0\2\7\1\0\2\7\6\0"+ "\25\207\1\301\52\207\1\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\4\7\1\300"+ "\3\7\1\0\1\7\1\0\1\7\5\0\4\7\1\302"+
"\22\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ "\22\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\11\7\1\301\15\7\22\0"+ "\1\7\1\0\1\7\5\0\11\7\1\303\15\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\4\7\1\302\22\7\22\0\2\7\1\0"+ "\1\7\5\0\4\7\1\304\22\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\6\7\1\303\20\7\22\0\2\7\1\0\2\7\6\0"+ "\6\7\1\305\20\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\16\7\1\304"+ "\3\7\1\0\1\7\1\0\1\7\5\0\10\7\1\306"+
"\10\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ "\16\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\13\7\1\305\13\7\22\0"+ "\1\7\1\0\1\7\5\0\16\7\1\307\10\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\21\7\1\306\5\7\22\0\2\7\1\0"+ "\1\7\5\0\13\7\1\310\13\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\3\7\1\307\23\7\22\0\2\7\1\0\2\7\6\0"+ "\21\7\1\311\5\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\3\7\1\310"+ "\3\7\1\0\1\7\1\0\1\7\5\0\3\7\1\312"+
"\23\7\21\0\11\247\1\250\1\276\65\247\25\207\1\311"+ "\23\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\52\207\1\0\2\7\1\0\2\7\6\0\3\7\1\0"+ "\1\7\1\0\1\7\5\0\3\7\1\313\23\7\21\0"+
"\1\7\1\0\1\7\5\0\5\7\1\312\21\7\22\0"+ "\11\250\1\251\1\300\65\250\25\207\1\314\52\207\1\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\1\313\26\7\22\0\2\7\1\0\2\7"+ "\1\7\5\0\5\7\1\315\21\7\22\0\2\7\1\0"+
"\6\0\3\7\1\0\1\7\1\0\1\7\5\0\10\7"+
"\1\314\16\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\1\0\1\7\1\0\1\7\5\0\1\315\26\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\1\7\1\316\25\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\12\7\1\317\14\7\22\0\2\7\1\0\2\7\6\0"+ "\1\316\26\7\22\0\2\7\1\0\2\7\6\0\3\7"+
"\3\7\1\0\1\7\1\0\1\7\5\0\6\7\1\320"+ "\1\0\1\7\1\0\1\7\5\0\10\7\1\317\16\7"+
"\20\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+
"\1\7\1\0\1\7\5\0\3\7\1\321\23\7\22\0"+ "\1\0\1\7\5\0\1\320\26\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\1\7\1\321\25\7\22\0\2\7\1\0\2\7\6\0"+
"\3\7\1\0\1\7\1\0\1\7\5\0\12\7\1\322"+
"\14\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+
"\1\7\1\0\1\7\5\0\6\7\1\323\20\7\22\0"+
"\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+
"\1\7\5\0\3\7\1\322\23\7\21\0"; "\1\7\5\0\3\7\1\324\23\7\22\0\2\7\1\0"+
"\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+
"\3\7\1\325\23\7\21\0";
private static int [] zzUnpackTrans() { private static int [] zzUnpackTrans() {
int [] result = new int[8704]; int [] result = new int[8832];
int offset = 0; int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result; return result;
@@ -464,12 +468,12 @@ class _JetLexer implements FlexLexer {
"\1\1\1\0\1\1\1\0\1\1\1\0\1\11\2\1"+ "\1\1\1\0\1\1\1\0\1\1\1\0\1\11\2\1"+
"\2\11\4\1\5\11\1\1\1\0\27\1\1\11\1\0"+ "\2\11\4\1\5\11\1\1\1\0\27\1\1\11\1\0"+
"\1\1\11\11\1\1\1\0\2\11\1\0\1\11\1\1"+ "\1\1\11\11\1\1\1\0\2\11\1\0\1\11\1\1"+
"\1\11\2\0\2\1\4\0\3\1\1\11\23\1\4\11"+ "\1\11\2\0\2\1\4\0\3\1\1\11\24\1\4\11"+
"\1\0\3\11\1\0\1\1\1\11\1\1\2\0\20\1"+ "\1\0\3\11\1\0\1\1\1\11\1\1\2\0\21\1"+
"\2\11\2\0\11\1\1\11\11\1"; "\2\11\2\0\12\1\1\11\11\1";
private static int [] zzUnpackAttribute() { private static int [] zzUnpackAttribute() {
int [] result = new int[210]; int [] result = new int[213];
int offset = 0; int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result; return result;
@@ -578,7 +582,7 @@ class _JetLexer implements FlexLexer {
char [] map = new char[0x10000]; char [] map = new char[0x10000];
int i = 0; /* index in packed string */ int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */ int j = 0; /* index in unpacked array */
while (i < 1330) { while (i < 1326) {
int count = packed.charAt(i++); int count = packed.charAt(i++);
char value = packed.charAt(i++); char value = packed.charAt(i++);
do map[j++] = value; while (--count > 0); do map[j++] = value; while (--count > 0);
@@ -803,23 +807,23 @@ class _JetLexer implements FlexLexer {
case 3: case 3:
{ return JetTokens.IDENTIFIER; { return JetTokens.IDENTIFIER;
} }
case 96: break; case 97: break;
case 11: case 11:
{ pushState(STRING); return JetTokens.OPEN_QUOTE; { pushState(STRING); return JetTokens.OPEN_QUOTE;
} }
case 97: break; case 98: break;
case 72: case 72:
{ return JetTokens.FOR_KEYWORD ; { return JetTokens.FOR_KEYWORD ;
} }
case 98: break; case 99: break;
case 93: case 94:
{ return JetTokens.RETURN_KEYWORD ; { return JetTokens.RETURN_KEYWORD ;
} }
case 99: break; case 100: break;
case 80: case 80:
{ return JetTokens.NULL_KEYWORD ; { return JetTokens.NULL_KEYWORD ;
} }
case 100: break; case 101: break;
case 34: case 34:
{ if (lBraceCount == 0) { { if (lBraceCount == 0) {
popState(); popState();
@@ -828,365 +832,369 @@ class _JetLexer implements FlexLexer {
lBraceCount--; lBraceCount--;
return JetTokens.RBRACE; return JetTokens.RBRACE;
} }
case 101: break; case 102: break;
case 18: case 18:
{ return JetTokens.LT ; { return JetTokens.LT ;
} }
case 102: break; case 103: break;
case 51: case 51:
{ return JetTokens.DO_KEYWORD ; { return JetTokens.DO_KEYWORD ;
} }
case 103: break; case 104: break;
case 17: case 17:
{ return JetTokens.PLUS ; { return JetTokens.PLUS ;
} }
case 104: break; case 105: break;
case 69: case 69:
{ return JetTokens.RAW_STRING_LITERAL; { return JetTokens.RAW_STRING_LITERAL;
} }
case 105: break; case 106: break;
case 57: case 57:
{ return JetTokens.PLUSEQ ; { return JetTokens.PLUSEQ ;
} }
case 106: break; case 107: break;
case 27: case 27:
{ return JetTokens.COMMA ; { return JetTokens.COMMA ;
} }
case 107: break; case 108: break;
case 19: case 19:
{ return JetTokens.GT ; { return JetTokens.GT ;
} }
case 108: break; case 109: break;
case 4: case 4:
{ return JetTokens.WHITE_SPACE; { return JetTokens.WHITE_SPACE;
} }
case 109: break; case 110: break;
case 25: case 25:
{ return JetTokens.RPAR ; { return JetTokens.RPAR ;
} }
case 110: break; case 111: break;
case 53: case 53:
{ return JetTokens.DOUBLE_ARROW; { return JetTokens.DOUBLE_ARROW;
} }
case 111: break; case 112: break;
case 82: case 82:
{ return JetTokens.TRUE_KEYWORD ; { return JetTokens.TRUE_KEYWORD ;
} }
case 112: break; case 113: break;
case 36: case 36:
{ return JetTokens.FIELD_IDENTIFIER; { return JetTokens.FIELD_IDENTIFIER;
} }
case 113: break; case 114: break;
case 61: case 61:
{ return JetTokens.ANDAND ; { return JetTokens.ANDAND ;
} }
case 114: break; case 115: break;
case 65: case 65:
{ pushState(LONG_TEMPLATE_ENTRY); return JetTokens.LONG_TEMPLATE_ENTRY_START; { pushState(LONG_TEMPLATE_ENTRY); return JetTokens.LONG_TEMPLATE_ENTRY_START;
} }
case 115: break; case 116: break;
case 68: case 68:
{ return JetTokens.DOC_COMMENT; { return JetTokens.DOC_COMMENT;
} }
case 116: break; case 117: break;
case 35: case 35:
{ return JetTokens.FLOAT_LITERAL; { return JetTokens.FLOAT_LITERAL;
} }
case 117: break; case 118: break;
case 39: case 39:
{ return JetTokens.EOL_COMMENT; { return JetTokens.EOL_COMMENT;
} }
case 118: break; case 119: break;
case 85: case 85:
{ return JetTokens.WHEN_KEYWORD ; { return JetTokens.WHEN_KEYWORD ;
} }
case 119: break; case 120: break;
case 20: case 20:
{ return JetTokens.COLON ; { return JetTokens.COLON ;
} }
case 120: break; case 121: break;
case 59: case 59:
{ return JetTokens.LTEQ ; { return JetTokens.LTEQ ;
} }
case 121: break; case 122: break;
case 46: case 46:
{ return JetTokens.ARROW ; { return JetTokens.ARROW ;
} }
case 122: break; case 123: break;
case 32: case 32:
{ popState(); return JetTokens.IDENTIFIER; { popState(); return JetTokens.IDENTIFIER;
} }
case 123: break; case 124: break;
case 22: case 22:
{ return JetTokens.LBRACKET ; { return JetTokens.LBRACKET ;
} }
case 124: break; case 125: break;
case 67: case 67:
{ yypushback(2); return JetTokens.INTEGER_LITERAL; { yypushback(2); return JetTokens.INTEGER_LITERAL;
} }
case 125: break; case 126: break;
case 10: case 10:
{ return JetTokens.CHARACTER_LITERAL; { return JetTokens.CHARACTER_LITERAL;
} }
case 126: break; case 127: break;
case 74: case 74:
{ return JetTokens.VAR_KEYWORD ; { return JetTokens.VAR_KEYWORD ;
} }
case 127: break; case 128: break;
case 60: case 60:
{ return JetTokens.GTEQ ; { return JetTokens.GTEQ ;
} }
case 128: break; case 129: break;
case 2: case 2:
{ return JetTokens.INTEGER_LITERAL; { return JetTokens.INTEGER_LITERAL;
} }
case 129: break; case 130: break;
case 13: case 13:
{ return JetTokens.RBRACE ; { return JetTokens.RBRACE ;
} }
case 130: break; case 131: break;
case 87: case 87:
{ return JetTokens.CLASS_KEYWORD ; { return JetTokens.CLASS_KEYWORD ;
} }
case 131: break; case 132: break;
case 15: case 15:
{ return JetTokens.EXCL ; { return JetTokens.EXCL ;
} }
case 132: break; case 133: break;
case 71: case 71:
{ return JetTokens.TRY_KEYWORD ; { return JetTokens.TRY_KEYWORD ;
} }
case 133: break; case 134: break;
case 54: case 54:
{ return JetTokens.EXCLEQ ; { return JetTokens.EXCLEQ ;
} }
case 134: break; case 135: break;
case 45: case 45:
{ return JetTokens.MINUSEQ ; { return JetTokens.MINUSEQ ;
} }
case 135: break; case 136: break;
case 88: case 89:
{ return JetTokens.THROW_KEYWORD ; { return JetTokens.THROW_KEYWORD ;
} }
case 136: break; case 137: break;
case 90: case 91:
{ return JetTokens.WHILE_KEYWORD ; { return JetTokens.WHILE_KEYWORD ;
} }
case 137: break; case 138: break;
case 44: case 44:
{ return JetTokens.MINUSMINUS; { return JetTokens.MINUSMINUS;
} }
case 138: break; case 139: break;
case 94: case 95:
{ return JetTokens.CONTINUE_KEYWORD ; { return JetTokens.CONTINUE_KEYWORD ;
} }
case 139: break; case 140: break;
case 77: case 77:
{ return JetTokens.NOT_IN; { return JetTokens.NOT_IN;
} }
case 140: break; case 141: break;
case 38: case 38:
{ return JetTokens.ATAT ; { return JetTokens.ATAT ;
} }
case 141: break; case 142: break;
case 6: case 6:
{ return JetTokens.DIV ; { return JetTokens.DIV ;
} }
case 142: break; case 143: break;
case 56: case 56:
{ return JetTokens.ELVIS ; { return JetTokens.ELVIS ;
} }
case 143: break; case 144: break;
case 37: case 37:
{ return JetTokens.LABEL_IDENTIFIER; { return JetTokens.LABEL_IDENTIFIER;
} }
case 144: break; case 145: break;
case 29: case 29:
{ return JetTokens.REGULAR_STRING_PART; { return JetTokens.REGULAR_STRING_PART;
} }
case 145: break; case 146: break;
case 16: case 16:
{ return JetTokens.QUEST ; { return JetTokens.QUEST ;
} }
case 146: break; case 147: break;
case 62: case 62:
{ return JetTokens.OROR ; { return JetTokens.OROR ;
} }
case 147: break; case 148: break;
case 21: case 21:
{ return JetTokens.PERC ; { return JetTokens.PERC ;
} }
case 148: break; case 149: break;
case 79: case 79:
{ return JetTokens.EXCLEQEQEQ; { return JetTokens.EXCLEQEQEQ;
} }
case 149: break; case 150: break;
case 63: case 63:
{ return JetTokens.PERCEQ ; { return JetTokens.PERCEQ ;
} }
case 150: break; case 151: break;
case 43: case 43:
{ return JetTokens.RANGE ; { return JetTokens.RANGE ;
} }
case 151: break; case 152: break;
case 1: case 1:
{ return TokenType.BAD_CHARACTER; { return TokenType.BAD_CHARACTER;
} }
case 152: break; case 153: break;
case 55: case 55:
{ return JetTokens.SAFE_ACCESS; { return JetTokens.SAFE_ACCESS;
} }
case 153: break; case 154: break;
case 95: case 96:
{ return JetTokens.NAMESPACE_KEYWORD ; { return JetTokens.NAMESPACE_KEYWORD ;
} }
case 154: break; case 155: break;
case 78: case 78:
{ return JetTokens.NOT_IS; { return JetTokens.NOT_IS;
} }
case 155: break; case 156: break;
case 7: case 7:
{ return JetTokens.MUL ; { return JetTokens.MUL ;
} }
case 156: break; case 157: break;
case 23: case 23:
{ return JetTokens.RBRACKET ; { return JetTokens.RBRACKET ;
} }
case 157: break; case 158: break;
case 58: case 58:
{ return JetTokens.PLUSPLUS ; { return JetTokens.PLUSPLUS ;
} }
case 158: break; case 159: break;
case 83: case 83:
{ return JetTokens.THIS_KEYWORD ; { return JetTokens.THIS_KEYWORD ;
} }
case 159: break; case 160: break;
case 8: case 8:
{ return JetTokens.DOT ; { return JetTokens.DOT ;
} }
case 160: break; case 161: break;
case 26: case 26:
{ return JetTokens.SEMICOLON ; { return JetTokens.SEMICOLON ;
} }
case 161: break; case 162: break;
case 50: case 50:
{ return JetTokens.IF_KEYWORD ; { return JetTokens.IF_KEYWORD ;
} }
case 162: break; case 163: break;
case 66: case 66:
{ return JetTokens.ESCAPE_SEQUENCE; { return JetTokens.ESCAPE_SEQUENCE;
} }
case 163: break; case 164: break;
case 31: case 31:
{ popState(); return JetTokens.CLOSING_QUOTE; { popState(); return JetTokens.CLOSING_QUOTE;
} }
case 164: break; case 165: break;
case 14: case 14:
{ return JetTokens.EQ ; { return JetTokens.EQ ;
} }
case 165: break; case 166: break;
case 5: case 5:
{ return JetTokens.AT ; { return JetTokens.AT ;
} }
case 166: break; case 167: break;
case 70: case 70:
{ return JetTokens.AS_SAFE; { return JetTokens.AS_SAFE;
} }
case 167: break; case 168: break;
case 24: case 24:
{ return JetTokens.LPAR ; { return JetTokens.LPAR ;
} }
case 168: break; case 169: break;
case 9: case 9:
{ return JetTokens.MINUS ; { return JetTokens.MINUS ;
} }
case 169: break; case 170: break;
case 91: case 92:
{ return JetTokens.FALSE_KEYWORD ; { return JetTokens.FALSE_KEYWORD ;
} }
case 170: break; case 171: break;
case 84: case 84:
{ return JetTokens.TYPE_KEYWORD ; { return JetTokens.TYPE_KEYWORD ;
} }
case 171: break; case 172: break;
case 73: case 73:
{ return JetTokens.FUN_KEYWORD ; { return JetTokens.FUN_KEYWORD ;
} }
case 172: break; case 173: break;
case 49: case 49:
{ return JetTokens.IS_KEYWORD ; { return JetTokens.IS_KEYWORD ;
} }
case 173: break; case 174: break;
case 30: case 30:
{ popState(); yypushback(1); return JetTokens.DANGLING_NEWLINE; { popState(); yypushback(1); return JetTokens.DANGLING_NEWLINE;
} }
case 174: break; case 175: break;
case 33: case 33:
{ lBraceCount++; return JetTokens.LBRACE; { lBraceCount++; return JetTokens.LBRACE;
} }
case 175: break; case 176: break;
case 41: case 41:
{ return JetTokens.DIVEQ ; { return JetTokens.DIVEQ ;
} }
case 176: break; case 177: break;
case 81: case 81:
{ return JetTokens.ELSE_KEYWORD ; { return JetTokens.ELSE_KEYWORD ;
} }
case 177: break; case 178: break;
case 47: case 47:
{ return JetTokens.AS_KEYWORD ; { return JetTokens.AS_KEYWORD ;
} }
case 178: break; case 179: break;
case 48: case 48:
{ return JetTokens.IN_KEYWORD ; { return JetTokens.IN_KEYWORD ;
} }
case 179: break; case 180: break;
case 52: case 52:
{ return JetTokens.EQEQ ; { return JetTokens.EQEQ ;
} }
case 180: break; case 181: break;
case 76: case 76:
{ return JetTokens.EQEQEQ ; { return JetTokens.EQEQEQ ;
} }
case 181: break; case 182: break;
case 75: case 75:
{ return JetTokens.VAL_KEYWORD ; { return JetTokens.VAL_KEYWORD ;
} }
case 182: break; case 183: break;
case 86: case 86:
{ return JetTokens.CAPITALIZED_THIS_KEYWORD ; { return JetTokens.CAPITALIZED_THIS_KEYWORD ;
} }
case 183: break; case 184: break;
case 42: case 42:
{ return JetTokens.MULTEQ ; { return JetTokens.MULTEQ ;
} }
case 184: break; case 185: break;
case 64: case 64:
{ pushState(SHORT_TEMPLATE_ENTRY); { pushState(SHORT_TEMPLATE_ENTRY);
yypushback(yylength() - 1); yypushback(yylength() - 1);
return JetTokens.SHORT_TEMPLATE_ENTRY_START; return JetTokens.SHORT_TEMPLATE_ENTRY_START;
} }
case 185: break; case 186: break;
case 12: case 12:
{ return JetTokens.LBRACE ; { return JetTokens.LBRACE ;
} }
case 186: break; case 187: break;
case 92: case 93:
{ return JetTokens.OBJECT_KEYWORD ; { return JetTokens.OBJECT_KEYWORD ;
} }
case 187: break; case 188: break;
case 89: case 90:
{ return JetTokens.BREAK_KEYWORD ; { return JetTokens.BREAK_KEYWORD ;
} }
case 188: break; case 189: break;
case 40: case 40:
{ return JetTokens.BLOCK_COMMENT; { return JetTokens.BLOCK_COMMENT;
} }
case 189: break; case 190: break;
case 88:
{ return JetTokens.TRAIT_KEYWORD ;
}
case 191: break;
case 28: case 28:
{ return JetTokens.HASH ; { return JetTokens.HASH ;
} }
case 190: break; case 192: break;
default: default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true; zzAtEOF = true;
@@ -54,12 +54,10 @@ public class JetPsiChecker implements Annotator {
if (reference instanceof MultiRangeReference) { if (reference instanceof MultiRangeReference) {
MultiRangeReference mrr = (MultiRangeReference) reference; MultiRangeReference mrr = (MultiRangeReference) reference;
for (TextRange range : mrr.getRanges()) { for (TextRange range : mrr.getRanges()) {
System.out.println("Unresolved1");
holder.createErrorAnnotation(range.shiftRight(referenceExpression.getTextOffset()), "Unresolved").setHighlightType(ProblemHighlightType.LIKE_UNKNOWN_SYMBOL); holder.createErrorAnnotation(range.shiftRight(referenceExpression.getTextOffset()), "Unresolved").setHighlightType(ProblemHighlightType.LIKE_UNKNOWN_SYMBOL);
} }
} }
else { else {
System.out.println("Unresolved2");
holder.createErrorAnnotation(referenceExpression, "Unresolved").setHighlightType(ProblemHighlightType.LIKE_UNKNOWN_SYMBOL); holder.createErrorAnnotation(referenceExpression, "Unresolved").setHighlightType(ProblemHighlightType.LIKE_UNKNOWN_SYMBOL);
} }
} }
@@ -80,8 +78,9 @@ public class JetPsiChecker implements Annotator {
PsiElement declarationPsiElement = bindingContext.get(BindingContext.DESCRIPTOR_TO_DECLARATION, redeclaration); PsiElement declarationPsiElement = bindingContext.get(BindingContext.DESCRIPTOR_TO_DECLARATION, redeclaration);
if (declarationPsiElement instanceof JetNamedDeclaration) { if (declarationPsiElement instanceof JetNamedDeclaration) {
PsiElement nameIdentifier = ((JetNamedDeclaration) declarationPsiElement).getNameIdentifier(); PsiElement nameIdentifier = ((JetNamedDeclaration) declarationPsiElement).getNameIdentifier();
assert nameIdentifier != null : declarationPsiElement.getText() + " has nameIdentifier 'null'"; if (nameIdentifier != null) {
holder.createErrorAnnotation(nameIdentifier, "Redeclaration"); holder.createErrorAnnotation(nameIdentifier, "Redeclaration");
}
} }
else if (declarationPsiElement != null) { else if (declarationPsiElement != null) {
holder.createErrorAnnotation(declarationPsiElement, "Redeclaration"); holder.createErrorAnnotation(declarationPsiElement, "Redeclaration");
@@ -100,8 +99,6 @@ public class JetPsiChecker implements Annotator {
}; };
if (errorReportingEnabled) { if (errorReportingEnabled) {
System.out.println("Checked: " + bindingContext.getDiagnostics().size());
System.out.println(Thread.currentThread().getId());
AnalyzingUtils.applyHandler(errorHandler, bindingContext); AnalyzingUtils.applyHandler(errorHandler, bindingContext);
} }
@@ -251,7 +251,7 @@ public class DescriptorRenderer {
@Override @Override
public Void visitClassDescriptor(ClassDescriptor descriptor, StringBuilder builder) { public Void visitClassDescriptor(ClassDescriptor descriptor, StringBuilder builder) {
String keyword = descriptor.getKind() == ClassKind.TRAIT ? "trait class" : "class"; String keyword = descriptor.getKind() == ClassKind.TRAIT ? "trait" : "class";
renderClassDescriptor(descriptor, builder, keyword); renderClassDescriptor(descriptor, builder, keyword);
return super.visitClassDescriptor(descriptor, builder); return super.visitClassDescriptor(descriptor, builder);
} }
+1 -1
View File
@@ -14,7 +14,7 @@ abstract class MyAbstractClass() {
<error>abstract</error> fun j() {} <error>abstract</error> fun j() {}
} }
trait class MyTrait { trait MyTrait {
fun f() fun f()
fun g() {} fun g() {}
<warning>abstract</warning> fun h() <warning>abstract</warning> fun h()
+1 -1
View File
@@ -4,7 +4,7 @@ open class A() {
fun foo() : Int = 1 fun foo() : Int = 1
} }
trait class B { trait B {
fun bar() : Double = 1.0; fun bar() : Double = 1.0;
} }
+1 -1
View File
@@ -1,6 +1,6 @@
namespace toplevelObjectDeclarations { namespace toplevelObjectDeclarations {
open class Foo(y : Int) { open class Foo(y : Int) {
virtual fun foo() : Int = 1 open fun foo() : Int = 1
} }
class T : <error>Foo</error> {} class T : <error>Foo</error> {}
@@ -17,25 +17,25 @@ open class C2 {}
open class C3 {} open class C3 {}
trait class T1 {} trait T1 {}
trait class T2<T> {} trait T2<T> {}
trait class Test<error>()</error> { trait Test<error>()</error> {
<error>this</error>(x : Int) {} <error>this</error>(x : Int) {}
} }
trait class Test1 : C2<error>()</error> {} trait Test1 : C2<error>()</error> {}
trait class Test2 : C2 {} trait Test2 : C2 {}
trait class Test3 : C2, <error>C3</error> {} trait Test3 : C2, <error>C3</error> {}
trait class Test4 : T1 {} trait Test4 : T1 {}
trait class Test5 : T1, <error>T1</error> {} trait Test5 : T1, <error>T1</error> {}
trait class Test6 : <error>C1</error> {} trait Test6 : <error>C1</error> {}
class CTest1() : OC1() {} class CTest1() : OC1() {}
+2 -2
View File
@@ -1,10 +1,10 @@
open class bar() open class bar()
trait open class Foo<error>()</error> : bar<error>()</error>, <error>bar</error>, <error>bar</error> { trait Foo<error>()</error> : bar<error>()</error>, <error>bar</error>, <error>bar</error> {
<error>this</error>(x : Int) {} <error>this</error>(x : Int) {}
} }
trait open class Foo2 : bar, Foo { trait Foo2 : bar, Foo {
} }
open class Foo1() : bar(), <error>bar</error>, Foo, <error>Foo</error><error>()</error> {} open class Foo1() : bar(), <error>bar</error>, Foo, <error>Foo</error><error>()</error> {}
@@ -4,7 +4,7 @@ fun box() {
} }
open class A { open class A {
virtual fun foo() {} open fun foo() {}
} }
open class B : A { open class B : A {
+1 -1
View File
@@ -1,7 +1,7 @@
import java.lang.Integer import java.lang.Integer
open class C { open class C {
virtual fun f(): Any = "C f" open fun f(): Any = "C f"
} }
class D() : C { class D() : C {
@@ -5,7 +5,7 @@ open class Base() {
} }
open class Left() : Base() {} open class Left() : Base() {}
trait class Right : Base {} trait Right : Base {}
class D() : Left(), Right class D() : Left(), Right
@@ -2,7 +2,7 @@ open class Base() {
fun n(n : Int) : Int = n + 1 fun n(n : Int) : Int = n + 1
} }
trait class Abstract {} trait Abstract {}
class Derived1() : Base(), Abstract {} class Derived1() : Base(), Abstract {}
class Derived2() : Abstract, Base() {} class Derived2() : Abstract, Base() {}
@@ -1,7 +1,7 @@
// Changed when traits were introduced. May not make sense any more // Changed when traits were introduced. May not make sense any more
open class X(val x : Int) {} open class X(val x : Int) {}
trait class Y { trait Y {
abstract val y : Int abstract val y : Int
} }
@@ -11,7 +11,7 @@ class Point(x : Int, yy : Int) : X(x) , Y {
override val y : Int = yy override val y : Int = yy
} }
trait class Abstract {} trait Abstract {}
class P1(x : Int, yy : Y) : Abstract, X(x), Y by yy {} class P1(x : Int, yy : Y) : Abstract, X(x), Y by yy {}
class P2(x : Int, yy : Y) : X(x), Abstract, Y by yy {} class P2(x : Int, yy : Y) : X(x), Abstract, Y by yy {}
@@ -10,7 +10,7 @@ open class Base() {
} }
} }
trait class Abstract {} trait Abstract {}
class Derived1() : Base(), Abstract {} class Derived1() : Base(), Abstract {}
class Derived2() : Abstract, Base() {} class Derived2() : Abstract, Base() {}
@@ -1,8 +1,8 @@
// Changed when traits were introduced. May not make sense any more // Changed when traits were introduced. May not make sense any more
trait class Left {} trait Left {}
open class Right() { open class Right() {
virtual fun f() = 42 open fun f() = 42
} }
class D() : Left, Right() { class D() : Left, Right() {
+6 -6
View File
@@ -1,12 +1,12 @@
namespace foo.bar.goo namespace foo.bar.goo
abstract abstract
virtual open
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
private private
protected protected
@@ -19,15 +19,15 @@ in
out out
ref ref
class Bar<abstract class Bar<abstract
virtual open
[sdfsdf(1+1) a] [sdfsdf(1+1) a]
[sdfsdf(1+1)] [sdfsdf(1+1)]
[a() sdfsdf(1+1)] [a() sdfsdf(1+1)]
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
[sdfsd sdfsd a.b.f.c] [sdfsd sdfsd a.b.f.c]
private private
+6 -6
View File
@@ -13,17 +13,17 @@ JetFile: Attributes.jet
MODIFIER_LIST MODIFIER_LIST
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
@@ -163,7 +163,7 @@ JetFile: Attributes.jet
MODIFIER_LIST MODIFIER_LIST
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
@@ -249,11 +249,11 @@ JetFile: Attributes.jet
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
+6 -6
View File
@@ -1,12 +1,12 @@
namespace foo.bar.goo namespace foo.bar.goo
abstract abstract
virtual open
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
[] []
private private
@@ -21,12 +21,12 @@ in
out out
ref ref
class Bar<abstract class Bar<abstract
virtual open
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
[sdfsd sdfsd a.b.f.c] [sdfsd sdfsd a.b.f.c]
private private
+6 -6
View File
@@ -13,17 +13,17 @@ JetFile: Attributes_ERR.jet
MODIFIER_LIST MODIFIER_LIST
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
@@ -199,17 +199,17 @@ JetFile: Attributes_ERR.jet
MODIFIER_LIST MODIFIER_LIST
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
+9 -9
View File
@@ -1,12 +1,12 @@
namespace foo.bar.goo namespace foo.bar.goo
abstract abstract
virtual open
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
private private
protected protected
@@ -16,12 +16,12 @@ in
out out
ref ref
class Bar<abstract class Bar<abstract
virtual open
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
private private
protected protected
@@ -31,12 +31,12 @@ ref
out out
ref T> { ref T> {
val abstract val abstract
val virtual val open
val enum val enum
val open val open
val attribute val annotation
val override val override
val virtual val open
val abstract val abstract
val private val private
val protected val protected
+9 -9
View File
@@ -13,17 +13,17 @@ JetFile: SimpleModifiers.jet
MODIFIER_LIST MODIFIER_LIST
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
@@ -50,17 +50,17 @@ JetFile: SimpleModifiers.jet
MODIFIER_LIST MODIFIER_LIST
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
@@ -92,7 +92,7 @@ JetFile: SimpleModifiers.jet
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
@@ -107,7 +107,7 @@ JetFile: SimpleModifiers.jet
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute') PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
@@ -117,7 +117,7 @@ JetFile: SimpleModifiers.jet
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
+26 -26
View File
@@ -4,12 +4,12 @@ import foo
public protected private internal public protected private internal
abstract abstract
virtual open
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
private private
protected protected
@@ -18,27 +18,27 @@ internal
in in
out out
ref ref
class Bar<abstract, abstract enum : T, out virtual, class Bar<abstract, abstract enum : T, out open,
public protected private internal abstract public protected private internal abstract
virtual open
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
private private
protected protected
public public
internal open internal open
> wraps (a : B) : A by b { > (a : B) : A by b {
public protected private internal val abstract public protected private internal val abstract
val virtual val open
val enum val enum
val open val open
val attribute val annotation
val override val override
val virtual val open
val abstract val abstract
val private val private
val protected val protected
@@ -61,12 +61,12 @@ ref
public protected private internal public protected private internal
fun abstract () : abstract fun abstract () : abstract
fun virtual () : virtual fun open () : open
fun enum () : enum fun enum () : enum
fun open () : open fun open () : open
fun attribute () : attribute fun annotation () : annotation
fun override () : override fun override () : override
fun virtual () : virtual fun open () : open
fun abstract () : abstract fun abstract () : abstract
fun private () : private fun private () : private
fun protected () : protected fun protected () : protected
@@ -86,12 +86,12 @@ ref
fun test( fun test(
abstract : t, abstract : t,
virtual : t, open : t,
enum : t, enum : t,
open : t, open : t,
attribute : t, annotation : t,
override : t, override : t,
virtual : t, open : t,
abstract : t, abstract : t,
private : t, private : t,
protected : t, protected : t,
@@ -109,12 +109,12 @@ ref
protected : t, protected : t,
internal : t, internal : t,
public protected private internal abstract public protected private internal abstract
virtual open
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
private private
protected protected
@@ -128,12 +128,12 @@ ref
class F(val foo : bar, class F(val foo : bar,
abstract : t, abstract : t,
virtual : t, open : t,
enum : t, enum : t,
open : t, open : t,
attribute : t, annotation : t,
override : t, override : t,
virtual : t, open : t,
abstract : t, abstract : t,
private : t, private : t,
protected : t, protected : t,
@@ -151,12 +151,12 @@ class F(val foo : bar,
protected : t, protected : t,
internal : t, internal : t,
public protected private internal abstract public protected private internal abstract
virtual open
enum enum
open open
attribute annotation
override override
virtual open
abstract abstract
private private
protected protected
+28 -30
View File
@@ -27,17 +27,17 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
@@ -82,7 +82,7 @@ JetFile: SoftKeywords.jet
MODIFIER_LIST MODIFIER_LIST
PsiElement(out)('out') PsiElement(out)('out')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
TYPE_PARAMETER TYPE_PARAMETER
@@ -97,17 +97,17 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
@@ -123,8 +123,6 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(wraps)('wraps')
PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_PARAMETER VALUE_PARAMETER
@@ -172,7 +170,7 @@ JetFile: SoftKeywords.jet
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
@@ -187,7 +185,7 @@ JetFile: SoftKeywords.jet
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute') PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
@@ -197,7 +195,7 @@ JetFile: SoftKeywords.jet
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
@@ -336,7 +334,7 @@ JetFile: SoftKeywords.jet
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
@@ -347,7 +345,7 @@ JetFile: SoftKeywords.jet
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
@@ -384,7 +382,7 @@ JetFile: SoftKeywords.jet
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute') PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
@@ -395,7 +393,7 @@ JetFile: SoftKeywords.jet
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('attribute') PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
@@ -416,7 +414,7 @@ JetFile: SoftKeywords.jet
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
@@ -427,7 +425,7 @@ JetFile: SoftKeywords.jet
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
@@ -704,7 +702,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
VALUE_PARAMETER VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -737,7 +735,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
VALUE_PARAMETER VALUE_PARAMETER
PsiElement(IDENTIFIER)('attribute') PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -759,7 +757,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
VALUE_PARAMETER VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -957,17 +955,17 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
@@ -1025,7 +1023,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
VALUE_PARAMETER VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1058,7 +1056,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
VALUE_PARAMETER VALUE_PARAMETER
PsiElement(IDENTIFIER)('attribute') PsiElement(IDENTIFIER)('annotation')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1080,7 +1078,7 @@ JetFile: SoftKeywords.jet
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
VALUE_PARAMETER VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1278,17 +1276,17 @@ JetFile: SoftKeywords.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute') PsiElement(annotation)('annotation')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
+1 -1
View File
@@ -21,7 +21,7 @@ fun countOnes(x : INumber) = if (x == 0) 0 else mostSignificantBit(x) + countOne
fun Int.matchMask(mask : Int) = this and mask == mask fun Int.matchMask(mask : Int) = this and mask == mask
virtual class INumber : IComparable<This> { open class INumber : IComparable<This> {
val bits : Int val bits : Int
[operator] fun plus(other : This) : This [operator] fun plus(other : This) : This
[operator] fun shl(bits : Int) : This [operator] fun shl(bits : Int) : This
+1 -1
View File
@@ -515,7 +515,7 @@ JetFile: BitArith.jet
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IPushPop<T> { open class IPushPop<T> {
val isEmpty : Boolean val isEmpty : Boolean
fun push(item : T) fun push(item : T)
fun pop() : T fun pop() : T
+1 -1
View File
@@ -2,7 +2,7 @@ JetFile: IPushPop.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,9 +1,9 @@
virtual class Builder<E, R> { open class Builder<E, R> {
[operator] fun plusAssign(item : E) [operator] fun plusAssign(item : E)
fun result() : R fun result() : R
} }
virtual class Buildable { open class Buildable {
fun newBuilder<E, R>() : Builder<E, R> fun newBuilder<E, R>() : Builder<E, R>
} }
@@ -2,7 +2,7 @@ JetFile: PolymorphicClassObjects.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -67,7 +67,7 @@ JetFile: PolymorphicClassObjects.jet
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -2,11 +2,11 @@
These declarations are "shallow" in the sense that they are not really compiled, only the type-checker uses them These declarations are "shallow" in the sense that they are not really compiled, only the type-checker uses them
*/ */
virtual class ReadOnlyArray<out T> : ISized { open class ReadOnlyArray<out T> : ISized {
[operator] fun get(index : Int) : T [operator] fun get(index : Int) : T
} }
virtual class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant open class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant
[operator] fun set(index : Int, value : T) [operator] fun set(index : Int, value : T)
} }
@@ -4,7 +4,7 @@ JetFile: MutableArray.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -69,7 +69,7 @@ JetFile: MutableArray.jet
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,27 +1,27 @@
virtual class IEquality { open class IEquality {
fun equals(other : Any) : Boolean fun equals(other : Any) : Boolean
= (this as java.lang.Object).equals(other as java.lang.Object) = (this as java.lang.Object).equals(other as java.lang.Object)
} }
virtual class IHashable : IEquality { open class IHashable : IEquality {
val hashCode : Integer val hashCode : Integer
get() = (this as java.lang.Object).hashCode() get() = (this as java.lang.Object).hashCode()
} }
virtual class IMap<K, V> { open class IMap<K, V> {
fun get(key : K) : V fun get(key : K) : V
fun set(key : K, value : V) : V fun set(key : K, value : V) : V
fun remove(key : K) : V fun remove(key : K) : V
fun containsKey(key : K) : Boolean fun containsKey(key : K) : Boolean
} }
class HashableWrapper wraps (val obj : Any) : IHashable class HashableWrapper(val obj : Any) : IHashable
// equals and hashCode implementations are inherited // equals and hashCode implementations are inherited
[inline] fun Any.hashable() : HashableWrapper = HashableWrapper(this) [inline] fun Any.hashable() : HashableWrapper = HashableWrapper(this)
virtual class IHashingStrategy<K> { open class IHashingStrategy<K> {
fun equals(a : K, b : K) : Boolean fun equals(a : K, b : K) : Boolean
fun hashCode(a : K) : Integer fun hashCode(a : K) : Integer
} }
@@ -2,7 +2,7 @@ JetFile: HashMap.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -95,7 +95,7 @@ JetFile: HashMap.jet
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -170,7 +170,7 @@ JetFile: HashMap.jet
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -301,11 +301,8 @@ JetFile: HashMap.jet
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('HashableWrapper') PsiElement(IDENTIFIER)('HashableWrapper')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST TYPE_PARAMETER_LIST
<empty list> <empty list>
PsiElement(wraps)('wraps')
PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_PARAMETER VALUE_PARAMETER
@@ -378,7 +375,7 @@ JetFile: HashMap.jet
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,3 +1,3 @@
virtual class IIterable<out T> { open class IIterable<out T> {
fun iterator() : IIterator<T> fun iterator() : IIterator<T>
} }
@@ -2,7 +2,7 @@ JetFile: IIterable.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IIterator<out T> { open class IIterator<out T> {
fun next() : T fun next() : T
val hasNext : Boolean val hasNext : Boolean
@@ -2,7 +2,7 @@ JetFile: IIterator.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IList<out T> : IIterable<T>, ISized { open class IList<out T> : IIterable<T>, ISized {
[operator] fun get(index : Int) : T [operator] fun get(index : Int) : T
val isEmpty : Boolean val isEmpty : Boolean
} }
@@ -2,7 +2,7 @@ JetFile: IList.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,3 +1,3 @@
virtual class IMutableIterable<out T> : IIterable<T> { open class IMutableIterable<out T> : IIterable<T> {
fun mutableIterator() : IMutableIterator<T> fun mutableIterator() : IMutableIterator<T>
} }
@@ -2,7 +2,7 @@ JetFile: IMutableIterable.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IMutableIterator<out T> : IIterator<T> { open class IMutableIterator<out T> : IIterator<T> {
fun remove() : T fun remove() : T
/* /*
@@ -2,7 +2,7 @@ JetFile: IMutableIterator.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IMutableList<T> : IList<T>, IMutableIterable<T> { open class IMutableList<T> : IList<T>, IMutableIterable<T> {
fun set(index : Int, value : T) : T fun set(index : Int, value : T) : T
fun add(index : Int, value : T) fun add(index : Int, value : T)
fun remove(index : Int) : T fun remove(index : Int) : T
@@ -2,7 +2,7 @@ JetFile: IMutableList.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IMutableSet<T> : ISet<T>, IMutableIterable<T> { open class IMutableSet<T> : ISet<T>, IMutableIterable<T> {
fun add(item : T) : Boolean fun add(item : T) : Boolean
fun remove(item : T) : Boolean fun remove(item : T) : Boolean
} }
@@ -2,7 +2,7 @@ JetFile: IMutableSet.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,3 +1,3 @@
virtual class ISet<T> : IIterable<T>, ISized { open class ISet<T> : IIterable<T>, ISized {
fun contains(item : T) : Boolean fun contains(item : T) : Boolean
} }
@@ -2,7 +2,7 @@ JetFile: ISet.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,3 +1,3 @@
virtual class ISized { open class ISized {
val size : Int val size : Int
} }
@@ -2,7 +2,7 @@ JetFile: ISized.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
+2 -2
View File
@@ -1,8 +1,8 @@
virtual class IAdder<in T> { open class IAdder<in T> {
fun add(item : T) : Boolean fun add(item : T) : Boolean
} }
virtual class ICloseable { open class ICloseable {
fun close() fun close()
} }
+2 -2
View File
@@ -2,7 +2,7 @@ JetFile: IOSamples.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -47,7 +47,7 @@ JetFile: IOSamples.jet
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
+1 -1
View File
@@ -1,4 +1,4 @@
virtual class IMap<in K, out V> { open class IMap<in K, out V> {
} }
+1 -1
View File
@@ -2,7 +2,7 @@ JetFile: IMap.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
virtual class IPriorityQueue<T> { open class IPriorityQueue<T> {
fun extract() : T fun extract() : T
fun add(item : T) fun add(item : T)
val isEmpty : Boolean val isEmpty : Boolean
@@ -2,7 +2,7 @@ JetFile: IPriorityQueue.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1,4 +1,4 @@
class PriorityQueueAsPushPop<T> wraps(wrapped : IPriorityQueue<T>) : IPushPop<T> { class PriorityQueueAsPushPop<T>(wrapped : IPriorityQueue<T>) : IPushPop<T> {
override fun pop() = wrapped.extract() override fun pop() = wrapped.extract()
override fun push(item : T) = wrapped.add(item) override fun push(item : T) = wrapped.add(item)
override val isEmpty override val isEmpty
@@ -9,8 +9,6 @@ JetFile: PriorityQueueAsPushPop.jet
TYPE_PARAMETER TYPE_PARAMETER
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiWhiteSpace(' ')
PsiElement(wraps)('wraps')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_PARAMETER VALUE_PARAMETER
@@ -1,3 +1,3 @@
virtual class IComparable<in T> { open class IComparable<in T> {
fun compareTo(other : T) : Int fun compareTo(other : T) : Int
} }
@@ -2,7 +2,7 @@ JetFile: IComparable.jet
NAMESPACE NAMESPACE
CLASS CLASS
MODIFIER_LIST MODIFIER_LIST
PsiElement(virtual)('virtual') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -12,11 +12,11 @@ val {foo.bar.() : ()}.foo = foo
val {foo.bar.() : ()}.foo : bar = foo val {foo.bar.() : ()}.foo : bar = foo
[a] public get() {} [a] public get() {}
virtual set(a : b) {} open set(a : b) {}
val {foo.bar.() : ()}.foo : bar = foo val {foo.bar.() : ()}.foo : bar = foo
virtual set(a : b) {} open set(a : b) {}
val {foo.bar.() : ()}.foo : bar = foo val {foo.bar.() : ()}.foo : bar = foo
+1 -1
View File
@@ -1,6 +1,6 @@
namespace toplevelObjectDeclarations { namespace toplevelObjectDeclarations {
class Foo(y : Int) { class Foo(y : Int) {
~foo()~virtual fun foo() : Int = 1 ~foo()~open fun foo() : Int = 1
} }
object ~A~A : Foo(0) { object ~A~A : Foo(0) {