diff options
| -rw-r--r-- | liblali.c | 29 | ||||
| -rw-r--r-- | liblali.h | 8 |
2 files changed, 35 insertions, 2 deletions
@@ -66,6 +66,35 @@ void exceptionWithObject(Object *object, char *format, ...) { longjmp(exceptionEnv, 1); } + +// STRINGS //////////////////////////////////////////////////////////////////// + +bool hasADot(char *string) { + for (int i = 0; string[i] != '\0'; i++) + if (string[i] == '.') + return true; + return false; +} + +void revString(char* string) { + // Initialize l and r pointers + int l = 0; + int r = strlen(string) - 1; + char t; + + // Swap characters till l and r meet + while (l < r) { + // Swap characters + t = string[l]; + string[l] = string[r]; + string[r] = t; + + // Move pointers towards each other + l++; + r--; + } +} + // GARBAGE COLLECTION ///////////////////////////////////////////////////////// /* This implements Cheney's copying garbage collector, with which memory is @@ -183,6 +183,12 @@ size_t memoryAlign(size_t size, size_t alignment); Object *memoryAllocObject(Type type, size_t size, GC_PARAM); +// STRING HELPERS ///////////////////////////////////////////////////////////// + +bool hasADot(char *string); + +void revString(char* string); + // CONSTRUCTING OBJECTS /////////////////////////////////////////////////////// Object *newObject(Type type, GC_PARAM); @@ -332,8 +338,6 @@ Object *primitiveLess(Object **args, GC_PARAM); Object *primitiveGreater(Object **args, GC_PARAM); -bool hasADot(char *string); - Object *say(Object *object, GC_PARAM); bool isSplittedNumber(Object *lnum); |
