aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-02 13:41:08 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-02 13:41:08 +0000
commitf9509b80504764f0ee63ed297229aa9675369645 (patch)
tree10e0430bb7243e27729c7f5e87f45460297b6a27
parente38a34ff58bbbf42e52d04619ef529e4afb664f7 (diff)
Read character literals as int literals
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java8
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java1
2 files changed, 9 insertions, 0 deletions
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