From a24c33f81b606c29825135a41a9581d39489d2e9 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 25 Feb 2011 19:32:58 +0300 Subject: [PATCH] Fix for literal parsing --- .../jetbrains/jet/lang/psi/JetConstantExpression.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetConstantExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetConstantExpression.java index 41bc1fa5557..b0c14587035 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetConstantExpression.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetConstantExpression.java @@ -21,10 +21,20 @@ public class JetConstantExpression extends JetExpression { public Object getValue() { IElementType elementType = getNode().getElementType(); String nodeText = getNode().getText(); + if (elementType == JetNodeTypes.INTEGER_CONSTANT) { + if (nodeText.startsWith("0x") || nodeText.startsWith("0X")) { + return Integer.parseInt(nodeText.substring(2), 16); + } + if (nodeText.startsWith("0b") || nodeText.startsWith("0B")) { + return Integer.parseInt(nodeText.substring(2), 2); + } return Integer.parseInt(nodeText); } else if (elementType == JetNodeTypes.LONG_CONSTANT) { + if (nodeText.endsWith("l") || nodeText.endsWith("L")) { + return Long.parseLong(nodeText.substring(0, nodeText.length() - 1)); + } return Long.parseLong(nodeText); } else if (elementType == JetNodeTypes.FLOAT_CONSTANT) {