From f9509b80504764f0ee63ed297229aa9675369645 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 2 Jan 2016 13:41:08 +0000 Subject: Read character literals as int literals --- .../org/zwobble/couscous/frontends/java/JavaExpressionReader.java | 8 ++++++++ .../zwobble/couscous/tests/frontends/java/JavaReaderTests.java | 1 + 2 files changed, 9 insertions(+) (limited to 'src') diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java index 15a910c..13bc519 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java @@ -85,6 +85,9 @@ public class JavaExpressionReader { case ASTNode.NUMBER_LITERAL: return readNumberLiteral((NumberLiteral)expression); + case ASTNode.CHARACTER_LITERAL: + return readCharacterLiteral((CharacterLiteral)expression); + case ASTNode.STRING_LITERAL: return readStringLiteral((StringLiteral)expression); @@ -135,6 +138,11 @@ public class JavaExpressionReader { return literal(Integer.parseInt(expression.getToken())); } + private ExpressionNode readCharacterLiteral(CharacterLiteral expression) { + // TODO: handle characters properly + return literal(expression.charValue()); + } + private static ExpressionNode readStringLiteral(StringLiteral expression) { return literal(expression.getLiteralValue()); } diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java index aa304f6..0e929d8 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java @@ -44,6 +44,7 @@ public class JavaReaderTests { assertEquals(literal(true), readBooleanExpression("true")); assertEquals(literal(false), readBooleanExpression("false")); assertEquals(literal(42), readIntExpression("42")); + assertEquals(literal('h'), readIntExpression("'h'")); } @Test -- cgit v1.2.3