123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- MODULE JsArray;
- IMPORT JS, Object, JsString;
- TYPE
- Type* = POINTER TO RECORD END;
- Strings* = POINTER TO RECORD END;
- PROCEDURE len*(a: Type): INTEGER;
- VAR
- result: INTEGER;
- BEGIN
- JS.do("result = a.length");
- RETURN result
- END len;
- PROCEDURE stringsLen*(a: Strings): INTEGER;
- VAR
- result: INTEGER;
- BEGIN
- JS.do("result = a.length");
- RETURN result
- END stringsLen;
- PROCEDURE add*(a: Type; o: Object.PType);
- BEGIN
- JS.do("a.push(o)");
- END add;
- PROCEDURE addString*(a: Strings; o: JsString.Type);
- BEGIN
- JS.do("a.push(o)");
- END addString;
- PROCEDURE removeString*(a: Strings; i: INTEGER);
- BEGIN
- JS.do("a.splice(i, 1)");
- END removeString;
- PROCEDURE at*(a: Type; i: INTEGER): Object.PType;
- VAR
- result: Object.PType;
- BEGIN
- JS.do("result = a[i]");
- RETURN result
- END at;
- PROCEDURE stringsAt*(a: Strings; i: INTEGER): JsString.Type;
- VAR
- result: JsString.Type;
- BEGIN
- JS.do("result = a[i]");
- RETURN result
- END stringsAt;
- PROCEDURE stringsIndexOf*(a: Strings; x: JsString.Type): INTEGER;
- VAR
- result: INTEGER;
- BEGIN
- JS.do("result = a.indexOf(x)");
- RETURN result
- END stringsIndexOf;
- PROCEDURE contains*(a: Type; x: Object.PType): BOOLEAN;
- VAR
- result: BOOLEAN;
- BEGIN
- JS.do("result = (a.indexOf(x) != -1)");
- RETURN result
- END contains;
- PROCEDURE containsString*(a: Strings; x: JsString.Type): BOOLEAN;
- RETURN stringsIndexOf(a, x) # -1
- END containsString;
- PROCEDURE make*(): Type;
- VAR
- result: Type;
- BEGIN
- JS.do("result = []");
- RETURN result
- END make;
- PROCEDURE makeStrings*(): Strings;
- VAR
- result: Strings;
- BEGIN
- JS.do("result = []");
- RETURN result
- END makeStrings;
- END JsArray.
|