Browse Source

Wrote string_startswith explicit

Yentl Van Tendeloo 9 years ago
parent
commit
a99547087b
2 changed files with 15 additions and 2 deletions
  1. 1 1
      bootstrap/object_operations.alc
  2. 14 1
      bootstrap/primitives.alc

+ 1 - 1
bootstrap/object_operations.alc

@@ -150,7 +150,7 @@ Element function getInstantiatableAttributes(model : Element, element : String):
 String function getName(model : Element, element : Element):
 	return reverseKeyLookup(model["model"], element)
 
-// Utility functions!
+// TODO Utility functions!
 String function reverseKeyLookup(dict : Element, element : Element):
 	Element elements
 	String name

+ 14 - 1
bootstrap/primitives.alc

@@ -75,7 +75,6 @@ String function string_get(a: String, b: Integer) = ?primitives/string_get
 String function string_substr(a: String, b: Integer, c: Integer) = ?primitives/string_substr
 Integer function string_len(a: String) = ?primitives/string_len
 Element function string_split(a: String, b: String) = ?primitives/string_split
-Boolean function string_startswith(a: String, b: String) = ?primitives/string_startswith
 Element function deserialize(a: String) = ?primitives/deserialize
 Element function log(a: String) = ?primitives/log
 Element function read_root() = ?primitives/read_root
@@ -109,3 +108,17 @@ Element function exec(first_instr : Element):
 	dict_add(exec_if, "next", exec_return)
 
 	return n()
+
+//Boolean function string_startswith(a: String, b: String) = ?primitives/string_startswith
+Boolean function string_startswith(a: String, b: String):
+	Integer i
+	i = 0
+	if (string_len(b) > string_len(a)):
+		return False
+
+	while (i < string_len(b)):
+		if (string_get(a, i) != string_get(b, i)):
+			return False
+	 	i = i + 1
+	
+	return True