Lines 53-58
Link Here
|
53 |
&& this.source[this.index] == '!'; |
53 |
&& this.source[this.index] == '!'; |
54 |
} |
54 |
} |
55 |
|
55 |
|
|
|
56 |
boolean isAtEnd() { |
57 |
return this.index >= this.source.length; |
58 |
} |
59 |
|
56 |
boolean isAtFieldOrMethodStart() { |
60 |
boolean isAtFieldOrMethodStart() { |
57 |
return |
61 |
return |
58 |
this.index < this.source.length |
62 |
this.index < this.source.length |
Lines 116-122
Link Here
|
116 |
return this.index < this.source.length && "LIZVCDBFJS[!".indexOf(this.source[this.index]) != -1; //$NON-NLS-1$ |
120 |
return this.index < this.source.length && "LIZVCDBFJS[!".indexOf(this.source[this.index]) != -1; //$NON-NLS-1$ |
117 |
} |
121 |
} |
118 |
|
122 |
|
119 |
boolean isAtFlagsStart() { |
123 |
boolean isAtThrownStart() { |
120 |
return |
124 |
return |
121 |
this.index < this.source.length |
125 |
this.index < this.source.length |
122 |
&& this.source[this.index] == '^'; |
126 |
&& this.source[this.index] == '^'; |
Lines 325-330
Link Here
|
325 |
} |
329 |
} |
326 |
} |
330 |
} |
327 |
|
331 |
|
|
|
332 |
void skipThrownStart() { |
333 |
while (this.index < this.source.length && this.source[this.index] == '^') |
334 |
this.index++; |
335 |
} |
336 |
|
328 |
void skipParametersStart() { |
337 |
void skipParametersStart() { |
329 |
while (this.index < this.source.length && (this.source[this.index] == '<' || this.source[this.index] == '%')) |
338 |
while (this.index < this.source.length && (this.source[this.index] == '<' || this.source[this.index] == '%')) |
330 |
this.index++; |
339 |
this.index++; |
Lines 429-434
Link Here
|
429 |
// default is to do nothing |
438 |
// default is to do nothing |
430 |
} |
439 |
} |
431 |
|
440 |
|
|
|
441 |
public void consumeException() { |
442 |
// default is to do nothing |
443 |
} |
444 |
|
432 |
public void consumeField(char[] fieldName) { |
445 |
public void consumeField(char[] fieldName) { |
433 |
// default is to do nothing |
446 |
// default is to do nothing |
434 |
} |
447 |
} |
Lines 579-585
Link Here
|
579 |
|
592 |
|
580 |
consumeType(); |
593 |
consumeType(); |
581 |
this.scanner.skipTypeEnd(); |
594 |
this.scanner.skipTypeEnd(); |
582 |
parseFlags(); |
|
|
583 |
|
595 |
|
584 |
if (this.scanner.isAtFieldOrMethodStart()) { |
596 |
if (this.scanner.isAtFieldOrMethodStart()) { |
585 |
switch (this.scanner.nextToken()) { |
597 |
switch (this.scanner.nextToken()) { |
Lines 704-710
Link Here
|
704 |
parseLocalVariable(); |
716 |
parseLocalVariable(); |
705 |
} else { |
717 |
} else { |
706 |
consumeLocalVar(varName); |
718 |
consumeLocalVar(varName); |
707 |
parseFlags(); |
|
|
708 |
} |
719 |
} |
709 |
} |
720 |
} |
710 |
|
721 |
|
Lines 713-719
Link Here
|
713 |
this.scanner.skipMethodSignature(); |
724 |
this.scanner.skipMethodSignature(); |
714 |
char[] signature = this.scanner.getTokenSource(); |
725 |
char[] signature = this.scanner.getTokenSource(); |
715 |
consumeMethod(selector, signature); |
726 |
consumeMethod(selector, signature); |
716 |
parseFlags(); |
727 |
parseThrownExceptions(); |
717 |
if (this.scanner.isAtParametersStart()) |
728 |
if (this.scanner.isAtParametersStart()) |
718 |
parseParameterizedMethod(); |
729 |
parseParameterizedMethod(); |
719 |
} |
730 |
} |
Lines 743-751
Link Here
|
743 |
consumeField(fieldName); |
754 |
consumeField(fieldName); |
744 |
} |
755 |
} |
745 |
|
756 |
|
746 |
private void parseFlags() { |
757 |
private void parseThrownExceptions() { |
747 |
if (!this.scanner.isAtFlagsStart() || this.scanner.nextToken() != Scanner.FLAGS) return; |
758 |
while (this.scanner.isAtThrownStart()) { |
748 |
consumeModifiers(this.scanner.getTokenSource()); |
759 |
this.scanner.skipThrownStart(); |
|
|
760 |
consumeException(); |
761 |
parseFullyQualifiedName(); |
762 |
consumeType(); |
763 |
this.scanner.skipTypeEnd(); |
764 |
} |
749 |
} |
765 |
} |
750 |
|
766 |
|
751 |
private void parseParameterizedType(char[] typeName, boolean isRaw) { |
767 |
private void parseParameterizedType(char[] typeName, boolean isRaw) { |
Lines 758-764
Link Here
|
758 |
this.scanner.skipParametersEnd(); |
774 |
this.scanner.skipParametersEnd(); |
759 |
consumeParameterizedType(typeName, isRaw); |
775 |
consumeParameterizedType(typeName, isRaw); |
760 |
this.scanner.skipTypeEnd(); |
776 |
this.scanner.skipTypeEnd(); |
761 |
parseFlags(); |
|
|
762 |
if (this.scanner.isAtMemberTypeStart() && this.scanner.nextToken() == Scanner.TYPE) { |
777 |
if (this.scanner.isAtMemberTypeStart() && this.scanner.nextToken() == Scanner.TYPE) { |
763 |
typeName = this.scanner.getTokenSource(); |
778 |
typeName = this.scanner.getTokenSource(); |
764 |
if (this.scanner.isAtParametersStart()) { |
779 |
if (this.scanner.isAtParametersStart()) { |
Lines 773-779
Link Here
|
773 |
this.scanner.skipParametersEnd(); |
788 |
this.scanner.skipParametersEnd(); |
774 |
consumeRawType(); |
789 |
consumeRawType(); |
775 |
this.scanner.skipTypeEnd(); |
790 |
this.scanner.skipTypeEnd(); |
776 |
parseFlags(); |
|
|
777 |
if (this.scanner.isAtMemberTypeStart() && this.scanner.nextToken() == Scanner.TYPE) { |
791 |
if (this.scanner.isAtMemberTypeStart() && this.scanner.nextToken() == Scanner.TYPE) { |
778 |
char[] typeName = this.scanner.getTokenSource(); |
792 |
char[] typeName = this.scanner.getTokenSource(); |
779 |
if (this.scanner.isAtParametersStart()) { |
793 |
if (this.scanner.isAtParametersStart()) { |