diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-08 21:14:28 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-08 21:14:28 +0000 |
| commit | 09f919a23b4846162dac6229564718c1f6cc8c40 (patch) | |
| tree | 7b3c8affc8ae43f817f0680d81a281e41f34a118 /src | |
| parent | 785907ae2284350e0091e903825f2f717a9c29cc (diff) | |
Add support for String.toLowerCase
Diffstat (limited to 'src')
3 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java b/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java index b370f6d..054a359 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java @@ -38,6 +38,9 @@ public class PrimitiveMethods { .put("add", (receiver, arguments) -> PythonBinaryOperation.pythonAdd(receiver, arguments.get(0))) + + .put("toLowerCase", (receiver, arguments) -> + pythonCall(pythonAttributeAccess(receiver, "lower"), list())) .build(); diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java index e8fd83b..4fff53e 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java @@ -26,6 +26,9 @@ public final class StringInterpreterValue implements InterpreterValue { return of(arguments.getReceiver().value + right.value); }) + .method("toLowerCase", list(), (environment, arguments) -> + of(arguments.getReceiver().value.toLowerCase())) + .build(); private final String value; diff --git a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java index e8957f7..39fd0ce 100644 --- a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java @@ -149,6 +149,11 @@ public abstract class CompilerTests { assertEquals(value("42"), evalExpression("String", "\"4\" + \"2\"")); } + @Test + public void stringToLowerCase() throws Exception { + assertEquals(value("patrick wolf"), evalExpression("String", "\"Patrick Wolf\".toLowerCase()")); + } + private PrimitiveValue execTestProgram( String directoryName, TypeName type, |
