Lines 879-894
Link Here
|
879 |
|
879 |
|
880 |
public AssertStatement convert(org.eclipse.jdt.internal.compiler.ast.AssertStatement statement) { |
880 |
public AssertStatement convert(org.eclipse.jdt.internal.compiler.ast.AssertStatement statement) { |
881 |
AssertStatement assertStatement = new AssertStatement(this.ast); |
881 |
AssertStatement assertStatement = new AssertStatement(this.ast); |
882 |
int end = statement.assertExpression.sourceEnd + 1; |
882 |
final Expression assertExpression = convert(statement.assertExpression); |
883 |
assertStatement.setExpression(convert(statement.assertExpression)); |
883 |
Expression searchingNode = assertExpression; |
|
|
884 |
assertStatement.setExpression(assertExpression); |
884 |
org.eclipse.jdt.internal.compiler.ast.Expression exceptionArgument = statement.exceptionArgument; |
885 |
org.eclipse.jdt.internal.compiler.ast.Expression exceptionArgument = statement.exceptionArgument; |
885 |
if (exceptionArgument != null) { |
886 |
if (exceptionArgument != null) { |
886 |
end = exceptionArgument.sourceEnd + 1; |
887 |
final Expression exceptionMessage = convert(exceptionArgument); |
887 |
assertStatement.setMessage(convert(exceptionArgument)); |
888 |
assertStatement.setMessage(exceptionMessage); |
|
|
889 |
searchingNode = exceptionMessage; |
888 |
} |
890 |
} |
889 |
int start = statement.sourceStart; |
891 |
int start = statement.sourceStart; |
890 |
int sourceEnd = retrieveEndingSemiColonPosition(end, this.compilationUnitSourceLength); |
892 |
int sourceEnd = retrieveSemiColonPosition(searchingNode); |
891 |
assertStatement.setSourceRange(start, sourceEnd - start + 1); |
893 |
if (sourceEnd == -1) { |
|
|
894 |
sourceEnd = searchingNode.getStartPosition() + searchingNode.getLength() - 1; |
895 |
assertStatement.setSourceRange(start, sourceEnd - start + 1); |
896 |
} else { |
897 |
assertStatement.setSourceRange(start, sourceEnd - start + 1); |
898 |
} |
892 |
return assertStatement; |
899 |
return assertStatement; |
893 |
} |
900 |
} |
894 |
|
901 |
|
Lines 3925-3959
Link Here
|
3925 |
return -1; |
3932 |
return -1; |
3926 |
} |
3933 |
} |
3927 |
|
3934 |
|
3928 |
protected int retrieveEndingSemiColonPosition(int start, int end) { |
3935 |
protected int retrieveSemiColonPosition(Expression node) { |
3929 |
int count = 0; |
3936 |
int start = node.getStartPosition(); |
3930 |
this.scanner.resetTo(start, end); |
3937 |
int length = node.getLength(); |
|
|
3938 |
int end = start + length; |
3939 |
this.scanner.resetTo(end, this.compilationUnitSourceLength); |
3931 |
try { |
3940 |
try { |
3932 |
int token; |
3941 |
int token; |
3933 |
while ((token = this.scanner.getNextToken()) != TerminalTokens.TokenNameEOF) { |
3942 |
while ((token = this.scanner.getNextToken()) != TerminalTokens.TokenNameEOF) { |
3934 |
switch(token) { |
3943 |
switch(token) { |
3935 |
case TerminalTokens.TokenNameSEMICOLON: |
3944 |
case TerminalTokens.TokenNameSEMICOLON: |
3936 |
if (count == 0) { |
3945 |
return this.scanner.currentPosition - 1; |
3937 |
return this.scanner.currentPosition - 1; |
|
|
3938 |
} |
3939 |
break; |
3940 |
case TerminalTokens.TokenNameLBRACE : |
3941 |
count++; |
3942 |
break; |
3943 |
case TerminalTokens.TokenNameRBRACE : |
3944 |
count--; |
3945 |
break; |
3946 |
case TerminalTokens.TokenNameLPAREN : |
3947 |
count++; |
3948 |
break; |
3949 |
case TerminalTokens.TokenNameRPAREN : |
3950 |
count--; |
3951 |
break; |
3952 |
case TerminalTokens.TokenNameLBRACKET : |
3953 |
count++; |
3954 |
break; |
3955 |
case TerminalTokens.TokenNameRBRACKET : |
3956 |
count--; |
3957 |
} |
3946 |
} |
3958 |
} |
3947 |
} |
3959 |
} catch(InvalidInputException e) { |
3948 |
} catch(InvalidInputException e) { |